使用 Azure AD 注销 SAML

Logout SAML using Azure AD

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

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

类似地,当用户注销 Office365/AD 时,将调用配置应用程序时在注销 Url 中指定的注销函数。我在参数 SAMLRequest 中收到一个 encoded/encrypted 字符串。我想知道是否有任何方法可以解码字符串或知道正在尝试注销 SSO 的用户,以便我可以将该用户从我的系统中注销并释放该用户使用的许可证。

SAML 字符串经过 Base64 编码和压缩。所以做相反的事情会给你 SAMLRequest xml。通过将 SessionIndex 与登录时收到的 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();