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.
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 utilizarWebAuthenticationBroker
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étodoSignoutPopup
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.