Azure Active Directory B2C özel ilkesinde Microsoft Entra teknik profili tanımlama

Dekont

Azure Active Directory B2C'de özel ilkeler öncelikli olarak karmaşık senaryoları ele almak için tasarlanmıştır. Çoğu senaryoda, yerleşik kullanıcı akışlarını kullanmanızı öneririz. Bunu yapmadıysanız, Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümünde özel ilke başlangıç paketi hakkında bilgi edinin.

Azure Active Directory B2C (Azure AD B2C), Microsoft Entra kullanıcı yönetimi için destek sağlar. Bu makalede, bu standartlaştırılmış protokolü destekleyen bir talep sağlayıcısıyla etkileşime yönelik bir teknik profilin özellikleri açıklanmaktadır.

Protokol

Protocol öğesinin Name özniteliği olarak ayarlanmalıdırProprietary. İşleyici özniteliği, protokol işleyicisi derlemesinin Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nulltam adını içermelidir.

Aşağıdaki özel ilke başlangıç paketi Microsoft Entra teknik profilleri AAD-Common teknik profilini içerir. Protokol AAD-Common teknik profilinde yapılandırıldığından, Microsoft Entra teknik profilleri protokolü belirtmez:

  • AAD-UserReadUsingAlternativeSecurityId ve AAD-UserReadReadUsingAlternativeSecurityId-NoError - Dizinde bir sosyal hesap arayın.
  • AAD-UserWriteUsingAlternativeSecurityId - Yeni bir sosyal hesap oluşturun.
  • AAD-UserReadUsingEmailAddress - Dizinde yerel bir hesap arayın.
  • AAD-UserWriteUsingLogonEmail - Yeni bir yerel hesap oluşturun.
  • AAD-UserWritePasswordUsingObjectId - Yerel hesabın parolasını güncelleştirin.
  • AAD-UserWriteProfileUsingObjectId - Yerel veya sosyal bir hesabın kullanıcı profilini güncelleştirin.
  • AAD-UserReadUsingObjectId - Yerel veya sosyal hesabın kullanıcı profilini okuyun.
  • AAD-UserWrite Telefon NumberUsingObjectId - Yerel veya sosyal bir hesabın MFA telefon numarasını yazın

Aşağıdaki örnekte AAD-Common teknik profili gösterilmektedir:

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
  </CryptographicKeys>

  <!-- We need this here to suppress the SelfAsserted provider from invoking SSO on validation profiles. -->
  <IncludeInSso>false</IncludeInSso>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

InputClaims

InputClaims öğesi, dizinde bir hesap aramak veya yeni bir hesap oluşturmak için kullanılan bir talep içerir. Tüm Microsoft Entra teknik profilleri için giriş talepleri koleksiyonunda tam olarak bir InputClaim öğesi olmalıdır. İlkenizde tanımlanan talebin adını Microsoft Entra Kimliği'nde tanımlanan adla eşlemeniz gerekebilir.

Mevcut bir kullanıcı hesabını okumak, güncelleştirmek veya silmek için giriş talebi, Hesabı Microsoft Entra dizininde benzersiz olarak tanımlayan bir anahtardır. Örneğin objectId, userPrincipalName, signInNames.emailAddress, signInNames.userName veya alternativeSecurityId.

Yeni bir kullanıcı hesabı oluşturmak için giriş talebi, yerel veya federasyon hesabını benzersiz olarak tanımlayan bir anahtardır. Örneğin, yerel hesap: signInNames.emailAddress veya signInNames.userName. Federasyon hesabı için: alternatifSecurityId.

InputClaimsTransformations öğesi, giriş beyanını değiştirmek veya yenisini oluşturmak için kullanılan bir giriş talepleri dönüştürme öğeleri koleksiyonu içerebilir.

OutputClaims

OutputClaims öğesi, Microsoft Entra teknik profili tarafından döndürülen taleplerin listesini içerir. İlkenizde tanımlanan talebin adını Microsoft Entra Kimliği'nde tanımlanan adla eşlemeniz gerekebilir. Özniteliğini ayarladığınız DefaultValue sürece, Microsoft Entra Kimliği tarafından döndürülmedi talepleri de ekleyebilirsiniz.

OutputClaimsTransformations öğesi, çıkış taleplerini değiştirmek veya yenilerini oluşturmak için kullanılan OutputClaimsTransformation öğelerinin bir koleksiyonunu içerebilir.

Örneğin, AAD-UserWriteUsingLogonEmail teknik profili yerel bir hesap oluşturur ve aşağıdaki talepleri döndürür:

  • yeni hesabın tanımlayıcısı olan objectId
  • yeniKullanıcı, kullanıcının yeni olup olmadığını gösterir
  • authenticationSource, kimlik doğrulamasını localAccountAuthentication
  • yeni hesabın kullanıcı asıl adı olan userPrincipalName
  • oturum açma adı olan signInNames.emailAddress, e-posta giriş talebine benzer
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="objectId" />
  <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
  <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
  <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>

PersistedClaims

PersistedClaims öğesi, ilkedeki ClaimsSchema bölümünde tanımlanmış bir talep türü ile Microsoft Entra öznitelik adı arasında olası eşleme bilgileriyle Microsoft Entra Kimliği tarafından kalıcı hale alınması gereken tüm değerleri içerir.

Yeni yerel hesap oluşturan AAD-UserWriteUsingLogonEmail teknik profili aşağıdaki talepleri sürdürmektedir:

  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
    <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />

    <!-- Optional claims. -->
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>

Talebin adı, Microsoft Entra özniteliği adını içeren PartnerClaimType özniteliği belirtilmediği sürece Microsoft Entra özniteliğinin adıdır.

İşlemin gereksinimleri

  • Tüm Microsoft Entra teknik profilleri için talep çantasında tam olarak bir InputClaim öğesi olmalıdır.
  • Kullanıcı profili öznitelikleri makalesi, giriş taleplerinde, çıkış taleplerinde ve kalıcı taleplerde kullanabileceğiniz desteklenen Azure AD B2C kullanıcı profili özniteliklerini açıklar.
  • İşlem veya DeleteClaimsiseWrite, bir PersistedClaims öğesinde de görünmelidir.
  • userPrincipalName talebi değeri biçiminde user@tenant.onmicrosoft.comolmalıdır.
  • displayName talebi gereklidir ve boş bir dize olamaz.

Microsoft Entra teknik profil işlemleri

Okundu

Okuma işlemi tek bir kullanıcı hesabıyla ilgili verileri okur. Aşağıdaki teknik profil, kullanıcının objectId değerini kullanarak bir kullanıcı hesabıyla ilgili verileri okur:

<TechnicalProfile Id="AAD-UserReadUsingObjectId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims>

    <!-- Required claims -->
    <OutputClaim ClaimTypeReferenceId="strongAuthenticationPhoneNumber" />

    <!-- Optional claims -->
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Yaz

Yazma işlemi tek bir kullanıcı hesabı oluşturur veya güncelleştirir. Aşağıdaki teknik profil yeni sosyal hesap oluşturur:

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Write</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />

    <!-- Optional claims -->
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

DeleteClaims

DeleteClaims işlemi, sağlanan talep listesinden bilgileri temizler. Aşağıdaki teknik profil talepleri siler:

<TechnicalProfile Id="AAD-DeleteClaimsUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaims</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="objectId" />
    <PersistedClaim ClaimTypeReferenceId="Verified.strongAuthenticationPhoneNumber" PartnerClaimType="strongAuthenticationPhoneNumber" />
  </PersistedClaims>
  <OutputClaims />
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

DeleteClaimsPrincipal

DeleteClaimsPrincipal işlemi dizinden tek bir kullanıcı hesabını siler. Aşağıdaki teknik profil, kullanıcı asıl adını kullanarak dizinden bir kullanıcı hesabını siler:

<TechnicalProfile Id="AAD-DeleteUserUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Aşağıdaki teknik profil, alternativeSecurityId kullanarak bir sosyal kullanıcı hesabını siler:

<TechnicalProfile Id="AAD-DeleteUserUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Meta veri

Öznitelik Zorunlu Tanım
İşlem Evet Gerçekleştirilecek işlem. Olası değerler: Read, Write, DeleteClaimsveya DeleteClaimsPrincipal.
RaiseErrorIfClaimsPrincipalDoesNotExist Hayır Kullanıcı nesnesi dizinde yoksa bir hata oluşturun. Olası değerler: true veya false.
RaiseErrorIfClaimsPrincipalAlreadyExists Hayır Kullanıcı nesnesi zaten varsa bir hata oluşturun. Olası değerler: true veya false. Bu meta veriler yalnızca Yazma işlemi için geçerlidir.
ApplicationObjectId Hayır Uzantı öznitelikleri için uygulama nesnesi tanımlayıcısı. Değer: Bir uygulamanın ObjectId değeri. Daha fazla bilgi için bkz . Özel öznitelikleri kullanma.
ClientId Hayır Kiracıya üçüncü taraf olarak erişmek için istemci tanımlayıcısı. Daha fazla bilgi için bkz . Özel profil düzenleme ilkesinde özel öznitelikleri kullanma
IncludeClaimResolvingInClaimsHandling Hayır Giriş ve çıkış talepleri için, talep çözümlemesinin teknik profile dahil edilip edilmeyeceğini belirtir. Olası değerler: trueveya false (varsayılan). Teknik profilde bir talep çözümleyicisi kullanmak istiyorsanız, bunu olarak trueayarlayın.

Kullanıcı arabirimi öğeleri

Hata durumunda görüntülenen hata iletisini yapılandırmak için aşağıdaki ayarlar kullanılabilir. Meta veriler kendi kendine onaylanan teknik profilde yapılandırılmalıdır. Hata iletileri yerelleştirilebilir.

Öznitelik Zorunlu Tanım
UserMessageIfClaimsPrincipalAlreadyExists Hayır Hata oluşturulacaksa (bkz. RaiseErrorIfClaimsPrincipalAlreadyExists öznitelik açıklaması), kullanıcı nesnesi zaten varsa kullanıcıya gösterilecek iletiyi belirtin.
UserMessageIfClaimsPrincipalDoesNotExist Hayır Hata oluşturulacaksa (raiseErrorIfClaimsPrincipalDoesNotExist öznitelik açıklamasına bakın), kullanıcı nesnesi yoksa kullanıcıya gösterilecek iletiyi belirtin.

Sonraki adımlar

Microsoft Entra teknik profilini kullanma gibi aşağıdaki makaleye bakın: