B2C全新。尝试了这两个演练,但我仍然缺少一些东西:
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的结果。
答案 0 :(得分:0)
这两个都仅描述了所需的政策,但是我确定我仍然需要在B2C上注册应用程序吗?
不完全是,您无需在B2C端注册应用程序。您在策略中所做的所有配置就足够了。
您尝试过Salesforce SAML SSO文章https://help.salesforce.com/articleView?id=sso_saml.htm&type=5
查看以上文章,尝试在Salesforce端进行配置,并获取 SAML RP
所需的详细信息我希望通过同时阅读SAML RP和Configure 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