es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cerrar sesión en IdentityServer no cierra la ventana emergente del webview.

He utilizado IdentityModel.OidcClient con una aplicación UWP y me he conectado a Azure AD. El WebView de inicio de sesión se abre y se cierra automáticamente, pero la ventana emergente de cierre de sesión no se cierra automáticamente.

Mi implementación se basa en esto. Cuando ocurre el cierre de sesión, la llamada final a la función se realiza aquí, pero hasta que se cierre la ventana emergente manualmente, la ejecución se queda dentro de esta llamada a la función AuthenticateAsync.

if (string.Equals(options.EndUrl, WebAuthenticationBroker.GetCurrentApplicationCallbackUri().AbsoluteUri, StringComparison.Ordinal))
{
    wabResult = await WebAuthenticationBroker.AuthenticateAsync(
        wabOptions, new Uri(options.StartUrl));
    // La ejecución vuelve aquí, una vez que la ventana emergente se cierra manualmente.
}

El cierre de sesión se realiza correctamente pero la ventana emergente permanece. La URL de post-cierre de sesión también se configuró correctamente.
Imagen

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema en cuestión está relacionado con el cierre automático de la ventana emergente de cierre de sesión después de que el usuario cierra la sesión utilizando IdentityModel.OidcClient con una aplicación UWP y Azure AD. El webview de inicio de sesión se abre y se cierra automáticamente, pero la ventana emergente de cierre de sesión permanece abierta hasta que se cierre manualmente.

    Según el fragmento de código proporcionado, el bloqueo en la ejecución parece ocurrir dentro de la llamada a la función AuthenticateAsync. Puede valer la pena considerar si hay alguna opción o configuración específica que deba configurarse al utilizar WebAuthenticationBroker con OIDC y UWP.

    Otra posibilidad a explorar es si hay algún evento o función de devolución de llamada específica que deba implementarse para manejar el proceso de cierre de sesión y asegurarse de que la ventana emergente se cierre automáticamente. Por ejemplo, la biblioteca OidcClient ofrece un método SignoutPopup que se puede llamar para iniciar el proceso de cierre de sesión y manejar el cierre de la ventana emergente.

    Además, puede ser útil revisar la configuración de Azure AD y asegurarse de que todas las configuraciones relacionadas con OIDC y UWP estén configuradas correctamente, incluidas las URI de redireccionamiento requeridas y las URL de redirección después del cierre de sesión.

    En general, puede ser necesario realizar una investigación y pruebas adicionales para diagnosticar y resolver adecuadamente el problema de la ventana emergente de cierre de sesión que no se cierra automáticamente al utilizar IdentityModel.OidcClient con una aplicación UWP y Azure AD.

Comments are closed.