azure - 使用 Salesforce 作为 SAML 的服务提供商 使用 Azure B2C 作为身份提供商,如何识别未正确配置的内容?

标签 azure salesforce single-sign-on azure-ad-b2c saml

过去几天,我一直按照本指南在 SAML 身份验证流程中将 Azure B2C 设置为 IDP - https://learn.microsoft.com/en-us/azure/active-directory-b2c/connect-with-saml-service-providers

这对于让我熟悉自定义策略非常有帮助,并且我能够将其与作为服务提供商的 Microsoft 示例应用程序一起使用,但现在我正在努力弄清楚如何将与示例应用程序一起使用的内容调整为与我尝试的任何真正的服务提供商合作。

具体来说,我想首先将 Salesforce 设置为我们的服务提供商,但遇到了困难,我发现很难排除故障。

到目前为止,我已经在 Salesforce 中创建了单点登录设置,并使用 Azure 自定义策略提供的元数据中的信息加载它,并更新了我们的 SAML 应用程序的 list ,以使identifierUris 指向实体由 Salesforce 中的单点登录设置提供的 ID。加载的数据应该尝试使用与我使用示例应用程序登录时相同的自定义策略,并且我已将适当的身份验证选项添加到 Salesforce 登录页面。 现在,当我尝试通过与此设置相关的 Saleforce 登录页面上的 SSO 按钮登录时,我遇到了此错误,在我什至能够输入我的任何凭据或遇到问题之前,我无法使用 SSO 登录登录屏幕:error

鉴于该错误的性质有些模糊,并且缺乏日志记录或其他工具来进行故障排除,我有点不确定我可能仍然缺少什么才能使其正常工作,或者我什至可以在哪里找到此信息。我怀疑我可能仍然需要的一件事是将 B2C 中的 SAML 应用程序指向来自 Salesforce 的元数据 URL,但我无法追踪在哪里可以找到 Salesforce 期望提供的元数据。在我看来,问题很可能出在 Azure 方面,因为我什至无法达到可以输入 Salesforce 凭据以拒绝 SAML 响应的程度,而且单点登录设置是直接从自定义策略元数据 XML,但我无法确定这两种方式,这也是我不确定下一步要尝试什么的部分原因。

我们还考虑将其设置为 OpenID Connect SSO,但如果可能的话,我们更希望使用 SAML,因为我们还计划将我们的 B2C AD 与需要使用 SAML 的其他几个应用程序连接起来。

很好奇是否有其他人遇到过类似的问题并能够解决它,或者是否有任何方法可以解决我可能忽略的问题。

更新

使用推荐的 SAML 工具,我发现遇到的错误如下: AuthRequest 中对应于 IssuerUri“--EntityID--”注册的应用程序未在其元数据中指定断言消费者服务 URL“--EntityId--”。

根据SF帮助上的论坛帖子forums ,在 Salesforce 中创建的单点登录设置的登录 URL 应是要使用的 URL。但是,当我尝试将此 URL 添加到 Azure 应用程序 list 中的replyUrlsWithType 属性时,我在保存属性时遇到错误,指出属性值无效。

最佳答案

今天,我将 Salesforce 作为服务提供者与 B2C 作为 Idp 进行了集成。我没有尝试创建应用程序注册,而是下载了 Salesforce 元数据并在我的 B2C 策略中使用它,如下面的代码所示。 基本上是相同的,但我没有通过在 B2C 中注册新应用程序来保存 Salesforce 元数据(登录/注销 URI),而是将其保存在 XML 文件中,并指出我的 B2C 策略使用该元数据。

<Metadata>
        <Item Key="PartnerEntity">{Settings:B2C_SAML_PARTNER_ENTITY_SFE}</Item>
</Metadata>

关于azure - 使用 Salesforce 作为 SAML 的服务提供商 使用 Azure B2C 作为身份提供商,如何识别未正确配置的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64595474/

相关文章:

security - OpenID Connect - 在这种情况下是否应该将 id token 发送到 protected 资源?

azure - ARM 中存储队列的专用端点

Azure oauth v2.0 interaction_required 错误与受信任的 ip 和 MFA

python - Azure 上的 pyodbc

Salesforce OAuth 2.0 API : get refresh_token with authorization URL launched in a normal browser

java - 对象未突出显示,尽管它在 Chrome 开发人员工具中显示为唯一

.net - 使用.NET WebBrowser控件,为什么Salesforce.com在用户 session 失效后自动登录用户?

web-applications - 应用程序 '' 未配置为 Multi-Tenancy 应用程序

java - SSO 对 session 超时的影响

c# - 使用 OAuth 连接到 Windows Azure Active Directory