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=null
tam 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
DeleteClaims
iseWrite
, bir PersistedClaims öğesinde de görünmelidir. - userPrincipalName talebi değeri biçiminde
user@tenant.onmicrosoft.com
olmalı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 , DeleteClaims veya 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: true veya false (varsayılan). Teknik profilde bir talep çözümleyicisi kullanmak istiyorsanız, bunu olarak true ayarlayı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: