Autenticar a un usuario con un token de identidad para Exchange

Importante

Los tokens de identidad de usuario y los tokens de devolución de llamada heredados de Exchange se desactivarán para todos los inquilinos de Exchange Online en octubre de 2024 como parte de la Iniciativa de futuro seguro de Microsoft, que proporciona a las organizaciones las herramientas necesarias para responder al panorama actual de amenazas. Los tokens de identidad de usuario de Exchange seguirán funcionando para Exchange local. La autenticación de aplicaciones anidadas es el enfoque recomendado para los tokens en el futuro. Para obtener más información, consulte nuestra entrada de blog sobre la autenticación de aplicaciones anidadas y los tokens de Exchange heredados.

Los tokens de identidad de usuario de Exchange proporcionan una forma para identificar de forma única a un usuario del complemento. Al establecer la identidad del usuario, puede implementar un esquema de autenticación de inicio de sesión único (SSO) para el servicio back-end que permita a los clientes que usan complementos de Outlook conectarse al servicio sin iniciar sesión. Para más información sobre el uso de este tipo de token, vea Token de identidad de usuario de Exchange. En este artículo, echaremos un vistazo a un método sencillo para usar los tokens de identidad de Exchange para autenticar a un usuario en el back-end.

Importante

Este es un ejemplo simple de una implementación de SSO. Como siempre, cuando está trabajando con autenticación e identidad, debe asegurarse de que el código cumple los requisitos de seguridad de su organización.

Enviar el token de id. con cada solicitud

El primer paso es que el complemento obtenga el token de identidad de usuario de Exchange desde el servidor llamando a getUserIdentityTokenAsync. A continuación, el complemento envía este token con cada solicitud al back-end. Puede ser un encabezado o como parte del cuerpo de la solicitud.

Validar el token

El back-end debe validar el token antes de aceptarlo. Este es un paso importante para asegurarse de que se emitió el token desde el servidor de Exchange del usuario. Para obtener información sobre cómo validar los tokens de identidad de usuario de Exchange, consulte validar un token de identidad Exchange.

Una vez validada y descodificada, la carga del token tiene un aspecto similar al siguiente:

{ 
    "aud" : "https://mailhost.contoso.com/IdentityTest.html",
    "iss" : "00000002-0000-0ff1-ce00-000000000000@mailhost.contoso.com",
    "nbf" : "1505749527",
    "exp" : "1505778327",
    "appctxsender":"00000002-0000-0ff1-ce00-000000000000@mailhost.context.com",
    "isbrowserhostedapp":"true",
    "appctx" : {
        "msexchuid" : "53e925fa-76ba-45e1-be0f-4ef08b59d389",
        "version" : "ExIdTok.V1",
        "amurl" : "https://mailhost.contoso.com:443/autodiscover/metadata/json/1"
    }
}

El token se asignan a un usuario en el back-end

El servicio de back-end puede calcular un identificador de usuario único del token y asignarlo a un usuario en el sistema usuario de usuarios. Por ejemplo, si usa una base de datos para almacenar los usuarios, puede agregar este identificador único al registro de usuarios en la base de datos.

Generar un identificador único

Use una combinación de las msexchuid propiedades y amurl . Por ejemplo, puede concatenar los dos valores juntos y generar una cadena con codificación 64 base. Este valor puede generarse de forma confiable cada vez desde el token, para que pueda asignar un token de identidad de usuario de Exchange al usuario en el sistema.

Compruebe el usuario

Con el Id. único generado, el siguiente paso es buscar un usuario en el sistema con ese identificador asociado.

  • Si se encuentra el usuario, el back-end trata la solicitud como autenticada y permite continuar a la solicitud.

  • Si no se encuentra el usuario, el back-end devuelve un error que indica que el usuario necesita iniciar sesión. El complemento, a continuación, pide al usuario que inicie sesión en el back-end mediante el método de autenticación existente. Una vez que el usuario se autentica, se envía el token de identidad de usuario de Exchange con los detalles de autenticación de usuario. El back-end, a continuación, puede actualizar el registro del usuario en el sistema con el identificador único.