IBM Cloud Docs
Señales

Señales

Cuando un usuario se autentica correctamente, la aplicación recibe señales de App ID. El servicio utiliza tres tipos principales de tokens para completar el proceso de autenticación, conocidos como tokens de acceso, de identidad y de actualización.

Señales de acceso

Las señales de acceso representan la autorización y permiten la comunicación con recursos de fondo que están protegidas por filtros de autorización establecidos por App ID. La señal se ajusta a las especificaciones de JOSE (JavaScript Object Signing and Encryption). El token se formatea como JSON Los tokens web se firman con una clave web JSON que utiliza el algoritmo RS256.

Ejemplo de señal:

Header:
{
   "alg": "RS256",
   "typ": "JWT",
   "kid": "appId-39a37f57-a227-4bfe-a044-93b6e6050a61-2018-08-02T11:57:43.401",
   "ver": 4
}
Payload:
{
   "iss": "https://us-south.appid.cloud.ibm.com/oauth/v4/39a37f57-a227-4bfe-a044-93b6e6050a61",
   "exp": 1551903163,
   "aud": [
   "968c2306-9aef-4109-bc06-4f5ed6axi24a"
   ],
   "sub": "2b96cc04-eca5-4122-a8de-6e07d14c13a5",
   "email_verified": true,
   "amr": [
   "cloud_directory"
   ],
   "iat": 1551899553,
   "tenant": "39a37f57-a227-4bfe-a044-93b6e6050a61",
   "scope": "openid appid_default appid_readprofile appid_readuserattr appid_writeuserattr appid_authenticated"
}

Señales de identidad

Las señales de identidad representan una autenticación y contienen información sobre el usuario. Le pueden proporcionar información acerca del nombre, el correo electrónico, el género y la ubicación. Una señal también puede devolver un URL a una imagen del usuario. El token se formatea como JSON Los tokens web se firman con una clave web JSON que utiliza el algoritmo RS256.

Ejemplo de señal:

Header:
{
   "alg": "RS256",
   "typ": "JWT",
   "kid": "appId-39a37f57-a227-4bfe-a044-93b6e6050a61-2018-08-02T11:57:43.401",
   "ver": 4
}
Payload:
{
   "iss": "https://us-south.appid.cloud.ibm.com/oauth/v4/39a37f57-a227-4bfe-a044-93b6e6050a61",
   "aud": [
   "968c2306-9aef-4109-bc06-4f5ed6axi24a"
   ],
   "exp": 1551903163,
   "tenant": "39a37f57-a227-4bfe-a044-93b6e6050a61",
   "iat": 1551899553,
   "email": "appid155@mailinator.com",
   "name": "appid155@mailinator.com",
   "sub": "2b96cc04-eca5-4122-a8de-6e07d14c13a5",
   "email_verified": true,
   "identities": [
   {
      "provider": "cloud_directory",
      "id": "118c0278-3526-4954-876b-cf70eb88efa2"
   }
   ],
   "amr": [
   "cloud_directory"
   ]
}

Las señales de identidad sólo contienen información de usuario parcial. Para ver toda la información proporcionada por el proveedor de identidades, puede utilizar el punto final /userinfo.

Señales de renovación

App ID soporta la capacidad de adquirir nuevos tokens de acceso e identidad sin necesidad de reautenticación, tal y como se define en OIDC. Se puede utilizar una señal de acceso para renovar la señal de manera que el usuario no tenga que realizar ninguna acción, como proporcionar las credenciales, para iniciar sesión. De forma similar a las señales de acceso, las señales de renovación contienen datos que permiten a App ID determinar si el usuario está autorizado. Sin embargo, dichas señales son opacas.

Las señales de renovación se configuran para tener una duración de vida más larga que una señal de acceso regular. Cuando caduca una señal de acceso, la señal de renovación sigue siendo válida y se puede utilizar para renovar la señal de acceso. Las señales de renovación de App ID se pueden configurar para durar de 1 a 90 días. Para sacar el máximo partido de las señales para renovación, mantenga las señales durante todo el período activo o hasta que se renueven. Un usuario no puede acceder directamente a recursos con solo una señal para renovación, por lo que es mucho más seguro que esta se mantenga en lugar de la señal de acceso. Se recomienda que el cliente que reciba señales de acceso las almacene de forma segura y las envíe únicamente al servidor de autorización que las ha enviado.

Para mayor comodidad, App ID también renueva su señal de renovación, y su fecha de caducidad, cuando se renueva la señal de acceso, lo que permite al usuario permanecer conectado mientras está activo en algún momento antes de que caduque la señal de renovación actual. De forma alternativa, si desea utilizar las señales de renovación, pero obliga al usuario a iniciar sesión periódicamente, la aplicación puede utilizar sólo las señales de renovación que se devuelven cuando el usuario inicia la sesión especificando sus credenciales. No obstante, recomendamos utilizar siempre el token de actualización más reciente que se reciba de App ID, tal y como se describe en las especificaciones de OAuth 2.0.

Aunque estas señales pueden agilizar el proceso de inicio de sesión, su aplicación no debe depender de ellas. Se pueden revocar en cualquier momento, por ejemplo, cuando piense que se han comprometido las señales de renovación. Puede utilizar dos métodos para revocar una señal de renovación, si es necesario. Si tiene el token de actualización, puede revocarlo basándose en RFC7009. Alternativamente, si dispone del ID de usuario, puede revocar el token de actualización utilizando la API de gestión. Para obtener más información sobre el acceso a la API de gestión, consulte la gestión del acceso a los servicios.

Para obtener ejemplo de cómo trabajar con señales para renovación y cómo utilizarlas para implementar una funcionalidad recuérdame, consulte los ejemplo de iniciación.

¿De dónde provienen las señales?

Los tokens se emiten a través del servidor OAuth de App ID y se formatean como JSON Web Tokens(JWT). Las señales se han firmado con una clave web JSON(JWK) con el algoritmo RS256.

¿Qué sucede con la información que contiene la señal?

La señal de acceso contiene un conjunto de reclamaciones JWT y un grupo de reclamaciones específicas de App ID como, por ejemplo, un ID de arrendatario. La señal de identidad contiene información específica del usuario. La información de las señales de acceso se almacena en forma de reclamaciones como parte de un perfil de usuario.

¿Cómo se reciben las señales?

Las señales las recibe la app después de que se haya realizado una autenticación correcta. La aplicación puede utilizar las señales para recuperar información sobre la autorización y la autenticación del usuario. La señal de acceso se puede utilizar para obtener acceso a los recursos protegidos enviando una solicitud al recurso. Para extraer las señales, la app debe analizar la cabecera.

Solicitud de ejemplo:

GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer  mF_9.B5f-4.1JqM mF_9.B5f-4.1JqM

¿Cómo se configuran las señales?

Puede personalizar las señales mediante la correlación de reclamaciones personalizadas. Para obtener más información, consulte Personalización de señales.