Papel:
- RO (propietario del recurso): propietario del recurso, una persona que tiene la capacidad de autorizar recursos, generalmente comparada con un usuario
- RS (servidor de recursos): un servidor de recursos que almacena recursos y procesa solicitudes de acceso a recursos
- Cliente: una aplicación de terceros. Después de que el RO lo confirma, puede acceder a los recursos correspondientes del RO en el RS después de obtener la autorización del RO
- AS (servidor de autorización): un servidor de autorización que autentica la identidad del RO, proporciona un proceso de aprobación de autorización para el RO y finalmente emite un token de autorización (Token de acceso).
PD: por lo general, junto con RS
Modo de autorización:
Prólogo: en el proceso de autorización general, la aplicación cliente de terceros puede ser un programa web o un código de línea de comando. O algunos otros scripts, para proteger su seguridad. Con respecto a algunas claves secretas de los usuarios, puede optar por no exponerlas a los usuarios (RO). Pero para aplicaciones de terceros, aún puede acceder a los datos del usuario.
Soporte para estos diferentes tipos de Cliente, distinguiendo además de múltiples modos de autorización.
- Código de autorización Grant
- Subvención implícita
- Autorización de certificado de RO (concesión de credenciales de contraseña del propietario del recurso)
- Subvención de credenciales del cliente
Concesión de código de autorización (Concesión de código de autorización):
Proceso web típico:
- La aplicación de terceros (Cliente) redirige la página actual del usuario (RO) al servidor de autorización (AS). Después de que el usuario confirma la autorización o cancela la autorización, se redirige a una URL especificada por la aplicación web de terceros.
- El servidor de autorización (AS) autentica al usuario (a través del encabezado http) y determina si el usuario permite que aplicaciones de terceros accedan a los recursos del usuario (RS)
- Si el usuario confirma que autoriza la aplicación de terceros, el servidor de autorización (AS) redirigirá a una url establecida por la aplicación de terceros en el primer paso y devolverá un código de autorización (es decir, una cadena de autenticación temporal).
- La aplicación de terceros pasa la autenticación y pasa el parámetro del código de autorización obtenido en el paso anterior, y luego va al servidor de autorización para verificar y obtener un token.
Subvención implícita:
- Cuando un usuario accede a una aplicación de terceros (cliente), la aplicación de terceros redirige al usuario a un servidor de autorización (AS).
- El servidor de autorización (AS) genera una página para proporcionar autorización al usuario
- Si el usuario autoriza, el servidor de autorización (AS) devuelve el token a la página de la aplicación de terceros
- La aplicación de terceros obtiene el token devuelto en el paso anterior y va al servidor de recursos para obtener los recursos del usuario (siempre que el token esté bien)
Modo de contraseña (concesión de credenciales de contraseña del propietario del recurso):
En pocas palabras, la contraseña está alojada en una aplicación de terceros, así que aquí está. Queremos asegurarnos de que las aplicaciones de terceros sean altamente confiables
- El usuario (RO) proporciona la contraseña de la cuenta a la aplicación de terceros (cliente).
- La aplicación de terceros obtiene la cuenta y la contraseña del paso anterior y envía una solicitud al servidor de autorización
- Después de que el servidor de autorización verifica que la contraseña de la cuenta es correcta, proporciona un token a la aplicación de terceros
Subvención de credenciales del cliente:
Este es el modo más inseguro, el proceso no requiere que los usuarios participen, es completamente la comunicación entre la aplicación de terceros y el servidor de autorización
- Acceso de usuario (RO) a aplicaciones de terceros
- La aplicación de terceros obtiene el token a través de un método de verificación personalizado. No se requiere autenticación de usuario
- Servidor de recursos de acceso (RS)