¿Cómo puede un servidor de recursos OAuth2 relacionar un token de acceso con el usuario que lo autorizó para evitar el acceso no autorizado a otros recursos del usuario?

2

Apreciaría si alguien pudiera aclarar si, de acuerdo con OAuth2 RFC , el servidor de recursos podría inferir el usuario asociado a un token de acceso o no, o incluso si se espera.

Supongamos lo siguiente:

  • El servidor de autorización y el servidor de recursos están separados y independiente.
  • El cliente es un servicio de impresión.
  • El servidor de recursos alberga fotos de usuario.
  • El cliente quiere invocar una API protegida desde el servidor de recursos para obtener las fotos del usuario enlace e imprímelos.
  • El cliente redirige al usuario al servidor de autorización independiente y termina generando un token de acceso.
  • El cliente usa ese token de acceso para obtener e imprimir algunas fotos de usuarios.

Dado que el token es opaco y no tiene ningún significado para el servidor de recursos independiente ni para el cliente, nada evitará que el cliente use ese token de acceso para acceder e imprimir fotos de cualquier usuario , no solo el Quien lo haya autorizado.

¿Esto es correcto? O de lo contrario, ¿cómo el servidor de recursos relaciona al usuario con el token para limitar su uso?

    
pregunta codependent 05.12.2018 - 08:49
fuente

4 respuestas

1

Puede implementar OAuth 2.0 Token Introspection como una forma para que el servidor de recursos consulte el servidor de autorización para los metadatos del token.

Usando campos de respuesta de introspección definidos, podría transportar la identidad del Propietario del recurso en los campos sub y username .

Por otra parte, diría que si el token es realmente opaco, entonces no solo puede, sino que también debe implementar la introspección, ya que es una forma de verificar.

  • Si el token es realmente emitido por el servidor de autorización correcto, puede asegurarse de que también mediante la criptografía, pero no las cosas posteriores
  • Si el token sigue activo
  • Si el token se emitió al cliente usándolo
  • Si el alcance del token cubre la operación solicitada
respondido por el AGrzes 05.12.2018 - 19:19
fuente
3

oAuth 2.0 no tiene un mecanismo incorporado para hacer esto, sin embargo, hay algunos esquemas que podrías emplear para hacer que esto funcione.

  1. use una capa de autenticación en la parte superior de oAuth (como openID Connect) para recuperar la información de usuario que necesita

  2. Agregue un alcance por detalles de usuario para acceder a dichos detalles de usuario y solo conceda ese alcance para ese usuario. Solo tenga en cuenta las filtraciones de información que pueden causar.

  3. Use el proveedor de Autorizaciones como guardián de puerta y haga que proporcione los detalles solicitados para ese usuario específico, no el servidor de recursos donde se almacenan las imágenes. una especie de salida, pero también funcionaría.

respondido por el LvB 05.12.2018 - 11:11
fuente
1

OAuth trata con autorización : el token solo da una indicación de los permisos delegados. También puede tener información sobre el usuario que delegó el permiso, pero en realidad no representa a un usuario. Depende del servidor de recursos dar sentido a los permisos y limitar el uso en consecuencia.

Si debido a la naturaleza de sus servidores, esto no se puede configurar sin la identidad del usuario, necesitará las soluciones de autenticación que funcionan junto con OAuth (por ejemplo, OpenID Connect).

    
respondido por el AlphaD 05.12.2018 - 10:27
fuente
0

La autorización se realiza con la implementación de la redirección que preserva la autenticidad del servidor de aplicaciones y el servidor de autorizaciones.

OAuth admite diferentes tipos de flujos de trabajo. El tipo de concesión de código de autorización es el más utilizado, ya que está optimizado para aprovechar las capacidades de redireccionamiento de un navegador web.

Puede encontrar más información con el siguiente recurso: -

enlace

    
respondido por el Aayush 05.12.2018 - 10:24
fuente

Lea otras preguntas en las etiquetas