首页 > 解决方案 > 使用 Azure AD 注销 SAML

问题描述

我在 Microsoft Azure 中为 SSO 创建了一个企业应用程序。我已经配置了我的应用程序的IdentityReply UrlLogout url。我的目标是让我的应用程序符合 SAML。

我可以使用回复 URL 中指定的功能对我的用户进行身份验证。该函数被命中,参数 SAMLResponse 接收一个 base64 编码的字符串,我可以使用它来验证我系统中的用户。

同样,当用户从 Office365/AD 注销时,在配置应用程序时在注销 URL 中指定的注销功能被调用。我在参数 SAMLRequest 中收到一个编码/加密的字符串。我想知道是否有任何方法可以解码字符串或知道尝试注销 SSO 的用户,以便我可以将该用户从我的系统中注销并释放用户使用的许可证。

标签: c#single-sign-onsamlazure-ad-b2csaml-2.0

解决方案


SAML 字符串是 Base64 编码和 Deflated。所以反过来会给你 SAMLRequest xml。SessionIndex 可用于通过与登录时收到的 sessionIndex 进行检查来识别用户。

MemoryStream memStream = new MemoryStream(Convert.FromBase64String(SAMLRequest));
DeflateStream deflate = new DeflateStream(memStream, CompressionMode.Decompress);
string doc = new StreamReader(deflate, System.Text.Encoding.UTF8).ReadToEnd();

推荐阅读