Azure Active Directory注销(清除持久令牌)



我正在开发一个Windows Store应用程序,该应用程序使用Azure Active Directory进行身份验证,与Dynamics CRM Online通信。

应用程序使用以下CRM 2013 SDK示例:SampleCodeCSModernAndMobileAppsModernSoapApp

并引用这个用于身份验证的nuget包:

Microsoft.Preview.WindowsAzure.ActiveDirectory.Authentication

我能够正确地验证,主线是这样的:

AuthenticationResult result = await _authenticationContext.AcquireTokenAsync("Microsoft.CRM", ClientID, redirectUrl, string.Empty, string.Empty);

问题是,我需要添加一个注销功能,我不能摆脱持久令牌。

我尝试使用以下行执行注销:

(AuthenticationContext.TokenCache as DefaultTokenCache).Clear();

但是当我再次调用AcquireTokenAsync方法而不是显示输入凭据的页面时,应用程序能够自己获得有效的令牌。

要执行完全登出,我缺少什么?

如果您也想让用户退出STS,则发出注销请求:https://login.windows.net/{tenantid or "common"}/oauth2/logout?post_logout_redirect_uri={URL}。URL需要是在AAD中注册的应用程序的回复URL。

您正在清除本地凭据缓存。静默验证可能由于STS cookie而发生(当您再次调用AcquireTokenAsync时,Fiddler会跟踪什么)?

希望有帮助。可能重复这个问题

最新更新