c# - 使用 Azure AD 注销 SAML
问题描述
我在 Microsoft Azure 中为 SSO 创建了一个企业应用程序。我已经配置了我的应用程序的Identity、Reply Url和Logout url。我的目标是让我的应用程序符合 SAML。
我可以使用回复 URL 中指定的功能对我的用户进行身份验证。该函数被命中,参数 SAMLResponse 接收一个 base64 编码的字符串,我可以使用它来验证我系统中的用户。
同样,当用户从 Office365/AD 注销时,在配置应用程序时在注销 URL 中指定的注销功能被调用。我在参数 SAMLRequest 中收到一个编码/加密的字符串。我想知道是否有任何方法可以解码字符串或知道尝试注销 SSO 的用户,以便我可以将该用户从我的系统中注销并释放用户使用的许可证。
解决方案
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();
推荐阅读
- sql - 用于进行更正的数据库视图
- r - 使用 reshape 在 R 中旋转数据
- javascript - 声明一个函数来等待一个承诺
- javascript - 如何从运行 Koa 的 Node 向客户端发送压缩字符串?
- mysql - 如何在 MySQL 中的另一列中共享相同值的表中返回重复项?
- r - 从不均匀的列表创建数据框
- sas - 在 SAS 中,如何转置一个表,为列中的每个唯一值生成一个虚拟变量
- python - 如何重新导入jupyter html文件?
- jquery - jQueryUI Combobox 不呈现“选择一个...”选项与空值
- amazon-web-services - 如何从 Hive 更新 DynamoDB 表