saml - 天蓝色 b2c saml 注销网址
问题描述
我使用 SAML 流创建了 azure b2c 自定义策略,但找不到文档我应该在 SP 端使用什么注销 url。我在 saml 策略元数据 xml 中看到的内容:
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://tenant.b2clogin.com/tenant.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/sso/logout"/>
它不适用于我的 SP (zendesk) 并在注销重定向后显示错误:AADB2C99046: The logout request does not include a session index。我调查了 saml 注销请求,它不包含会话索引元素。据我了解,SAML 标准文档 SessionIndex 是可选的。
有没有办法使用 SAML 修复注销功能?
这是微软支持的答案:
在与我们的技术顾问和其他资源分析您的请求后,我们确认对于您将 B2C 充当 SAML 令牌提供者的特定设置,SessionIndex 和 NameID 是必须的,并且需要由您的服务提供商提供。
我知道很难通过将信息传播到各处来跟踪 B2C 中通常需要设置的要求,但在 Azure AD B2C 中支持以下两种方案:
- 让 Azure AD B2C 充当 IdP 并通过基于 SAML 的服务提供商实现 SSO
- 让 Azure AD B2C 作为服务提供商 (SP) 并与基于 SAML 的身份提供商(如 SalesForce 和 ADFS)进行交互。
第一个场景 (1),即您拥有的场景,它需要您的自定义策略来设置您的 SAML 令牌颁发者,以及名为 SM-Saml-Issuer 的 TechnicalProfile 的 SAMLSSOSessionProvider。如果没有来自您的 SP 的 SessionIndex 和 NameID 属性,SAML 会话注销将不起作用。
这是从您的服务提供商处获得成功的 SAML 注销调用的唯一方法。
如果您有任何问题,请告诉我,然后我可以对其进行审核,并在必要时将其转发给我们的专家。
最好的问候,
_____________________________________________________ Victor J. Hernandez | 支持工程师 | Azure 支持
解决方案
大多数使用 SAML 的 SP 将在您通过身份验证后创建自己的会话。此会话仅由设置它的 SP 使用。为此,注销必须执行以下操作:删除所有 SP 会话。
完全退出 SAML SSO 的唯一真正可靠的方法是删除所有会话,包括身份提供者会话和所有服务提供者会话。通常,这可以通过关闭浏览器来完成。
推荐阅读
- c++ - 如何使用 clang++ 覆盖 LD_LIBRARY_PATH 中的共享库?
- php - 使用 fopen PHP 读取从 tesseract 提取的文件时出错
- javascript - 基于复选框将输入框值添加到现有对象
- gosu - (GuideWire 9 ClaimCenter) 无法返回单个 AssignmentSearchType
- kubernetes - Kubernetes仪表板-尝试生成管理员令牌时出现ansible任务错误
- assembly - 考虑到指令的长度不同,CPU 如何知道它应该为下一条指令读取多少字节?
- python - IF 语句依赖于循环
- sql - 在 SQL 中对不同组合进行排序
- json - 使用 jq 从参数而不是标准输入读取 json
- karate - 无法通过 Java 调用创建动态场景大纲