2017-08-23 25 views
0

AAD B2Cプロセスでどのようにユーザーのカスタム検証を実行しますか?Azure Active Directory B2Cカスタム検証

I.e. さまざまな属性を持つユーザーのデータベースを持っています ユーザー認証にB2Cを使用したい サインアップしたユーザーがデータベース内の既存のユーザーと正しく一致するようにする必要があります アクセスできるような機密情報がありますこれは本当に重要です。 登録旅行中に、ユーザーに詳細を記入させたいが、その詳細の一部をデータベースに対してチェックし、詳細を正しく完了しなければ登録に失敗する必要があります。 など。 DoB、社会保障番号、住所などの照合

私たちの考えを達成するための正しい方法ですか? https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-rest-api-validation-custom

検証に失敗したらどうなりますか? AADアカウントは削除されますか? 検証を中止したらどうなりますか? B2Cに「最初のログイン」フラグがあります。妥当性検査が失敗し、ユーザーの再試行が行われた場合、このフラグがどのように設定され、誰がそれを制御するのですか?

答えて

0

これは正しい考え方ですか? https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-rest-api-validation-custom

はい、正しいです。

検証に失敗した場合はどうなりますか? AADアカウントは削除されますか?検証が中止されたらどうなりますか?

アカウントは削除されません。 1つのアプローチは、additional attribute/claimを追加して、その値をアプリでチェックすることです。何かのようなIsValidated!IsValidatedの場合は、ユーザーにEdit Profileを送信して確認してください。

Edit Profileユーザーの旅行中に、ユーザーが修正した値を入力すると、IsValidatedtrueに設定されます。

0

また、アカウント登録技術プロファイルによって実行される属性検証をカプセル化する検証技術プロファイルを作成することもできます。例えば

、あなたは社会保障番号とローカルアカウントを登録し、次の技術的プロファイル、持っているかもしれません:実行された「AzureFunctions-CheckCustomer」と呼ばれる最初の検証技術プロファイル、

<TechnicalProfile Id="LocalAccount-Registration"> 
    <DisplayName>Local Account Registration</DisplayName> 
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    <Metadata> 
    <Item Key="ContentDefinitionReferenceId">api.localaccount.registration</Item> 
    <Item Key="IpAddressClaimReferenceId">IpAddress</Item> 
    <Item Key="language.button_continue">Create</Item> 
    </Metadata> 
    <CryptographicKeys> 
    <Key Id="issuer_secret" StorageReferenceId="TokenSigningKeyContainer" /> 
    </CryptographicKeys> 
    <InputClaims> 
    <InputClaim ClaimTypeReferenceId="email" /> 
    </InputClaims> 
    <OutputClaims> 
    <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" /> 
    <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" /> 
    <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" /> 
    <OutputClaim ClaimTypeReferenceId="displayName" Required="true" /> 
    <OutputClaim ClaimTypeReferenceId="extension_SocialSecurityNumber" Required="true" /> 
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" /> 
    <OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" /> 
    <OutputClaim ClaimTypeReferenceId="newUser" /> 
    <OutputClaim ClaimTypeReferenceId="objectId" /> 
    <OutputClaim ClaimTypeReferenceId="sub" /> 
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" /> 
    </OutputClaims> 
    <ValidationTechnicalProfiles> 
    <ValidationTechnicalProfile ReferenceId="AzureFunctions-CheckCustomer" /> 
    <ValidationTechnicalProfile ReferenceId="AzureActiveDirectoryStore-WriteUserByEmail-ThrowIfExists" /> 
    </ValidationTechnicalProfiles> 
    <UseTechnicalProfileForSessionManagement ReferenceId="SSOSession-AzureActiveDirectory" /> 
</TechnicalProfile> 

をエンドユーザは登録フォームを送信し、Azure機能(または他の外部サービス)を呼び出して登録フィールドを検証する。

<TechnicalProfile Id="AzureFunctions-CheckCustomer"> 
    <DisplayName>Check Customer Azure Function</DisplayName> 
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    <Metadata> 
    <Item Key="ServiceUrl">https://contoso.azurewebsites.net/api/CheckCustomer?code=...</Item> 
    <Item Key="AuthenticationType">None</Item> 
    <Item Key="SendClaimsIn">Body</Item> 
    </Metadata> 
    <InputClaims> 
    <InputClaim ClaimTypeReferenceId="extension_SocialSecurityNumber" PartnerClaimType="socialSecurityNumber" /> 
    </InputClaims> 
    <UseTechnicalProfileForSessionManagement ReferenceId="SSOSession-Noop" /> 
</TechnicalProfile> 

Azureの機能は、200 OKを返す場合、「AzureActiveDirectoryStore-WriteUserByEmail-ThrowIfExists」と呼ばれる次の検証技術的なプロファイルは、ローカルアカウントを作成し、エンドユーザーは、次のステップに進むことができます。 Azure関数がエラーメッセージと409の競合を返した場合、ローカルアカウントは作成されず、エラーメッセージがエンドユーザーに表示されます。

関連する問題