Aracılığıyla paylaş


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

Önemli

1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.

Uyarı

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-UserWritePhoneNumberUsingObjectId - 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 (Girdi İddiaları)

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.

Çıktı İddiaları

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>

Kalıcı İddialar

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 WriteiseDeleteClaims, 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

Okumak

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>

Yazmak

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>

İddiaları Sil

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 veriler

Özellik Gerekli Açıklama
Operasyon Evet Gerçekleştirilecek işlem. Olası değerler: Read, Write, DeleteClaimsveya DeleteClaimsPrincipal.
RaiseErrorIfClaimsPrincipalDoesNotExist Hayı Kullanıcı nesnesi dizinde yoksa bir hata oluşturun. Olası değerler: true veya false.
RaiseErrorIfClaimsPrincipalAlreadyExists Hayı 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ı 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.
İstemci Kimliği Hayı 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ı 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.

Özellik Gerekli Açıklama
UserMessageIfClaimsPrincipalAlreadyExists Hayı Hata oluşturulacaksa (bkz. RaiseErrorIfClaimsPrincipalAlreadyExists öznitelik açıklaması), kullanıcı nesnesi zaten varsa kullanıcıya gösterilecek iletiyi belirtin.
UserMessageIfClaimsPrincipalDoesNotExist Hayı 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: