我在 Azure Microsoft 中创建了一个企业应用程序。我已经配置了应用程序的身份、回复URL 和注销URL。我的目标是使我的应用程序符合 SAML 标准。
我能够使用回复 URL 中指定的函数对我的用户进行身份验证。该函数被击中,参数 SAMLResponse 收到一个 base64 编码字符串,我可以使用该字符串对系统中的用户进行身份验证。
同样,当用户注销 Office365/AD 时,将调用配置应用程序时注销 URL 中指定的注销函数。我在参数 SAMLRequest 中收到一个编码/加密的字符串。我想知道是否有任何方法可以解码字符串或知道尝试注销 SSO 的用户,以便我可以将该用户从我的系统中注销并释放用户使用的许可证。
SAML 字符串采用 Base64 编码和压缩。所以反过来会给你SAMLRequest xml。会话索引可用于通过检查登录时收到的会话索引来识别用户。
MemoryStream memStream = new MemoryStream(Convert.FromBase64String(SAMLRequest));
DeflateStream deflate = new DeflateStream(memStream, CompressionMode.Decompress);
string doc = new StreamReader(deflate, System.Text.Encoding.UTF8).ReadToEnd();