B2C作为SalesForce的IdP

时间:2018-06-18 18:59:05

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

B2C全新。尝试了这两个演练,但我仍然缺少一些东西:

https://github.com/Azure-Samples/active-directory-b2c-advanced-policies/blob/master/Walkthroughs/RP-SAML.md

http://blogs.quovantis.com/saml-based-sso-with-azure-ad-b2c-as-an-idp/

这两个都只描述了所需的策略,但我很确定我还需要在B2C上注册一个应用程序吗?我在app注册时遇到的问题是SalesForce为我提供了一个带有查询字符串的令牌端点URL:

https://mycompany.cs79.my.salesforce.com/services/oauth2/token?so=00D1h000000Cnli

B2C不允许回复网址中的查询字符串。

这有什么办法吗?我认为Salesforce还支持OpenID,如果那会更好吗?

::::::::::::更新6/22 ::::::::::

SAML:

我发现并意识到我错过了SalesForce方面的关键步骤:adding the authentication provider to my domain's login page。单击新链接会将我重定向到B2C,但是我从B2C立即收到错误消息。 Application Insights显示以下异常:

  

SAML技术配置文件'serviceProviderMetadata'指定PartnerEntity URL为'REMOVED',但提取元数据失败,原因是'出于安全原因,此XML文档中禁止使用DTD。要启用DTD处理,请将XmlReaderSettings上的DtdProcessing属性设置为Parse,并将设置传递给XmlReader.Create方法。

的OpenID:

使用this写作作为指导,我在B2C中注册了应用并配置了SalesForce端。

我没有使用Azure AD授权端点,而是从我的元数据URL(login.microsoftonline.com/{tenant)/。熟知/ openid-configuration)中提取了我的B2C租户端点。

这适用于我的B2C管理员帐户,但是,当我尝试尝试不是B2C管理员的测试用户时,我从B2C登录页面收到以下错误:

  

抱歉,我们在登录时遇到问题。   AADSTS50020:租户“MTB2CTest”中不存在来自身份提供商“LINK REMOVED”的用户帐户“REMOVED”,并且无法访问该租户中的应用程序“5c8b9f4f-cf28-42fe-b629-b87251532970”。该帐户需要首先作为外部用户添加到租户中。注销并使用其他Azure Active Directory用户帐户重新登录。

::::::::::::更新6/23 ::::::::::

的OpenID:

我发现它仅对我的B2C管理员帐户有效100%如果我不使用政策,但不适用于其他帐户。 当我使用策略时,只有通过策略注册的帐户才能使用B2C进行身份验证(这很棒) - 但令牌似乎没有达到SalesForce。我创建了两个PDF,显示了配置详细信息以及每种方法(策略和权限)here的结果。

2 个答案:

答案 0 :(得分:0)

  

这两个都仅描述了所需的政策,但是我确定我仍然需要在B2C上注册应用程序吗?

不完全是,您无需在B2C端注册应用程序。您在策略中所做的所有配置就足够了。

您尝试过Salesforce SAML SSO文章https://help.salesforce.com/articleView?id=sso_saml.htm&type=5

查看以上文章,尝试在Salesforce端进行配置,并获取 SAML RP

所需的详细信息

我希望通过同时阅读SAML RPConfigure SAML Settings for Single Sign-On文章,您可以将B2C配置为Salesforce的IDP。

答案 1 :(得分:-1)

在尝试将Azure AD B2C实施为Salesforce的IDP时,我偶然发现了这个问题。我们使用Open ID Connect在两者之间启用SSO。这涉及在Azure AD B2C中设置应用程序,在该应用程序上启用读取范围,使用该应用程序在Salesforce中配置连接,返回JWT令牌的自定义策略以及虚拟用户信息终结点。

请查看此答案,以获取有关如何设置Open ID Connect的确切步骤:https://stackoverflow.com/a/61639332/13484109