Dize talep dönüştürmeleri

Bu makalede, Azure Active Directory B2C'de (Azure AD B2C) Kimlik Deneyimi Çerçevesi şemasının dize talep dönüştürmelerini kullanma örnekleri sağlanır. Daha fazla bilgi için bkz . talep dönüştürmeleri.

AssertStringClaimsAreEqual

İki talebi karşılaştırır ve belirtilen inputClaim1, inputClaim2 ve stringComparison karşılaştırmasına göre eşit değilse bir özel durum oluşturur.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim1 Dize Karşılaştırılacak ilk talebin türü.
InputClaim inputClaim2 Dize karşılaştırılacak ikinci talebin türü.
Inputparameter Stringcomparison Dize dize karşılaştırması, değerlerden biri: Ordinal, OrdinalIgnoreCase.

AssertStringClaimsAreEqual talep dönüşümü her zaman kendi kendine onaylanan bir teknik profil veya DisplayControl tarafından çağrılan bir doğrulama teknik profilinden yürütülür. Kendi UserMessageIfClaimsTransformationStringsAreNotEqual kendine onaylanan bir teknik profilin meta verileri, kullanıcıya sunulan hata iletisini denetler. Hata iletileri yerelleştirilebilir.

Diyagram, onay dizesi taleplerinin eşit talep dönüşümü olduğunu nasıl kullanacağınızı gösterir.

AssertStringClaimsAreEqual örneği

İki talebin aynı değere sahip olduğundan emin olmak için bu talep dönüştürmesini kullanabilirsiniz. Aksi takdirde bir hata iletisi oluşturulur. Aşağıdaki örnek strongAuthenticationEmailAddress talebin e-posta talebine eşit olup olmadığını denetler. Aksi takdirde bir hata iletisi oluşturulur.

<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
  </InputParameters>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Giriş parametreleri:
    • stringComparison: ordinalIgnoreCase
  • Sonuç: Hata oluştu

AssertStringClaimsAreEqual talep dönüştürmesini çağırma

Login-NonInteractive doğrulama teknik profili AssertEmailAndStrongAuthenticationEmailAddressAreEqual talep dönüştürmesini çağırır.

<TechnicalProfile Id="login-NonInteractive">
  ...
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
  </OutputClaimsTransformations>
</TechnicalProfile>

Kendi kendine onaylanan teknik profil, doğrulama oturum açma-Etkileşimsiz teknik profili çağırır.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
  </Metadata>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

BuildUri

Zaman parolası (TOTP) URI'sini temel alan bir zaman oluşturur. URI, kullanıcının e-posta adresi ve gizli anahtar gibi benzersiz tanımlayıcısının birleşimidir. URI daha sonra kullanıcıya sunulan bir QR koduna dönüştürülür. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim yol Dize Kullanıcının e-posta adresi, kullanıcı adı veya telefon numarası gibi benzersiz tanımlayıcısı.
InputClaim query.secret Dize TOTP gizli anahtarı.
Inputparameter scheme Dize URI'nin şema bölümü. Örneğin, otpauth.
Inputparameter host Dize URI'nin şema bölümü. Örneğin, totp.
Inputparameter query.issuer Dize URI'nin veren bölümü. Örneğin, {AuthenticatorIssuer}.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

BuildUri örneği

Aşağıdaki talep dönüştürme, QR Kodunda veya ayrıntılı bağlantıda görüntülenecek bir TOTP URI'sini oluşturur.

<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
    <InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="scheme" DataType="string" Value="otpauth" />
    <InputParameter Id="host" DataType="string" Value="totp" />
    <InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • yol: emily@fabrikam.com
    • query.secret: fay2lj7ynpntjgqa
  • Giriş parametreleri:
    • şeması: otpauth
    • ana bilgisayar: totp
    • query.issuer: {AuthenticatorIssuer}
  • Çıkış talepleri:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

Sağlanan talebin büyük/küçük harf durumunu işlecine bağlı olarak daha küçük veya büyük harf olarak değiştirir. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim1 Dize Değiştirilecek talep.
Inputparameter toCase Dize Aşağıdaki değerlerden biri: LOWER veya UPPER.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

ChangeCase örneği

Aşağıdaki talep dönüştürme, e-posta talebini küçük harfe değiştirir.

<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • e-posta: SomeOne@contoso.com
  • Giriş parametreleri:
    • toCase: LOWER
  • Çıkış talepleri:
    • e-posta: someone@contoso.com

CompareClaims

Bir dize talebi diğerine eşit olup olmadığını belirler. Sonuç, veya falsedeğerine sahip yeni bir boole talebidirtrue. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim1 Dize Karşılaştırılacak ilk talep türü.
InputClaim inputClaim2 Dize Karşılaştırılacak ikinci talep türü.
Inputparameter işleç Dize Olası değerler: EQUAL veya NOT EQUAL.
Inputparameter Ignorecase Dize Bu karşılaştırmanın karşılaştırılan dizelerin büyük/küçük harf durumunu yoksayıp yoksaymayacağını belirtir.
OutputClaim outputClaim boolean Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

CompareClaims Örneği

Bir talebin başka bir taleple eşit olup olmadığını denetlemek için bu talep dönüştürmesini kullanın. Aşağıdaki talep dönüştürme işlemi, e-posta talebi değerinin Verified.Email talebiyle aynı olup olmadığını denetler.

<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Giriş parametreleri:
    • işleç: EŞİt DEĞİl
    • ignoreCase: true
  • Çıkış talepleri:
    • outputClaim: true

CompareClaimToValue

Bir talep değerinin giriş parametresi değerine eşit olup olmadığını belirler. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim1 Dize Karşılaştırılması gereken talebin türü.
Inputparameter işleç Dize Olası değerler: EQUAL veya NOT EQUAL.
Inputparameter compareTo Dize Değerlerden biri olan dize karşılaştırması, yani giriş talep değerlerinin karşılaştırılması gereken dize: Ordinal, OrdinalIgnoreCase.
Inputparameter Ignorecase Dize Bu karşılaştırmanın karşılaştırılan dizelerin büyük/küçük harf durumunu yoksayıp yoksaymayacağını belirtir.
OutputClaim outputClaim boolean Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

CompareClaimToValue örneği

Talebin belirttiğiniz değere eşit olup olmadığını denetlemek için bu talep dönüştürmesini kullanın. Örneğin, aşağıdaki talep dönüştürmesi termsOfUseConsentVersion talebi değerinin değerine V2eşit olup olmadığını denetler.

<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="compareTo" DataType="string" Value="V2" />
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim1: v1
  • Giriş parametreleri:
    • compareTo: V2
    • işleç: EŞİt DEĞİl
    • ignoreCase: true
  • Çıkış talepleri:
    • outputClaim: true

CopyClaimIfPredicateMatch

Giriş talebi değeri çıkış talebi koşuluyla eşleşiyorsa, bir talebin değerini başka bir talepe kopyalar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Kopyalanacak talep türü.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türü. Giriş talebi değeri bu talep koşuluna göre denetlendi.

CopyClaimIfPredicateMatch örneği

Aşağıdaki örnek, signInName talep değerini phoneNumber talebine kopyalamaya çalışır. Bu örnekte değer kopyalanamaz. signInName talebi beklenen biçimde değil, telefon numarası. Örneğin tamamı için bkz. Telefon numarası veya e-postayla oturum açma başlangıç paketi ilkesi.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: bob@contoso.com
  • Çıkış talepleri:
    • outputClaim: Çıkış talebi özgün değerinden değiştirilmez.

Koşulu büyük ölçüde belirten CopyClaimIfPredicateMatch örneği

Bu örnekte, talep dönüştürme değeri kopyalar. signInName talebi doğru biçimde, telefon numarası.

  • Giriş talepleri:
    • inputClaim: +11234567890
  • Çıkış talepleri:
    • outputClaim: +11234567890

CreateOtpSecret

TOTP dize talebi oluşturur. Bu talep dönüştürmesinin çıktısı, daha sonra Azure AD B2C kullanıcısının hesabında depolanan ve Microsoft Authenticator uygulamasıyla paylaşılan bir TOTP gizli dizisidir. Kimlik doğrulayıcı uygulaması, kullanıcının MFA üzerinden geçmesi gerektiğinde TOTP kodları oluşturmak için anahtarını kullanır. İlkeniz, kullanıcı tarafından sağlanan TOTP kodunu doğrulamak için anahtarını kullanır.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep, oluşturulan TOTP koduyla birlikte.

CreateOtpSecret örneği

Aşağıdaki talep dönüştürmesi, TOTP çok faktörlü kimlik doğrulayıcı için bir gizli dizi oluşturur.

<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Çıkış talepleri:
    • outputClaim: hmlcmd4ph6fph64c

CreateRandomString

Rastgele sayı oluşturucuyu kullanarak rastgele bir dize oluşturur. Rastgele sayı oluşturucu türündeyse integeristeğe bağlı olarak bir tohum parametresi ve maksimum sayı sağlanabilir. İsteğe bağlı dize biçimi parametresi çıkışın kullanılarak biçimlendirilmesine olanak tanır ve isteğe bağlı bir base64 parametresi çıkışın base64 kodlanmış randomGeneratorType [guid, integer] outputClaim (Dize) olup olmadığını belirtir.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
Inputparameter randomGeneratorType Dize Oluşturulacak rastgele değeri ( GUID genel benzersiz kimlik) veya INTEGER (bir sayı) belirtir.
Inputparameter Stringformat Dize [İsteğe bağlı] Rastgele değeri biçimlendirin.
Inputparameter base64 boolean [İsteğe bağlı] Rastgele değeri base64'e dönüştürün. Dize biçimi uygulanırsa, dize biçiminden sonraki değer base64 olarak kodlanır.
Inputparameter maximumNumber int [İsteğe bağlı] Yalnızca INTEGER randomGeneratorType için. Maksimum sayıyı belirtin.
Inputparameter Tohum int [İsteğe bağlı] Yalnızca INTEGER randomGeneratorType için. Rastgele değerin tohumunu belirtin. Not: Aynı tohum aynı rastgele sayı dizisini verir.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulacak talepler. Rastgele değer.

CreateRandomString Örneği

Aşağıdaki örnek, genel benzersiz bir kimlik oluşturur. Bu talep dönüştürmesi, rastgele UPN'yi (kullanıcı ilkesi adı) oluşturmak için kullanılır.

<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş parametreleri:
    • randomGeneratorType: GUID
  • Çıkış talepleri:
    • outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc

CreateRandomString örneği sayısal değer oluşturma

Aşağıdaki örnekte 0 ile 1000 arasında rastgele bir tamsayı değeri oluşturulur. Değer OTP_{random value} olarak biçimlendirilir.

<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
    <InputParameter Id="maximumNumber" DataType="int" Value="1000" />
    <InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
    <InputParameter Id="base64" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş parametreleri:
    • randomGeneratorType: INTEGER
    • maximumNumber: 1000
    • stringFormat: OTP_{0}
    • base64: false
  • Çıkış talepleri:
    • outputClaim: OTP_853

CreateStringClaim

Dönüştürmede sağlanan giriş parametresinden bir dize talebi oluşturur. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
Inputparameter değer Dize Ayarlanacak dize. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler.
OutputClaim createdClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep, giriş parametresinde belirtilen değerle.

CreateStringClaim Örneği

Aşağıdaki talep dönüştürmesi, hizmet koşullarına sahip bir dize değeri oluşturur.

<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
  <InputParameters>
    <InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş parametresi:
    • değer: Contoso hizmet koşulları...
  • Çıkış talepleri:
    • createdClaim: TOS talebi "Contoso hizmet koşulları..." Değer.

FormatLocalizedString

Sağlanan yerelleştirilmiş biçim dizesine göre birden çok talep biçimlendirilir. Bu dönüştürme C# String.Format yöntemini kullanır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaims Dize Dize biçimi {0}, , {1}{2} parametreleri gibi davranan giriş talepleri koleksiyonu.
Inputparameter stringFormatId Dize StringId Yerelleştirilmiş dizenin.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

Not

Belirtebileceğiniz giriş talepleri sayısı sınırı yoktur, ancak biçimlendirilmiş dizenin uzunluğu üst sınırı 4000'dir.

FormatLocalizedString talep dönüştürmesini kullanmak için:

  1. Bir yerelleştirme dizesi tanımlayın ve bunu kendi kendine onaylanan bir teknik profille ilişkilendirin.
  2. ElementType öğesinin LocalizedString olarak ayarlanması FormatLocalizedStringTransformationClaimTypegerekir.
  3. StringId, tanımladığınız benzersiz bir tanımlayıcıdır ve daha sonra talep dönüştürmenizde stringFormatIdkullanır.
  4. Talep dönüştürmesinde, yerelleştirilmiş dizeyle ayarlanacak taleplerin listesini belirtin. Ardından öğesini stringFormatIdStringId yerelleştirilmiş dize öğesinin değerine ayarlayın.
  5. Kendi kendine onaylanan bir teknik profilde veya bir görüntüleme denetimi girişi veya çıkış talepleri dönüşümünde, talep dönüştürmenize bir başvuru yapın.

FormatLocalizedString Örneği

Aşağıdaki örnek, bir hesap zaten dizinde olduğunda bir hata iletisi oluşturur. Örnek, İngilizce (varsayılan) ve İspanyolca için yerelleştirilmiş dizeleri tanımlar.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
      </LocalizedStrings>
    </LocalizedResources>
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

Talep dönüştürme, yerelleştirilmiş dizeyi temel alan bir yanıt iletisi oluşturur. İleti, kullanıcının yerelleştirilmiş sting ResponseMessge_EmailExists eklenmiş e-posta adresini içerir.

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: sarah@contoso.com
  • Giriş parametreleri:
    • stringFormat: ResponseMessge_EmailExists
  • Çıkış talepleri:
    • outputClaim: 'sarah@contoso.com' e-postası zaten bu kuruluşta bir hesap. Bu hesapla oturum açmak için İleri'yi seçin.

FormatStringClaim

Bir talebi sağlanan biçim dizesine göre biçimlendirilir. Bu dönüştürme C# String.Format yöntemini kullanır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Dize biçimi {0} parametresi işlevi gören talep.
Inputparameter Stringformat Dize Parametresi de dahil olmak üzere {0} dize biçimi. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

Not

İzin verilen en büyük dize biçimi boyutu 4000'dir.

FormatStringClaim Örneği

Herhangi bir dizeyi tek parametre {0}ile biçimlendirmek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek bir userPrincipalName oluşturur. UserPrincipalName oluşturmak için CreateUserPrincipalName çağrısı gibi Facebook-OAUTH tüm sosyal kimlik sağlayıcısı teknik profilleri.

<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
  • Giriş parametreleri:
    • stringFormat: cpim_{0}@{RelyingPartyTenantId}
  • Çıkış talepleri:
    • outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

sağlanan biçim dizesine göre iki talep biçimlendirilir. Bu dönüştürme C# String.Format yöntemini kullanır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim1 Dize Dize biçimi {0} parametresi işlevi gören talep.
InputClaim inputClaim2 Dize Dize biçimi {1} parametresi işlevi gören talep.
Inputparameter Stringformat Dize ve {1} parametreleri de dahil olmak üzere {0} dize biçimi. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

Not

İzin verilen en büyük dize biçimi boyutu 4000'dir.

FormatStringMultipleClaims Örneği

ve olmak üzere iki parametreli {0}{1}herhangi bir dizeyi biçimlendirmek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, belirtilen biçime sahip bir displayName oluşturur:

<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim1: Joe
    • inputClaim2: Fernando
  • Giriş parametreleri:
    • stringFormat: {0}{1}
  • Çıkış talepleri:
    • outputClaim: Joe Fernando

GetLocalizedStringsTransformation

Yerelleştirilmiş dizeleri taleplere kopyalar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
OutputClaim Yerelleştirilmiş dizenin adı Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türlerinin listesi.

GetLocalizedStringsTransformation talep dönüştürmesini kullanmak için:

  1. İçerik tanımınız için gibi api.selfassertedbir yerelleştirme dizesi tanımlayın.

  2. ElementType öğesinin LocalizedString olarak ayarlanması GetLocalizedStringsTransformationClaimTypegerekir.

  3. StringId, tanımladığınız benzersiz bir tanımlayıcıdır ve bunu daha sonra talep dönüştürmenizde kullanır.

  4. Talep dönüştürmesinde, yerelleştirilmiş dizeyle ayarlanacak taleplerin listesini belirtin. ClaimTypeReferenceId, ilkenin ClaimsSchema bölümünde önceden tanımlanmış bir talebin başvurusudur. TransformationClaimType öğesinde StringId tanımlandığı gibi yerelleştirilmiş dizenin LocalizedString adıdır.

  5. Kendi kendine onaylanan veya talep dönüştürme teknik profilinin talep dönüştürmesinde, talep dönüştürmenize bir başvuru yapın.

  6. Teknik profili gibi api.selfassertediçerik tanımıyla ilişkilendirin. Aşağıdaki örnekte, teknik profilin içerik tanımıyla nasıl ilişkilendirilecekleri gösterilmektedir api.selfasserted .

    <Metadata>
      <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    </Metadata>
    

Aşağıdaki diyagramda, talep dönüştürmesinin yerelleştirme öğeleriyle nasıl yapılandırılır gösterilmektedir:

Diyagramda, get localized strings claims dönüştürmesinin nasıl kullanılacağı gösterilmektedir.

GetLocalizedStringsTransformation Örneği

Aşağıdaki örnek, yerelleştirilmiş dizelerden e-posta konusunu, gövdesini, kod iletinizi ve e-postanın imzasını arar. Daha sonra özel e-posta doğrulama şablonu tarafından kullanılan talepler.

İngilizce (varsayılan) ve İspanyolca için yerelleştirilmiş dizeler tanımlayın.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
     </LocalizedStrings>
   </LocalizedResources>
   <LocalizedResources Id="api.localaccountsignup.es">
     <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

Talep dönüştürme, talep türü konusunun değerini email_subject değeriyle StringIdayarlar.

<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
    <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
    <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
    <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
   </OutputClaims>
</ClaimsTransformation>
  • Çıkış talepleri:
    • konu: Contoso hesabı e-posta doğrulama kodu
    • ileti: Hesabınızı doğruladıktan sonra teşekkür ederiz!
    • codeIntro: Kodunuz
    • imza: Saygılarımızla

GetMappedValueFromLocalizedCollection

Giriş talebindeki bir öğeyi HaritalarKısıtlama koleksiyonu. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim mapFromClaim Dize Restriction collection ile restrictionValueClaim taleplerinde aranacak metni içeren talep.
OutputClaim restrictionValueClaim Dize Kısıtlama koleksiyonunu içeren talep. Talep dönüştürmesi çağrıldıktan sonra, bu talebin değeri seçili öğenin değerini içerir.

GetMappedValueFromLocalizedCollection Örneği

Aşağıdaki örnek, hata anahtarına göre hata iletisi açıklamasını arar. responseMsg talebi, son kullanıcıya sunmak veya bağlı olan tarafa gönderilmek üzere bir hata iletileri koleksiyonu içerir.

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <UserInputType>Paragraph</UserInputType>
  <Restriction>
    <Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
    <Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
    <Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
  </Restriction>
</ClaimType>

Talep dönüştürmesi öğenin metnini arar ve değerini döndürür. Kısıtlama kullanılarak <LocalizedCollection>yerelleştirilirse, talep dönüştürmesi yerelleştirilmiş değeri döndürür.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • mapFromClaim: B2C_V1_90001
  • Çıkış talepleri:
    • restrictionValueClaim: Reşit olmadığınız için oturum alamazsınız.

Lookupvalue

Bir değer listesinden, başka bir talebin değerine göre bir talep değeri arar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputParameterId Dize Arama değerini içeren talep
Inputparameter Dize inputParameters koleksiyonu.
Inputparameter errorOnFailedLookup boolean Eşleşen arama olmadığında bir hatanın döndürülip döndürülmeyeceğini denetleme.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulacak talep. Eşleşen Iddeğerinin değeri.

LookupValue Örneği

Aşağıdaki örnek, inputParameters koleksiyonlarından birinde etki alanı adını arar. Talep dönüştürmesi, tanımlayıcıdaki etki alanı adını arar ve değerini (uygulama kimliği) döndürür.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputParameterId: test.com
  • Giriş parametreleri:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: false
  • Çıkış talepleri:
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

Hata içeren LookupValue örneği

errorOnFailedLookup Giriş parametresi olarak trueayarlandığında LookupValue talep dönüştürmesi her zaman kendi kendine onaylanan bir teknik profil veya DisplayConrtol tarafından çağrılan bir doğrulama teknik profilinden yürütülür. Kendi LookupNotFound kendine onaylanan bir teknik profilin meta verileri, kullanıcıya sunulan hata iletisini denetler.

Diyagramda arama değeri talep dönüştürmesinin nasıl kullanılacağı gösterilmektedir.

Aşağıdaki örnek, inputParameters koleksiyonlarından birinde etki alanı adını arar. Talep dönüştürmesi, tanımlayıcıdaki etki alanı adını arar ve değerini (uygulama kimliği) döndürür veya bir hata iletisi oluşturur.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputParameterId: live.com
  • Giriş parametreleri:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: true
  • Hata:
    • Giriş parametresi kimlikleri listesindeki giriş talep değeri için eşleşme bulunamadı ve errorOnFailedLookup true.

NullClaim

Belirli bir talebin değerini temizler. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
OutputClaim claim_to_null Dize Talebin değeri NULL olarak ayarlanır.

NullClaim Örneği

Oturum tanımlama bilgisinin daha küçük olması için talep özellik paketinden gereksiz verileri kaldırmak için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, talep türünün değerini TermsOfService kaldırır.

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • outputClaim: Contoso Uygulamasına Hoş Geldiniz. Bu web sitesine göz atıp kullanmaya devam ederseniz, aşağıdaki hüküm ve koşullara uymayı ve bağlı kalmayı kabul etmiş olursunuz...
  • Çıkış talepleri:
    • outputClaim: NULL

ParseDomain

E-posta adresinin etki alanı bölümünü alır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim Emailaddress Dize E-posta adresini içeren talep.
OutputClaim etki alanı Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep - etki alanı.

ParseDomain örneği

Etki alanı adını kullanıcının @ simgesinden sonra ayrıştırmak için bu talep dönüştürmesini kullanın. Aşağıdaki talep dönüştürme, etki alanı adının bir e-posta talebinden nasıl ayrıştırılmış olduğunu gösterir.

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • emailAddress: joe@outlook.com
  • Çıkış talepleri:
    • etki alanı: outlook.com

SetClaimIfBooleansMatch

Boole talebi değerinin veya falseolduğunu truedenetler. Evet ise çıkış taleplerini giriş parametresinde outputClaimIfMatched bulunan değerle ayarlar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim claimToMatch Dize Denetlenecek talep türü. Null değer bir özel durum oluşturur.
Inputparameter matchTo Dize Giriş talebiyle claimToMatch karşılaştırılacak değer. Olası değerler: true, veya false.
Inputparameter outputClaimIfMatched Dize Giriş talebi giriş parametresine matchTo eşitse ayarlanacak değer.
OutputClaim outputClaim Dize claimToMatch Giriş talebi giriş parametresine matchTo eşitse, bu çıkış talebi giriş parametresi değerini outputClaimIfMatched içerir.

SetClaimIfBooleansMatch örneği

Örneğin, aşağıdaki talep dönüştürme işlemi hasPromotionCode talebi değerinin değerine trueeşit olup olmadığını denetler. Evet ise, değeri Promosyon kodu bulunamadı olarak döndür.

<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="true" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • claimToMatch: true
  • Giriş parametreleri:
    • matchTo: true
    • outputClaimIfMatched: "Yükseltme kodu bulunamadı."
  • Çıkış talepleri:
    • outputClaim: "Yükseltme kodu bulunamadı."

SetClaimsIfRegexMatch

Bir dize talebi claimToMatch ve matchTo giriş parametresinin eşit olduğunu denetler ve çıkış taleplerini giriş parametresinde outputClaimIfMatched bulunan değerle ve karşılaştırma sonucu olarak veya false karşılaştırma sonucuna göre ayarlanacak true olan karşılaştırma sonucu çıktı talebiyle birlikte ayarlar.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
inputClaim claimToMatch Dize Karşılaştırılacak talep türü.
Inputparameter matchTo Dize Eşleşecek normal ifade.
Inputparameter outputClaimIfMatched Dize Dizeler eşitse ayarlanacak değer.
Inputparameter extractGroups boolean [İsteğe bağlı] Regex eşleşmesinin grup değerlerini ayıklayıp ayıklamayacağını belirtir. Olası değerler: trueveya false (varsayılan).
OutputClaim outputClaim Dize Normal ifade eşleşiyorsa, bu çıkış talebi giriş parametresinin outputClaimIfMatched değerini içerir. Ya da eşleşme yoksa null.
OutputClaim regexCompareResultClaim boolean Normal ifade, eşleştirme sonucuna göre veya false olarak true ayarlanacak sonuç çıktı talep türünü eşleştirır.
OutputClaim Talebin adı Dize extractGroups giriş parametresi true olarak ayarlanırsa, bu talep dönüştürme işleminden sonra oluşturulan talep türlerinin listesi çağrılır. Talebin adı Regex grup adıyla eşleşmelidir.

SetClaimsIfRegexMatch örneği

Telefon numarası normal ifade düzenine göre sağlanan telefon numarasının geçerli olup olmadığını denetler.

<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • claimToMatch: "64854114520"
  • Giriş parametreleri:
    • matchTo: "^[0-9]{4,16}$"
    • outputClaimIfMatched: "Telefon"
  • Çıkış talepleri:
    • outputClaim: "i Telefon"
    • regexCompareResultClaim: true

Ayıklama gruplarıyla SetClaimsIfRegexMatch örneği

Sağlanan e-posta adresinin geçerli olup olmadığını denetler ve e-posta diğer adını döndürür. Ayıklama gruplarıyla bu talep dönüştürmesinin Canlı tanıtımını gözden geçirin.

<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • claimToMatch: "emily@contoso.com"
  • Giriş parametreleri:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: true
  • Çıkış talepleri:
    • outputClaim: "isEmail"
    • regexCompareResultClaim: true
    • mailAlias: emily

SetClaimsIfStringsAreEqual

Bir dize talebi ile matchTo giriş parametresinin eşit olduğunu denetler ve çıkış taleplerini, karşılaştırma sonucu olarak true veya false karşılaştırma sonucuna göre ayarlanacak olan karşılaştırma sonucu talebiyle birlikte, içinde bulunan stringMatchMsg değerle ve stringMatchMsgCode giriş parametreleriyle ayarlar.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Karşılaştırılacak talep türü.
Inputparameter matchTo Dize ile inputClaimkarşılaştırılacak dize.
Inputparameter Stringcomparison Dize Olası değerler: Ordinal veya OrdinalIgnoreCase.
Inputparameter stringMatchMsg Dize Dizeler eşitse ayarlanacak ilk değer.
Inputparameter stringMatchMsgCode Dize Dizeler eşitse ayarlanacak ikinci değer.
OutputClaim outputClaim1 Dize Dizeler eşitse, bu çıkış talebi giriş parametresinin stringMatchMsg değerini içerir.
OutputClaim outputClaim2 Dize Dizeler eşitse, bu çıkış talebi giriş parametresinin stringMatchMsgCode değerini içerir.
OutputClaim stringCompareResultClaim boolean Karşılaştırma sonucu olarak veya false karşılaştırma sonucuna göre ayarlanacak true olan karşılaştırma sonucu çıktı talep türü.

SetClaimsIfStringsAreEqual örneği

Bir talebin belirttiğiniz değere eşit olup olmadığını denetlemek için bu talep dönüştürmesini kullanabilirsiniz. Örneğin, aşağıdaki talep dönüştürmesi termsOfUseConsentVersion talebi değerinin değerine v1eşit olup olmadığını denetler. Evet ise değerini olarak v2değiştirin.

<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="v1" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
    <InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: v1
  • Giriş parametreleri:
    • matchTo: V1
    • stringComparison: ordinalIgnoreCase
    • stringMatchMsgCode: B2C_V1_90005
    • stringMatchMsg: TOS, v2'ye yükseltildi
  • Çıkış talepleri:
    • outputClaim1: B2C_V1_90005
    • outputClaim2: TOS, v2'ye yükseltildi
    • stringCompareResultClaim: true

SetClaimsIfStringsMatch

Bir dize talebi ve matchTo giriş parametresinin eşit olduğunu denetler ve çıkış taleplerini giriş parametresinde outputClaimIfMatched bulunan değerle ve karşılaştırma sonucu olarak veya false karşılaştırma sonucuna göre ayarlanacak true olan karşılaştırma sonucu çıktı talebiyle birlikte ayarlar.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim claimToMatch Dize Karşılaştırılacak talep türü.
Inputparameter matchTo Dize inputClaim ile karşılaştırılacak dize.
Inputparameter Stringcomparison Dize Olası değerler: Ordinal veya OrdinalIgnoreCase.
Inputparameter outputClaimIfMatched Dize Dizeler eşitse ayarlanacak değer.
OutputClaim outputClaim Dize Dizeler eşitse, bu çıkış talebi giriş parametresinin outputClaimIfMatched değerini içerir. Dizeler eşleşmiyorsa null da kullanabilir.
OutputClaim stringCompareResultClaim boolean Karşılaştırma sonucu olarak veya false karşılaştırma sonucuna göre ayarlanacak true olan karşılaştırma sonucu çıktı talep türü.

SetClaimsIfStringsMatch örneği

Örneğin, aşağıdaki talep dönüştürme işlemi ageGroup talebi değerinin değerine eşit Minorolup olmadığını denetler. Evet ise değerini olarak B2C_V1_90001döndür.

<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="Minor" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • claimToMatch: Minor
  • Giriş parametreleri:
    • matchTo: İkincil
    • stringComparison: ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • Çıkış talepleri:
    • isMinorResponseCode: true
    • isMinor: B2C_V1_90001

StringContains

Belirtilen alt dizenin giriş talebi içinde olup olmadığını belirler. Sonuç, veya falsedeğerine sahip yeni bir boole talebidirtrue. true değer parametresi bu dize içinde gerçekleşirse, aksi takdirde , false.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Aranacak talep türü.
Inputparameter içerir Dize Aranacak değer.
Inputparameter Ignorecase Dize Bu karşılaştırmanın karşılaştırılan dizenin büyük/küçük harf durumunu yoksayıp yoksaymayacağını belirtir.
OutputClaim outputClaim Dize Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. Alt dize giriş talebi içinde gerçekleşirse boole göstergesi.

StringContains örneği

Bir dize talep türünün alt dize içerip içermediğini denetlemek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, dize talep türünün admin değerini içerip içermediğini roles denetler.

<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="contains" DataType="string" Value="admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: "Yönetici, Onaylayan, Düzenleyici"
  • Giriş parametreleri:
    • contains: "admin,"
    • ignoreCase: true
  • Çıkış talepleri:
    • outputClaim: true

StringSubstring

Dize talep türünün belirtilen konumdaki karakterden başlayarak bölümlerini ayıklar ve belirtilen karakter sayısını döndürür. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Dizeyi içeren talep türü.
Inputparameter Startındex int Bu örnekteki bir alt dizenin sıfır tabanlı başlangıç karakteri konumu.
Inputparameter uzunluk int Alt dizedeki karakter sayısı.
OutputClaim outputClaim Dize Bu örnekte startIndex ile başlayan uzunluk alt dizesine eşdeğer bir dize veya startIndex bu örneğin uzunluğuna eşitse ve uzunluk sıfırsa Boş.

StringSubstring Örneği

Örneğin, telefon numarası ülke/bölge ön ekini alın.

<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="startIndex" DataType="int" Value="0" />
  <InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: "+1644114520"
  • Giriş parametreleri:
    • startIndex: 0
    • uzunluk: 2
  • Çıkış talepleri:
    • outputClaim: "+1"

StringReplace

Belirtilen bir değer için talep türü dizesini arar ve geçerli dizedeki belirtilen dizenin tüm oluşumlarının başka bir belirtilen dizeyle değiştirildiği yeni bir talep türü dizesi döndürür.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Dizeyi içeren talep türü.
Inputparameter Oldvalue Dize Aranacak dize.
Inputparameter Newvalue Dize Tüm oluşumlarını değiştirecek dize oldValue
OutputClaim outputClaim boolean Tüm oldValue örneklerinin newValue ile değiştirilmesi dışında geçerli dizeye eşdeğer bir dize. Geçerli örnekte oldValue bulunamazsa, yöntemi geçerli örneği değişmeden döndürür.

StringReplace örneği

Örneğin, karakterleri kaldırarak telefon numarasını normalleştirin -

<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="oldValue" DataType="string" Value="-" />
  <InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: "+164-411-452-054"
  • Giriş parametreleri:
    • oldValue: "-"
    • newValue: ""
  • Çıkış talepleri:
    • outputClaim: "+164411452054"

StringJoin

Her öğe veya üye arasında belirtilen ayırıcıyı kullanarak belirtilen dize koleksiyonu talep türünün öğelerini birleştirir.

Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Stringcollection Birleştirilme dizelerini içeren bir koleksiyon.
Inputparameter Sınırlayıcı Dize Virgül gibi ,ayırıcı olarak kullanılacak dize.
OutputClaim outputClaim Dize Giriş parametresiyle ayrılmış dize koleksiyonunun inputClaim üyelerinden delimiter oluşan bir dize.

StringJoin Örneği

Aşağıdaki örnek, kullanıcı rollerinden oluşan bir dize koleksiyonu alır ve bunu virgül sınırlayıcı dizesine dönüştürür. Bir dize koleksiyonunu Azure AD B2C kullanıcı hesabında depolamak için bu yöntemi kullanabilirsiniz. Daha sonra, dizinden hesabı okurken, virgül sınırlayıcı dizesini dize koleksiyonuna geri dönüştürmek için öğesini kullanın StringSplit .

<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
  <InputClaims>
   <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter DataType="string" Id="delimiter" Value="," />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: [ "Admin", "Author", "Reader" ]
  • Giriş parametreleri:
    • sınırlayıcı: ","
  • Çıkış talepleri:
    • outputClaim: "Admin,Author,Reader"

StringSplit

Bu örnekte belirtilen dizenin öğeleriyle ayrılmış alt dizeleri içeren bir dize dizisi döndürür. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim Dize Bölünecek alt dizeleri içeren bir dize talep türü.
Inputparameter Sınırlayıcı Dize Virgül gibi ,ayırıcı olarak kullanılacak dize.
OutputClaim outputClaim Stringcollection Öğeleri bu dizedeki giriş parametresiyle delimiter ayrılmış alt dizeleri içeren bir dize koleksiyonu.

Not

stringCollection içindeki OutputClaim mevcut öğeler kaldırılır.

StringSplit örneği

Aşağıdaki örnek, kullanıcı rollerinin virgül sınırlayıcı dizesini alır ve bunu dize koleksiyonuna dönüştürür.

<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
  <InputParameter DataType="string" Id="delimiter" Value="," />
    </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: Admin,Author,Reader
  • Giriş parametreleri:
    • sınırlayıcı: ","
  • Çıkış talepleri:
    • outputClaim: [ "Admin", "Author", "Reader" ]

Dize talebi dönüştürme ifadeleri

Azure AD B2C özel ilkelerindeki talep dönüştürme ifadeleri, kiracı kimliği ve teknik profil kimliği hakkında bağlam bilgileri sağlar.

Expression Açıklama Örnek
{TechnicalProfileId} Teknik profileId adı. Facebook-OAUTH
{RelyingPartyTenantId} Bağlı olan taraf ilkesinin kiracı kimliği. your-tenant.onmicrosoft.com
{TrustFrameworkTenantId} Güven çerçevesinin kiracı kimliği. your-tenant.onmicrosoft.com

Sonraki adımlar