Teknik profiller

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.

Teknik profil, farklı taraf türleriyle iletişim kurmak için yerleşik bir mekanizmaya sahip bir çerçeve sağlar. Teknik profiller, kullanıcı oluşturmak veya kullanıcı profilini okumak için Azure Active Directory B2C (Azure AD B2C) kiracınızla iletişim kurmak için kullanılır. Kullanıcıyla etkileşimi etkinleştirmek için teknik profil kendi kendine onaylanabilir. Örneğin, bir teknik profil kullanıcının oturum açmak için kimlik bilgilerini toplayabilir ve ardından kaydolma sayfasını veya parola sıfırlama sayfasını işleyebilir.

Teknik profil türleri

Teknik profil şu tür senaryoları etkinleştirir:

Teknik profil akışı

Tüm teknik profil türleri aynı kavramı paylaşır. Giriş taleplerini okuyarak başlarlar ve talep dönüştürmelerini çalıştırırlar. Ardından bir kimlik sağlayıcısı, REST API veya Microsoft Entra dizin hizmetleri gibi yapılandırılmış tarafla iletişim kurar. İşlem tamamlandıktan sonra teknik profil çıkış taleplerini döndürür ve çıkış talep dönüştürmelerini çalıştırabilir. Aşağıdaki diyagramda, teknik profilde başvuruda bulunan dönüştürmelerin ve eşlemelerin nasıl işlendiği gösterilmektedir. Talep dönüştürme işlemi yürütüldükten sonra, teknik profilin etkileşimde olduğu taraf ne olursa olsun çıkış talepleri hemen talep çantasında depolanır.

Diagram that illustrates the technical profile flow.

  1. Çoklu oturum açma (SSO) oturum yönetimi: SSO oturum yönetimini kullanarak teknik profilin oturum durumunu geri yükler.
  2. Giriş talepleri dönüşümü: Teknik profil başlatılmadan önce, Azure AD B2C giriş talepleri dönüştürmesini çalıştırır.
  3. Giriş talepleri: Talepler, teknik profil için kullanılan talep paketinden alınır.
  4. Teknik profil yürütme: Teknik profil, talepleri yapılandırılan tarafla değiştirir. Örneğin:
    • Oturum açma işlemini tamamlamak için kullanıcıyı kimlik sağlayıcısına yönlendirir. Başarılı bir şekilde oturum açıldıktan sonra kullanıcı geri döner ve teknik profil yürütme devam eder.
    • Parametreleri InputClaims olarak gönderirken ve bilgileri OutputClaims olarak geri alırken REST API'yi çağırır.
    • Kullanıcı hesabını oluşturur veya güncelleştirir.
    • Çok faktörlü kimlik doğrulama metin iletisini gönderir ve doğrular.
  5. Doğrulama teknik profilleri: Kendi kendine onaylanan bir teknik profil, kullanıcı tarafından profili oluşturulan verileri doğrulamak için doğrulama teknik profillerini çağırabilir. Doğrulama teknik profillerini yalnızca kendi kendine onaylanan teknik profiller kullanabilir.
  6. Çıkış talepleri: Talepler talep paketine geri döndürülür. Bu talepleri sonraki düzenleme adımında veya çıkış talep dönüştürmelerinde kullanabilirsiniz.
  7. Çıkış talep dönüştürmeleri: Teknik profil tamamlandıktan sonra Azure AD B2C çıkış talep dönüştürmelerini çalıştırır.
  8. SSO oturum yönetimi: SSO oturum yönetimini kullanarak teknik profilin verilerini oturumda kalıcı hale ekler.

TechnicalProfiles öğesi, talep sağlayıcısı tarafından desteklenen bir dizi teknik profil içerir. Her talep sağlayıcısının en az bir teknik profili olmalıdır. Teknik profil, talep sağlayıcısıyla iletişim kurmak için gereken uç noktaları ve protokolleri belirler. Talep sağlayıcısının birden çok teknik profili olabilir.

<ClaimsProvider>
  <DisplayName>Display name</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Technical profile identifier">
      <DisplayName>Display name of technical profile</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        ...
      </Metadata>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

TechnicalProfile öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
Kimlik Evet Teknik profilin benzersiz tanımlayıcısı. teknik profile, ilke dosyasındaki diğer öğelerden bu tanımlayıcı kullanılarak başvurulabilir. OrchestrationSteps ve ValidationTechnicalProfile örnekleri verilmiştir.

TechnicalProfile öğesi aşağıdaki öğeleri içerir:

Öğe Oluşum Açıklama
Domain 0:1 Teknik profilin etki alanı adı. Örneğin, teknik profiliniz Facebook kimlik sağlayıcısını belirtiyorsa, etki alanı adı Facebook.com.
DisplayName 1:1 Teknik profilin görünen adı.
Açıklama 0:1 Teknik profilin açıklaması.
Protokol 1:1 Diğer tarafla iletişim için kullanılan protokol.
Meta veri 0:1 Teknik profilin davranışını denetleyen anahtarlar ve değerler kümesi.
InputTokenFormat 0:1 Giriş belirtecinin biçimi. Olası değerler JSON: , JWT, SAML11veya SAML2. değeri, JWT IETF belirtimi başına bir JSON Web Belirtecini temsil eder. değer, SAML11 OASIS belirtimi başına bir SAML 1.1 güvenlik belirtecini temsil eder. değer, SAML2 OASIS belirtimi başına bir SAML 2.0 güvenlik belirtecini temsil eder.
OutputTokenFormat 0:1 Çıkış belirtecinin biçimi. Olası değerler JSON: , JWT, SAML11veya SAML2.
CryptographicKeys 0:1 Teknik profilde kullanılan şifreleme anahtarlarının listesi.
InputClaimsTransformations 0:1 Talep sağlayıcısına veya bağlı olan tarafa herhangi bir talep gönderilmeden önce yürütülmesi gereken talep dönüştürmelerine önceden tanımlanmış başvuruların listesi.
InputClaims 0:1 Teknik profilde giriş olarak alınan talep türlerine önceden tanımlanmış başvuruların listesi.
PersistedClaims 0:1 Teknik profil tarafından kalıcı hale gelecek talep türlerine önceden tanımlanmış başvuruların listesi.
DisplayClaims 0:1 Kendi kendine onaylanan teknik profil tarafından sunulan talep türlerine yönelik önceden tanımlanmış başvuruların listesi. DisplayClaims özelliği şu anda önizleme aşamasındadır.
OutputClaims 0:1 Teknik profilde çıktı olarak alınan talep türlerine önceden tanımlanmış başvuruların listesi.
OutputClaimsTransformations 0:1 Talep sağlayıcısından talep alındıktan sonra yürütülmesi gereken talep dönüştürmelerine yönelik önceden tanımlanmış başvuruların listesi.
ValidationTechnicalProfiles 0:n Teknik profilin doğrulama amacıyla kullandığı diğer teknik profillere yapılan başvuruların listesi. Daha fazla bilgi için bkz . Doğrulama teknik profili.
SubjectNamingInfo 0:1 Konu adının taleplerden ayrı olarak belirtildiği belirteçlerde konu adının üretimini denetler. Örnek olarak OAuth veya SAML verilebilir.
IncludeInSso 0:1 Bu teknik profilin kullanımı oturum için SSO davranışı uygulamalı mı yoksa bunun yerine açık etkileşim mi gerektirmelidir? Bu öğe yalnızca doğrulama teknik profilinde kullanılan SelfAsserted profillerinde geçerlidir. Olası değerler (varsayılan) veya falseşeklindedir true .
IncludeClaimsFromTechnicalProfile 0:1 Tüm giriş ve çıkış taleplerinin bu teknik profile eklenmesini istediğiniz bir teknik profilin tanımlayıcısı. Başvuruda bulunılan teknik profil aynı ilke dosyasında tanımlanmalıdır.
IncludeTechnicalProfile 0:1 Tüm verilerin bu teknik profile eklenmesini istediğiniz teknik profilin tanımlayıcısı.
UseTechnicalProfileForSessionManagement 0:1 Oturum yönetimi için kullanılacak farklı bir teknik profil.
EnabledForUserJourneys 0:1 Teknik profilin bir kullanıcı yolculuğunda yürütülip yürütülmediğini denetler.

Protokol

Protocol öğesi, diğer tarafla iletişim için kullanılacak protokolü belirtir. Protocol öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
Adı Evet Azure AD B2C tarafından desteklenen ve teknik profilin bir parçası olarak kullanılan geçerli bir protokolün adı. Olası değerler OAuth1: , OAuth2, SAML2, OpenIdConnect, Proprietary, veya None.
İşleyici No Protokol adı olarak Proprietaryayarlandığında, Protokol işleyicisini belirlemek için Azure AD B2C tarafından kullanılan derlemenin adını belirtir. Protokol Adı özniteliğini olarak Noneayarlarsanız İşleyici özniteliğini eklemeyin.

Meta veri

Metadata öğesi, belirli bir protokolle ilgili yapılandırma seçeneklerini içerir. Desteklenen meta verilerin listesi ilgili teknik profil belirtiminde belgelenmiştir. Meta Veri öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
Madde 0:n Teknik profille ilgili meta veriler. Her teknik profil türünün farklı bir meta veri öğeleri kümesi vardır. Daha fazla bilgi için teknik profil türleri bölümüne bakın.

Madde

Metadata öğesinin Item öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
Tuş Evet Meta veri anahtarı. Meta veri öğelerinin listesi için her teknik profil türüne bakın.

Aşağıdaki örnekte, OAuth2 teknik profiliyle ilgili meta verilerin kullanımı gösterilmektedir.

<TechnicalProfile Id="Facebook-OAUTH">
  ...
  <Metadata>
    <Item Key="ProviderName">facebook</Item>
    <Item Key="authorization_endpoint">https://www.facebook.com/dialog/oauth</Item>
    <Item Key="AccessTokenEndpoint">https://graph.facebook.com/oauth/access_token</Item>
    <Item Key="HttpBinding">GET</Item>
    <Item Key="UsePolicyInRedirectUri">0</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

Aşağıdaki örnekte REST API teknik profiliyle ilgili meta verilerin kullanımı gösterilmektedir.

<TechnicalProfile Id="REST-Validate-Email">
  ...
  <Metadata>
    <Item Key="ServiceUrl">https://api.sendgrid.com/v3/mail/send</Item>
    <Item Key="AuthenticationType">Bearer</Item>
    <Item Key="SendClaimsIn">Body</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

Şifreleme anahtarları

Azure AD B2C, tümleştirilmeye devam eden hizmetlerle güven oluşturmak için gizli dizileri ve sertifikaları ilke anahtarları biçiminde depolar. Teknik profil yürütme sırasında, Azure AD B2C şifreleme anahtarlarını Azure AD B2C ilke anahtarlarından alır. Ardından Azure AD B2C, güven oluşturmak veya bir belirteci şifrelemek veya imzalamak için anahtarları kullanır. Bu güvenler şunlardan oluşur:

CryptographicKeys öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
Tuş 1:n Bu teknik profilde kullanılan şifreleme anahtarı.

Tuş

Key öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
Kimlik No İlke dosyasındaki diğer öğelerden başvuruda bulunarak belirli bir anahtar çiftinin benzersiz tanımlayıcısı.
Depolama ReferenceId Evet İlke dosyasındaki diğer öğelerden başvuruda bulunılan bir depolama anahtarı kapsayıcısının tanımlayıcısı.

Giriş talep dönüştürmeleri

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

Talep dönüştürme koleksiyonundaki önceki bir talep dönüştürmesinin çıkış talepleri, sonraki bir giriş talepleri dönüştürmesinin giriş talepleri olabilir. Bu şekilde, birbirine bağlı bir dizi talep dönüştürmesine sahip olabilirsiniz.

InputClaimsTransformations öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
InputClaimsTransformation 1:n Talep sağlayıcısına veya bağlı olan tarafa herhangi bir talep gönderilmeden önce yürütülmesi gereken talep dönüştürmesinin tanımlayıcısı. Talep dönüştürme, mevcut ClaimsSchema taleplerini değiştirmek veya yenilerini oluşturmak için kullanılabilir.

InputClaimsTransformation

InputClaimsTransformation öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
ReferenceId Evet İlke dosyasında veya üst ilke dosyasında zaten tanımlanmış bir talep dönüştürmesinin tanımlayıcısı.

Aşağıdaki teknik profiller CreateOtherMailsFromEmail talep dönüştürmesine başvurur. Talep dönüştürmesi, verileri dizinde kalıcı hale getirmeden otherMails önce talebin değerini email koleksiyona ekler.

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  ...
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  ...
</TechnicalProfile>

Giriş talepleri

InputClaims öğesi, teknik profil için kullanılan talep çantasından talepleri alır. Örneğin, kendi kendine onaylanan bir teknik profil , kullanıcının sağladığı çıkış taleplerini önceden doldurması için giriş beyanlarını kullanır. REST API teknik profili, giriş parametrelerini REST API uç noktasına göndermek için giriş taleplerini kullanır. Azure AD B2C, bir hesabı okumak, güncelleştirmek veya silmek için benzersiz tanımlayıcı olarak bir giriş talebi kullanır.

InputClaims öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
InputClaim 1:n Beklenen giriş talep türü.

InputClaim

InputClaim öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
ClaimTypeReferenceId Evet Talep türünün tanımlayıcısı. Talep, ilke dosyasının veya üst ilke dosyasının talep şeması bölümünde zaten tanımlanmıştır.
DefaultValue No ClaimTypeReferenceId tarafından belirtilen talep mevcut değilse, sonuçta elde edilen talebin teknik profil tarafından InputClaim öğesi olarak kullanılabilmesi için bir talep oluşturmak için kullanılacak varsayılan değerdir.
AlwaysUseDefaultValue Evet Varsayılan değerin kullanımını zorlar.
PartnerClaimType No Belirtilen ilke talep türünün eşlendiğini dış iş ortağının talep türünün tanımlayıcısı. PartnerClaimType özniteliği belirtilmezse, belirtilen ilke talep türü aynı ada sahip iş ortağı talep türüne eşlenir. Talep türü adınız diğer taraftan farklı olduğunda bu özelliği kullanın. Örnek olarak ilk talep adının Name olması, iş ortağının ise first_name adlı bir talep kullanması verilebilir.

Talepleri görüntüleme

DisplayClaims öğesi, kullanıcıdan veri toplamak için ekranda sunulacak taleplerin listesini içerir. Görüntüleme talepleri koleksiyonuna, oluşturduğunuz bir talep türüne veya görüntüleme denetimine başvuru ekleyebilirsiniz.

  • Talep türü, ekranda görüntülenecek bir talep başvurusudur.
    • Kullanıcıyı belirli bir talep için değer sağlamaya zorlamak için DisplayClaim öğesinin Gerekli özniteliğini olarak trueayarlayın.
    • Görüntüleme taleplerinin değerlerini önceden doldurmak için daha önce açıklanan giriş taleplerini kullanın. öğesi varsayılan bir değer de içerebilir.
    • DisplayClaims koleksiyonundaki ClaimType öğesinin UserInputType öğesini Azure AD B2C tarafından desteklenen herhangi bir kullanıcı giriş türüne ayarlaması gerekir. Örnek olarak veya DropdownSingleSelectverilebilirTextBox.
  • Görüntüleme denetimi, özel işlevlere sahip olan ve Azure AD B2C arka uç hizmetiyle etkileşim kuran bir kullanıcı arabirimi öğesidir. Kullanıcının sayfada arka uçta doğrulama teknik profili çağıran eylemler gerçekleştirmesine olanak tanır. E-posta adresini, telefon numarasını veya müşteri sadakat numarasını doğrulamaya örnek olarak gösteriliyor.

DisplayClaims'teki öğelerin sırası, Azure AD B2C'nin ekranda talepleri işleme sırasını belirtir.

DisplayClaims öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
DisplayClaim 1:n Beklenen giriş talep türü.

DisplayClaim

DisplayClaim öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
ClaimTypeReferenceId No İlke dosyasının veya üst ilke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir talep türünün tanımlayıcısı.
DisplayControlReferenceId No İlke dosyasının veya üst ilke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir görüntüleme denetiminin tanımlayıcısı.
Zorunlu No Görüntüleme talebi gerekip gerekmediğini gösterir.

Aşağıdaki örnekte, kendi kendine onaylanan bir teknik profilde görünen taleplerin ve görüntüleme denetimlerinin kullanımı gösterilmektedir.

Screenshot that shows a self-asserted technical profile with display claims.

Aşağıdaki teknik profilde:

  • İlk görüntüleme talebi, e-posta adresini toplayan ve doğrulayan görüntüleme denetimine başvuruda emailVerificationControl bulunur.
  • Beşinci görüntüleme talebi, telefon numarasını toplayan ve doğrulayan ekran denetimine başvuruda phoneVerificationControl bulunur.
  • Diğer görünen talepler, kullanıcıdan toplanacak ClaimType öğeleridir.
<TechnicalProfile Id="Id">
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
    <DisplayClaim DisplayControlReferenceId="phoneVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
  </DisplayClaims>
</TechnicalProfile>

Kalıcı talepler

PersistedClaims öğesi, ilkenin ClaimsSchema bölümünde zaten tanımlanmış bir talep türü ile Microsoft Entra öznitelik adı arasında olası eşleme bilgilerine sahip bir Microsoft Entra ID teknik profili tarafından kalıcı olması gereken tüm değerleri içerir.

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

PersistedClaims öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
PersistedClaim 1:n Kalıcı hale getirmek için talep türü.

PersistedClaim

PersistedClaim öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
ClaimTypeReferenceId Evet İlke dosyasının veya üst ilke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir talep türünün tanımlayıcısı.
DefaultValue No Talep yoksa, talep oluşturmak için kullanılacak varsayılan değerdir.
PartnerClaimType No Belirtilen ilke talep türünün eşlendiğini dış iş ortağının talep türünün tanımlayıcısı. PartnerClaimType özniteliği belirtilmezse, belirtilen ilke talep türü aynı ada sahip iş ortağı talep türüne eşlenir. Talep türü adınız diğer taraftan farklı olduğunda bu özelliği kullanın. Örnek olarak ilk talep adının Name olması, iş ortağının ise first_name adlı bir talep kullanması verilebilir.

Aşağıdaki örnekte, AAD-UserWriteUsingLogonEmail teknik profili veya yeni yerel hesap oluşturan başlangıç paketi aşağıdaki talepleri sürdürmektedir:

<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
  <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
  <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
  <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
  <PersistedClaim ClaimTypeReferenceId="givenName" />
  <PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>

Çıkış talepleri

OutputClaims öğesi, teknik profil tamamlandıktan sonra talep paketine geri döndürülen talep koleksiyonudur. Bu talepleri sonraki düzenleme adımında veya çıkış talep dönüştürmelerinde kullanabilirsiniz. OutputClaims öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
OutputClaim 1:n Beklenen çıkış talep türü.

OutputClaim

OutputClaim öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
ClaimTypeReferenceId Evet İlke dosyasının veya üst ilke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir talep türünün tanımlayıcısı.
DefaultValue No Talep yoksa, talep oluşturmak için kullanılacak varsayılan değerdir.
AlwaysUseDefaultValue No Varsayılan değerin kullanımını zorlar.
PartnerClaimType No Belirtilen ilke talep türünün eşlendiğini dış iş ortağının talep türünün tanımlayıcısı. İş ortağı talep türü özniteliği belirtilmezse, belirtilen ilke talep türü aynı ada sahip iş ortağı talep türüne eşlenir. Talep türü adınız diğer taraftan farklı olduğunda bu özelliği kullanın. Örnek olarak ilk talep adının Name olması, iş ortağının ise first_name adlı bir talep kullanması verilebilir.

Çıkış talep dönüştürmeleri

OutputClaimsTransformations öğesi OutputClaimsTransformation öğelerinin bir koleksiyonunu içerebilir. Çıkış talep dönüştürmeleri, çıkış taleplerini değiştirmek veya yenilerini oluşturmak için kullanılır. Yürütmeden sonra çıkış talepleri talep paketine geri konur. Bu talepleri sonraki düzenleme adımında kullanabilirsiniz.

Talep dönüştürme koleksiyonundaki önceki bir talep dönüştürmesinin çıkış talepleri, sonraki bir giriş talepleri dönüştürmesinin giriş talepleri olabilir. Bu şekilde, birbirine bağlı bir dizi talep dönüştürmesine sahip olabilirsiniz.

OutputClaimsTransformations öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
OutputClaimsTransformation 1:n Talep sağlayıcıya veya bağlı olan tarafa herhangi bir talep gönderilmeden önce yürütülmesi gereken talep dönüştürmelerinin tanımlayıcıları. Talep dönüştürme, mevcut ClaimsSchema taleplerini değiştirmek veya yenilerini oluşturmak için kullanılabilir.

OutputClaimsTransformation

OutputClaimsTransformation öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
ReferenceId Evet İlke dosyasında veya üst ilke dosyasında zaten tanımlanmış bir talep dönüştürmesinin tanımlayıcısı.

Aşağıdaki teknik profil, dizinden talebi okuduktan sonra hesabın etkinleştirilip etkinleştirilmediğini değerlendirmek için AssertAccountEnabledIsTrue talep dönüştürmesine accountEnabled başvurur.

<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="accountEnabled" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  ...
</TechnicalProfile>

Doğrulama teknik profilleri

Doğrulama teknik profili, kendi kendine onaylanan bir teknik profilde çıkış taleplerini doğrulamak için kullanılır. Doğrulama teknik profili, Microsoft Entra Id veya REST API gibi herhangi bir protokolden gelen sıradan bir teknik profildir. Doğrulama teknik profili çıkış taleplerini veya hata kodunu döndürür. Hata iletisi ekranda kullanıcıya işlenir ve bu da kullanıcının yeniden denemesine olanak tanır.

Aşağıdaki diyagramda Azure AD B2C'nin kullanıcı kimlik bilgilerini doğrulamak için doğrulama teknik profilini nasıl kullandığı gösterilmektedir.

Diagram that shows a validation technical profile flow.

ValidationTechnicalProfiles öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
ValidationTechnicalProfile 1:n Kullanılan teknik profillerin tanımlayıcıları, başvuran teknik profilin çıkış taleplerinin bir kısmını veya tümünü doğrular. Başvuruda bulunan teknik profilin tüm giriş talepleri, başvuran teknik profilin çıkış taleplerinde görünmelidir.

ValidationTechnicalProfile

ValidationTechnicalProfile öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
ReferenceId Evet İlke dosyasında veya üst ilke dosyasında zaten tanımlanmış bir teknik profilin tanımlayıcısı.

SubjectNamingInfo

SubjectNamingInfo öğesi, bağlı olan taraf ilkesindeki belirteçlerde kullanılan konu adını tanımlar. SubjectNamingInfo öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
Claimtype Evet İlke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir talep türünün tanımlayıcısı.

Teknik profil ekle

Teknik profil, ayarları değiştirmek veya yeni işlevler eklemek için başka bir teknik profil içerebilir. IncludeTechnicalProfile öğesi, bir teknik profilin türetildiği ortak teknik profile başvurudur. İlke öğelerinizin yedekliliğini ve karmaşıklığını azaltmak için, temel öğeleri paylaşan birden çok teknik profiliniz olduğunda ekleme özelliğini kullanın. Ortak teknik profili içeren belirli görev teknik profilleriyle birlikte ortak yapılandırma kümesiyle ortak bir teknik profil kullanın.

Farklı senaryolar için farklı talep kümeleri göndermeniz gereken tek uç noktaya sahip bir REST API teknik profiliniz olduğunu varsayalım. REST API uç nokta URI'si, meta veriler, kimlik doğrulama türü ve şifreleme anahtarları gibi paylaşılan işlevlerle ortak bir teknik profil oluşturun. Ortak teknik profili içeren belirli görev teknik profilleri oluşturun. Ardından giriş ve çıkış taleplerini ekleyin veya bu teknik profille ilgili REST API uç noktası URI'sinin üzerine yazın.

IncludeTechnicalProfile öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
ReferenceId Evet İlke dosyasında veya üst ilke dosyasında zaten tanımlanmış bir teknik profilin tanımlayıcısı.

Aşağıdaki örnekte eklemenin kullanımı gösterilmektedir:

  • REST-API-Common: Temel yapılandırmaya sahip ortak bir teknik profildir.
  • REST-ValidateProfile: REST-API-Common teknik profilini içerir ve giriş ve çıkış taleplerini belirtir.
  • REST-UpdateProfile: REST-API-Common teknik profilini içerir, giriş taleplerini belirtir ve meta verilerin üzerine yazarServiceUrl.
<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-API-Common">
      <DisplayName>Base REST API configuration</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://your-app-name.azurewebsites.NET/api/identity</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Body</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_B2cRestClientId" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_B2cRestClientSecret" />
      </CryptographicKeys>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-ValidateProfile">
      <DisplayName>Validate the account and return promo code</DisplayName>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
        <InputClaim ClaimTypeReferenceId="userLanguage" PartnerClaimType="lang" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="promoCode" />
      </OutputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-UpdateProfile">
      <DisplayName>Update the user profile</DisplayName>  
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity/update</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
      </InputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Çok düzeyli ekleme

Teknik profil tek bir teknik profil içerebilir. Ekleme düzeylerinin sayısıyla ilgili bir sınır yoktur. Örneğin, AAD-UserReadUsingAlternativeSecurityId-NoError teknik profili AAD-UserReadUsingAlternativeSecurityId içerir. Bu teknik profil, meta veri öğesini olarak true ayarlar RaiseErrorIfClaimsPrincipalDoesNotExist ve dizinde bir sosyal hesap yoksa bir hata oluşturur. AAD-UserReadUsingAlternativeSecurityId-NoError bu davranışı geçersiz kılar ve bu hata iletisini devre dışı bırakır.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId-NoError">
  <Metadata>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
  </Metadata>
  <IncludeTechnicalProfile ReferenceId="AAD-UserReadUsingAlternativeSecurityId" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId teknik profili içerir AAD-Common .

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">User does not exist. Please sign up before you can sign in.</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId-NoError ve AAD-UserReadUsingAlternativeSecurityId, AAD-Common teknik profilinde belirtildiğinden gerekli Protocol öğesini belirtmez.

<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" />
  ...
</TechnicalProfile>

Oturum yönetimi için teknik profil kullanma

UseTechnicalProfileForSessionManagement öğesi SSO oturumu teknik profiline başvurur. UseTechnicalProfileForSessionManagement öğesi aşağıdaki özniteliği içerir:

Öznitelik Zorunlu Açıklama
ReferenceId Evet İlke dosyasında veya üst ilke dosyasında zaten tanımlanmış bir teknik profilin tanımlayıcısı.

Kullanıcı yolculukları için etkinleştirildi

Kullanıcı yolculuğundaki ClaimsProviderSelections , talep sağlayıcısı seçim seçeneklerinin listesini ve bunların siparişini tanımlar. EnabledForUserJourneys öğesiyle, kullanıcının kullanabileceği talep sağlayıcısını filtrelersiniz. EnabledForUserJourneys öğesi aşağıdaki değerlerden birini içerir:

  • Her Zaman: Teknik profili yürütür.
  • Hiçbir zaman: Teknik profili atlar.
  • OnClaimsExistence: Yalnızca teknik profilde belirtilen belirli bir talep mevcut olduğunda yürütülür.
  • OnItemExistenceInStringCollectionClaim: Yalnızca dize koleksiyonu talebinde bir öğe mevcut olduğunda yürütülür.
  • OnItemAbsenceInStringCollectionClaim: Yalnızca bir öğe dize koleksiyonu taleplerinde mevcut olmadığında yürütülür.

OnClaimsExistence, OnItemExistenceInStringCollectionClaim veya OnItemAbsenceInStringCollectionClaim kullanmak için aşağıdaki meta verileri sağlamanız gerekir:

  • ClaimTypeOnWhichToEnable: Değerlendirilecek talebin türünü belirtir.
  • ClaimValueOnWhichToEnable: Karşılaştırılacak değeri belirtir.

Aşağıdaki teknik profil yalnızca identityProviders dize koleksiyonu değerini facebook.comiçeriyorsa yürütülür:

<TechnicalProfile Id="UnLink-Facebook-OAUTH">
  <DisplayName>Unlink Facebook</DisplayName>
...
    <Metadata>
      <Item Key="ClaimTypeOnWhichToEnable">identityProviders</Item>
      <Item Key="ClaimValueOnWhichToEnable">facebook.com</Item>
    </Metadata>
...
  <EnabledForUserJourneys>OnItemExistenceInStringCollectionClaim</EnabledForUserJourneys>
</TechnicalProfile>