Azure AD B2C SelfAssertedAttributeProvider

时间:2019-03-20 14:28:48

标签: azure-ad-b2c

有4个数据URI(删除旧版本)

  props: {
    genericProps: Object,
    id: String,
    citationText: String,
    citationXmlLink: String,
    ciationIsoXmlLink: String,
    ciationGCMDXmlLink: String,
    fixedHeight: Boolean,
    showPlaceholder: Boolean,
  },
  updated: function updated() {
    if (this.genericProps) {
      Object.assign(this, 'props', this.genericProps);
    }
  },

我最担心的是第一个过载的情况,如果我将其作为入门包密码重置旅程的具体示例,则此旅程的第一个技术资料是urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.1.0 此技术资料的内容定义为LocalAccountDiscoveryUsingEmailAddress,数据URI显然为api.localaccountpasswordreset

因此,从用户旅程->编排步骤->技术配置文件-> content-def爬上这个阶梯。 ->数据URI(实际上B2C在其中为浏览器准备了自己的HTML部分),
众所周知,SelfAssertedAttributeProvider中的OutputClaims指示这些声明需要由提供者发送回,因此将从用户那里获取。在此配置文件中,我们具有以下输出声明。 但是很明显,此提供程序不会准备UI小部件来收集objectId或userPrincipalName或authenticationSource的值 因此,通常会提示谁决定哪个输出声明用户?

urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0

谢谢。

3 个答案:

答案 0 :(得分:0)

对于自我声明的技术概要的输出声明可以按以下方式获得:

  1. 从最终用户那里收集
  2. 默认为固定值
  3. 从验证技术资料中返回
  4. 从声明转换中返回

在以下示例中:

  • 电子邮件 newPassword reenterPassword 声明是从最终用户那里收集的
  • execute-SelfAsserted-Input 声明默认为固定值(因此不会提示最终用户)
  • objectId 声明是从 AAD-UserWriteUsingLogonEmail 验证技术配置文件返回的(因此不会提示最终用户)
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" />
    <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
    <OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" AlwaysUseDefaultValue="true" />
    ...
  </OutputClaims>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail" />
  </ValidationTechnicalProfiles>
  ...
</TechnicalProfile>

<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    ...
  </OutputClaims>
  ...
</TechnicalProfile>
The Output claims section中的

the Define a self-asserted technical profile in an Azure Active Directory B2C custom policy article对此进行了进一步解释。

答案 1 :(得分:0)

得到克里斯!非常感谢。 只是为了所有人的利益,我忽略了文档中的以下句子。 “如果自我声明的技术配置文件包含输出相同声明的验证技术配置文件,则Azure AD B2C不会将声明提供给用户。”

谢谢

答案 2 :(得分:0)

我还是要在同一线程上再问一下有关“自我声明”技术资料的说明。

此配置文件中的 CryptographicKeys 有什么需求? 例如,如何在入门包中以逻辑方式使用此签名密钥?

谢谢。