oAuth2 ámbitos y condiciones de filtro en url

0

Tengo una api como / v1 / api / data y dos clientes, client_unrestricted y client_restricted.

La propia API está protegida por Oauth. Lo ideal es registrar los clientes con OauthServer para que cuando client_unrestricted realice una solicitud, pueda ver todos los datos. client_restricted realiza una solicitud para ver solo un subconjunto de los datos

¿Debo pedirle al administrador de OAuth que registre a los clientes para que los puntos finales sean así?

punto final del cliente client_unrestricted / v1 / api / data / {data-ids}? restringido = falso client_restricted / v1 / api / data / {data-ids}? restringido = verdadero ¿O puede OAuth Scopes ayudarme aquí donde registro solo un punto final / v1 / api / data pero varía los ámbitos para ambos clientes?

punto final del cliente cliente_unrestricted / v1 / api / data restringido = falso restringido por cliente / v1 / api / datos restringidos = verdadero

    
pregunta jhon.smith 27.03.2018 - 01:40
fuente

1 respuesta

1

En Oauth2, restringes el redirect_uri que puede manejar la solicitud de inicio de sesión al que se envía el usuario después de iniciar sesión en el servidor de autorización (AS).

Así que registrarías dos clientes con el administrador de OAuth2, cada uno con su propio redirect_uri. Pero esta es una defensa contra alguien que roba el código de autorización cuando pasa del cliente a la API.

La restricción de los datos de cada cliente es servidor, se maneja mediante el uso de ámbitos, como usted sugiere. Por lo general, es mejor tener distintos recursos de API que sirvan para los diferentes tipos de datos (restringidos / no restringidos), y solo le doy al cliente no restringido el alcance necesario para consumir la API sin restricciones.

Algo como esto:

  • / v1 / api / basicdata: disponible con el alcance "basic_data" que ambos clientes obtienen.
  • / v1 / api / restricteddata: disponible con un alcance "restringido".
respondido por el Geir Emblemsvag 27.03.2018 - 07:43
fuente

Lea otras preguntas en las etiquetas