Tokens JWT personalizados en Thereforeâ„¢ |
Scroll |
JSON Web Token (JWT) es un estándar abierto (RFC 7519) que define una forma compacta e independiente para transmitir con seguridad información entre partes como objeto JSON. Esta información se puede verificar y es fiable porque está firmada digitalmente. Los JWT se pueden firmar utilizando ‘secreto’ (con el algoritmo HMAC) o una clave pública/privada que utilice RSA o ECDSA.
Si bien los JWTs se pueden cifrar para proporcionar confidencialidad entre las partes, nos centraremos en los tokens firmados. Los tokens firmados pueden verificar la integridad de las solicitudes que contienen, mientras que los tokens cifrados ocultan esas solicitudes a otras partes. Cuando los tokens se firma utilizando pares de claves pública/privada, la firma también certifica que solo la parte que contiene la clave privada es la que firma.
Para permitir la integración de Therefore™ en un infraestructura de autenticación proporcionada por el cliente, Therefore™ admite la declaración de emisores de JWT Token personalizados. Con estas funciones un cliente puede crear y enviar tokens JWT a Therefore para la autenticación de usuarios.
Therefore™ admite tokens JWT firmados de HS256 y RS256. Para HS256 debe guardarse una clave compartida en Therefore™ para permitir que Therefore valide el token durante la conexión. Para RS256 la clave pública del certificado utilizado para firmar el token debe cargarse como archivo .DER en Therefore™.
Aplicaciones prácticas: El cliente ya tiene una infraestructura de autenticación o desea que Thereforeâ„¢ Portal se integre en su propio portal. Si un usuario ya está autenticado en el portal del cliente, no se le deberÃa obligar a autenticarse de nuevo para Thereforeâ„¢, facilitando de este modo una experiencia SSO entre las distintas aplicaciones. La aplicación del portal del cliente puede crear un token personalizado de este tipo y utilizarlo para que el usuario inicie sesión automáticamente en Thereforeâ„¢ con la cuenta de usuario proporcionada. No se necesita inicio de sesión adicional.
1.Configuración en Therefore™ Designer: La información siguiente debe rellenarse en los campos correspondientes:
Id. de emisor: debe coincidir con el Id. de emisor del token jwt enviado a Therefore™. Nombre: Puede darse cualquier nombre en la UI (solo). Activar: Habilita o deshabilita un emisor del cliente. Secreto/Certificado: Defina una clave compartida o cargue un archivo .der para validación del token.
2.Configure el uso de Azure Key Vault para secretos compartidos:
Si se deben guardar secretos en Azure Key Vault, deberá definir las siguientes clave del registro:
HEKY_LOCAL_MACHINE\Software\Therefore\Server •KeyVaultAppId •KeyVaultAppSec •KeyVaultBaseUri  Custom JWT Token Payload: { "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "Test AD", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress": "testad@therefore.net", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname": "ADOS\\testad", "aud": "<CustomerId>", "nbf": 1547106872, "exp": 1547108072, "urn:oauth:scope": "therefore_user" "iss": https://testissuer.therefore.net }  aud = Id. del cliente del sistema Therefore iss = Id. del emisor – debe coincidir con la configuración de Therefore urn:oauth:scope = ámbito del token - valores "therefore_user" (todos los permisos de usuario) o "therefore_read" (solo lectura)
3.Los tokens JWT personalizados pueden servir para autenticar usuarios de Thereforeâ„¢ en el cliente web, Portal, API, WebAPI.
Ejemplo (cliente web): https://<server>/TWA/Client/Web/Viewer/Viewer.aspx?docno=349738&ssoToken=<token> https://<server>/TWA/Portal/Portal.aspx?qNo=123&ssoToken=<token>
API de ejemplo: string sToken = "<token>; string sNodeInternal, sNodeFriendly; TheServer s = new TheServer(); s.ConnectBearerToken(TheClientType.CustomApplication, sToken, "", "", "", true, TheConnectMode.NoLicenseMove, out sNodeInternal, out sNodeFriendly);
Tutorial de prueba:
1.Cree tokens de prueba aquÃ: http://jwtbuilder.jamiekurtz.com/ 2.Configure el emisor en Thereforeâ„¢ Solution Designer. 3.Utilice el token con cualquier opción de acceso descrita anteriormente (cliente web, Portal, API, API web).
|
---|