【问题标题】:Azure B2C with Salesforce, missing "objectId"带有 Salesforce 的 Azure B2C,缺少“objectId”
【发布时间】:2018-02-13 15:20:35
【问题描述】:

我正在使用 Salesforce 作为 IdP 测试 Azure B2C,从 Salesforce 的角度来看,登录过程运行良好(Salesforce 身份提供程序事件日志显示“成功”以尝试单唱),但最终重定向回简单的测试 Web 应用程序到错误页面,例如

/redirect.html#error=server_error&error_description=AADB2C90037%3a+An+error+occurred+while+processing+the+request.+Please+contact+administrator+of+the+site+you+are+trying+to+access.%0d%0aCorrelation+ID%3a+f0292157-ffad-472d-8119-3cd05518654c%0d%0aTimestamp%3a+2018-02-13+15%3a01%3a54Z%0d%0a

查看 Application Insights,我看到错误:

A claim could not be found for lookup claim with id "objectId" defined in 
technical profile with id "AAD-UserReadUsingObjectId" policy 
"B2C_1A_SignUpOrSignInUsingSalesforce" of tenant "xyz.onmicrosoft.com".

我已经按照教程here 进行了多次检查,但不确定这个问题是由于无效的 UserJourney 或 ClaimsProvider/TechnicalProfile 造成的。还是只是我在 Salesforce 中缺少 Azure B2C 中的相应用户?

我至少没有看到 saml:Assertion 中传入的“objectId”:

<saml:Assertion xmlns:samlp=\""urn:oasis:names:tc:SAML:2.0:protocol\"" xmlns:xsi=\""http://www.w3.org/2001/XMLSchema-instance\"" ID=\""_b0b0193ce1e861e13ec39f9a991cb3501518533690616\"" Version=\""2.0\"" IssueInstant=\""2018-02-13T14:54:50.616Z\"" xmlns:saml=\""urn:oasis:names:tc:SAML:2.0:assertion\""><saml:Issuer Format=\""urn:oasis:names:tc:SAML:2.0:nameid-format:entity\"">https://XYZ.my.salesforce.com</saml:Issuer><saml:Subject><saml:NameID Format=\""urn:oasis:names:tc:SAML:2.0:nameid-format:transient\"">jussi.palo@XYZ.com</saml:NameID><saml:SubjectConfirmation Method=\""urn:oasis:names:tc:SAML:2.0:cm:bearer\""><saml:SubjectConfirmationData NotOnOrAfter=\""2018-02-13T14:59:50.616Z\"" Recipient=\""https://login.microsoftonline.com/te/XYZauthdev.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer\"" InResponseTo=\""_50a752dd-244c-4447-9ac9-6338e8bb692e\"" /></saml:SubjectConfirmation></saml:Subject><saml:Conditions NotBefore=\""2018-02-13T14:54:20.616Z\"" NotOnOrAfter=\""2018-02-13T14:59:50.616Z\""><saml:AudienceRestriction><saml:Audience>https://login.microsoftonline.com/te/XYZauthdev.onmicrosoft.com/B2C_1A_TrustFrameworkBase</saml:Audience></saml:AudienceRestriction></saml:Conditions><saml:AuthnStatement AuthnInstant=\""2018-02-13T14:54:50.616Z\""><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement><saml:AttributeStatement><saml:Attribute Name=\""userId\"" NameFormat=\""urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified\""><saml:AttributeValue xsi:type=\""xs:anyType\"">0050N0000060rpy</saml:AttributeValue></saml:Attribute><saml:Attribute Name=\""username\"" NameFormat=\""urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified\""><saml:AttributeValue xsi:type=\""xs:anyType\"">jussi.palo@XYZ.com</saml:AttributeValue></saml:Attribute><saml:Attribute Name=\""email\"" NameFormat=\""urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified\""><saml:AttributeValue xsi:type=\""xs:anyType\"">jussi.palo@XYZ.com</saml:AttributeValue></saml:Attribute><saml:Attribute Name=\""is_portal_user\"" NameFormat=\""urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified\""><saml:AttributeValue xsi:type=\""xs:anyType\"">false</saml:AttributeValue></saml:Attribute></saml:AttributeStatement></saml:Assertion>

由于某种原因,用户旅程播放器没有显示任何内容,所以我一直被 Application Insights 困住。

【问题讨论】:

  • 您能否确认在您的租户中创建了用户(从用户和组刀片中检查)? External IDP 的一般流程如下 1. 将用户重定向到 IDP 登录页面 2. 登录成功后,如果用户是第一次登录 B2C 将显示自断言页面,它将在租户中创建用户 3. B2C 读取来自本地租户的用户并发送索赔,如果您有书面政策要发送,它也会从 IDP 发送索赔
  • 谢谢。看起来对于 Salesforce 说明应使用哪些 Starter Pack 策略文件感到困惑。结果证明使用“SocialAndLocalAccounts”策略文件作为基础就可以了,所以我的 UserJourney 一开始是不对的。

标签: azure-ad-b2c


【解决方案1】:

似乎对于应将哪些 Starter Pack 策略文件与 Salesforce 说明一起使用存在混淆。结果证明使用“SocialAndLocalAccounts”策略文件作为基础就可以了,所以我的 UserJourney 一开始是不对的。

我会将问题留给遇到类似错误消息的其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多