我们将Java应用程序与Azure Active Directory集成在一起。因此,我们目前遇到的问题是,在销毁Spring Security会话时,Azure Active Directory会话并未销毁 (例如,如果在Web服务器上重新启动了Tomcat)
是否可以分辨哪个参数标识Azure Active Directory会话?或总的来说,您对如何以最佳方式处理此问题有任何建议吗?
我们使用此示例将Java应用程序与Active Directory集成。
https://azure.microsoft.com/en-us/resources/samples/active-directory-java-webapp-openidconnect/
谢谢
Andy G。
答案 0 :(得分:0)
官方文档Authorize access to web applications using OpenID Connect and Azure Active Directory
的{{3}}部分介绍了如何使用户退出您的应用程序,如下所示。
发送退出请求
如果您希望用户退出应用程序,则仅清除应用程序的cookie或终止与用户的会话是不够的。您还必须将用户重定向到
end_session_endpoint
以便注销。如果您这样做失败,则用户将能够重新验证您的应用程序而无需再次输入其凭据,因为他们将与Azure AD终结点进行有效的单点登录会话。您只需将用户重定向到OpenID Connect元数据文档中列出的
end_session_endpoint
:GET https://login.microsoftonline.com/common/oauth2/logout?post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
参数:建议使用post_logout_redirect_uri
说明:成功注销后用户应重定向到的URL。如果不包括在内,则会向用户显示一条通用消息。
此外,您可以参考C#Send a sign-out request
中的一个官方示例。