2012-05-04 21 views
5

La especificación OAuth 2.0 define Resource Owner Password Credentials Grant Type, que permite que las credenciales de contraseña del propietario del recurso (es decir, nombre de usuario y contraseña) se utilicen directamente como concesión de autorización para obtener acceso simbólico.Uso de un token de acceso de Facebook como credenciales del propietario del recurso en OAuth2.0

Quiero permitir que un usuario "inicie sesión a través de Facebook" en el cliente en lugar de proporcionar las credenciales directamente. El cliente podría intercambiar el token de acceso de Facebook del usuario por un token de acceso para el servidor de autorización. ¿Este esquema encaja en el marco de OAuth2?

Respuesta

2

El cliente podría intercambiar el token de acceso de Facebook del usuario por un token de acceso para el servidor de autorizaciones.

¿Significa que tiene 2 servidores de autorización (uno de Facebook y otro, el privado) en mente? En caso afirmativo, está abusando de OAuth y, en su lugar, debe usar el esquema de concesión de código de autorización.

En la figura 5 de la especificación OAuth 2.0 (v25) se puede encontrar la definición de flujo de trabajo:

  1. El propietario del recurso proporciona al cliente con su nombre de usuario y contraseña.

  2. El cliente solicita un token de acceso desde el extremo del token del token del servidor de autorización incluyendo las credenciales recibidas del propietario del recurso. Cuando realiza la solicitud, el cliente se autentica con el servidor de autorización.

  3. El servidor de autorización autentica el cliente y valida las credenciales del propietario del recurso , y si es válido emite un token de acceso.

Esta es una cita de Facebook http://developers.facebook.com/docs/guides/web/:

Con el fin de iniciar la sesión del usuario en su sitio, tres cosas tienen que suceder. Primero, Facebook necesita autenticar al usuario. Esto asegura que el usuario es quien dice ser. En segundo lugar, Facebook necesita autenticar su sitio web. Esto asegura que el usuario está dando su información a su sitio y no a otra persona. Por último, el usuario debe autorizar explícitamente a su sitio web para acceder a su información. Esto garantiza que el usuario sepa exactamente qué datos están divulgando a su sitio.

En ambos lugares, tiene un único servidor de autorización, en su caso, el Facebook.

+0

Sí, en realidad hay 2 servidores de autorización en este esquema. El primero es parte de nuestra API y el segundo es FB. Así que pensé que si el cliente ya tiene un token de acceso FB de usuario, podría usar el token como credenciales del usuario (no es necesario ingresar login/passord). Entonces nuestro servidor de autorizaciones podría verificar si el token es válido y emitir un nuevo token (para nuestro propio servidor). Espero que esto tenga sentido :) –

+0

Y como escribí en mi respuesta, tiene sentido usar Authorization Code Grant por lo tanto. –

Cuestiones relacionadas