我正在尝试将此政策整合到我的政策中: https://github.com/azure-ad-b2c/samples/blob/master/policies/force-password-reset-after-90-days/readme.md
我创建了所需的自定义用户属性。 接下来,我通过更改用户旅程来编辑扩展文件和登录文件。
注意,client id 和 object id 特意设置为“test”,以便将代码粘贴到此处。
我希望当我注册新用户时,它会将日期设置为 0,90 天后它会要求我进行更改。
目前,如果我尝试进行注册,当我尝试提交包含数据的表单时,我会收到一条消息,提示“为属性提供了无效值”。
我分享信赖方文件:https://easyupload.io/a4tclj
这是我的扩展文件:
<BasePolicy>
<TenantId>b2c.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkLocalization</PolicyId>
</BasePolicy>
<!-- <BuildingBlocks>
<ClaimsSchema>
</ClaimsSchema>
</BuildingBlocks> -->
<ClaimsProviders>
<ClaimsProvider>
<DisplayName>Facebook</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="Facebook-OAUTH">
<Metadata>
<Item Key="client_id">facebook_clientid</Item>
<Item Key="scope">email public_profile</Item>
<Item Key="ClaimsEndpoint">https://graph.facebook.com/me?fields=id,first_name,last_name,name,email</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<!-- SAML Token Issuer technical profile -->
<TechnicalProfile Id="Saml2AssertionIssuer">
<DisplayName>Token Issuer</DisplayName>
<Protocol Name="SAML2" />
<OutputTokenFormat>SAML2</OutputTokenFormat>
<CryptographicKeys>
<Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SAML" />
<Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAML" />
</CryptographicKeys>
<InputClaims />
<OutputClaims />
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
<!-- Session management technical profile for SAML-based tokens -->
<TechnicalProfile Id="SM-Saml-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Local Account SignIn</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="login-NonInteractive">
<Metadata>
<!-- ProxyIdentityExperienceFrameworkAppId -->
<Item Key="client_id">1257aca9-6111-abcs-adca-d740612012fa</Item>
<!-- IdentityExperienceFrameworkAppId -->
<Item Key="IdTokenAudience">10f6e761-c111-dadd-acv0-affb3875cdaf</Item>
</Metadata>
<InputClaims>
<!-- ProxyIdentityExperienceFrameworkAppId -->
<InputClaim ClaimTypeReferenceId="client_id" DefaultValue="1257aca9-6111-abcs-adca-d740612012fa" />
<!-- IdentityExperienceFrameworkAppId -->
<InputClaim ClaimTypeReferenceId="resource_id" PartnerClaimType="resource" DefaultValue="10f6e761-c111-dadd-acv0-affb3875cdaf" />
</InputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Local Account</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="LocalAccountWritePasswordUsingObjectId">
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-Common">
<Metadata>
<!--Insert b2c-extensions-app application ID here, for example: 11111111-1111-1111-1111-111111111111-->
<Item Key="ClientId">83axdc56-1aaa-4bbb-a666-4589cbb7a212</Item>
<!--Insert b2c-extensions-app application ObjectId here, for example: 22222222-2222-2222-2222-222222222222-->
<Item Key="ApplicationObjectId">8d93c18a-d111-4fff-8aaa-43ebedadd5b1</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>
<!--UserJourneys>
</UserJourneys-->
这是用 fiddler 看到的:
@denisdm91 由于我无法看到这些文件,我认为您可能已经发现了问题。如果不是,仅供参考,您创建门户的自定义属性是布尔类型,但在策略中,它是“日期时间”数据类型。您需要从门户中删除相同的内容。