Aracılığıyla paylaş


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
Giriş İddiası inputClaim1 Dize Karşılaştırılacak ilk talebin türü.
Giriş İddiası inputClaim2 Dize karşılaştırılacak ikinci talebin türü.
Girdi Parametresi 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
Giriş İddiası yol Dize Kullanıcının e-posta adresi, kullanıcı adı veya telefon numarası gibi benzersiz tanımlayıcısı.
Giriş İddiası query.secret Dize TOTP gizli anahtarı.
Girdi Parametresi tertip etmek Dize URI'nin şema bölümü. Örneğin, otpauth.
Girdi Parametresi ev sahibi Dize URI'nin şema bölümü. Örneğin, totp.
Girdi Parametresi query.issuer Dize URI'nin veren bölümü. Örneğin, {AuthenticatorIssuer}.
Çıktı İddiası 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
Giriş İddiası inputClaim1 Dize Değiştirilecek talep.
Girdi Parametresi toCase Dize Aşağıdaki değerlerden biri: LOWER veya UPPER.
Çıktı İddiası 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 truedeğerine sahip yeni bir boole talebidirfalse. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
Giriş İddiası inputClaim1 Dize Karşılaştırılacak ilk talep türü.
Giriş İddiası inputClaim2 Dize Karşılaştırılacak ikinci talep türü.
Girdi Parametresi işleç Dize Olası değerler: EQUAL veya NOT EQUAL.
Girdi Parametresi 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.
Çıktı İddiası 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: doğru

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
Giriş İddiası inputClaim1 Dize Karşılaştırılması gereken talebin türü.
Girdi Parametresi işleç Dize Olası değerler: EQUAL veya NOT EQUAL.
Girdi Parametresi 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.
Girdi Parametresi 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.
Çıktı İddiası 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: doğru

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
Giriş İddiası inputClaim Dize Kopyalanacak talep türü.
Çıktı İddiası 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ı. Tam örnek 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
Çıktı İddiası 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
Girdi Parametresi randomGeneratorType Dize Oluşturulacak rastgele değeri ( GUID genel benzersiz kimlik) veya INTEGER (bir sayı) belirtir.
Girdi Parametresi stringFormat Dize [İsteğe bağlı] Rastgele değeri biçimlendirin.
Girdi Parametresi 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.
Girdi Parametresi maximumNumber Int [İsteğe bağlı] Yalnızca INTEGER randomGeneratorType için. Maksimum sayıyı belirtin.
Girdi Parametresi 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.
Çıktı İddiası 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
Girdi Parametresi değer Dize Ayarlanacak dize. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler.
Çıktı İddiası 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 (Girdi İddiaları) Dize Dize biçimi {0}, , {1}{2} parametreleri gibi davranan giriş talepleri koleksiyonu.
Girdi Parametresi stringFormatId Dize StringId Yerelleştirilmiş dizenin.
Çıktı İddiası 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="ResponseMessage_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="ResponseMessage_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ş dize ResponseMessage_EmailExists eklenmiş e-posta adresini içerir.

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessage_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: sarah@contoso.com
  • Giriş parametreleri:
    • stringFormat: ResponseMessage_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
Giriş İddiası inputClaim Dize Dize biçimi {0} parametresi işlevi gören talep.
Girdi Parametresi stringFormat Dize Parametresi de dahil olmak üzere {0} dize biçimi. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler.
Çıktı İddiası 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. UserPrincipalNameFacebook-OAUTHiçin CreateUserPrincipalName çağrısı gibi 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
Giriş İddiası inputClaim1 Dize Dize biçimi {0} parametresi işlevi gören talep.
Giriş İddiası inputClaim2 Dize Dize biçimi {1} parametresi işlevi gören talep.
Girdi Parametresi stringFormat Dize ve {0} parametreleri de dahil olmak üzere {1} dize biçimi. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler.
Çıktı İddiası 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
Çıktı İddiası 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 bir api.selfasserted 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ş talebi kısıtlama koleksiyonundaki bir öğeyi eşler. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
Giriş İddiası mapFromClaim Dize Restriction collection ile restrictionValueClaim taleplerinde aranacak metni içeren talep.
Çıktı İddiası 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.

Arama Değeri

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
Giriş İddiası inputParameterId Dize Arama değerini içeren talep
Girdi Parametresi Dize inputParameters koleksiyonu.
Girdi Parametresi errorOnFailedLookup Boolean Eşleşen arama olmadığında bir hatanın döndürülip döndürülmeyeceğini denetleme.
Çıktı İddiası 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
Çıktı İddiası 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
Giriş İddiası e-posta adresi Dize E-posta adresini içeren talep.
Çıktı İddiası 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 trueolduğunu falsedenetler. 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
Giriş İddiası claimToMatch Dize Denetlenecek talep türü. Null değer bir özel durum oluşturur.
Girdi Parametresi matchTo Dize Giriş talebiyle claimToMatch karşılaştırılacak değer. Olası değerler: true, veya false.
Girdi Parametresi outputClaimIfMatched Dize Giriş talebi giriş parametresine matchTo eşitse ayarlanacak değer.
Çıktı İddiası 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 true karşılaştırma sonucuna göre ayarlanacak false 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ü.
Girdi Parametresi matchTo Dize Eşleşecek normal ifade.
Girdi Parametresi outputClaimIfMatched Dize Dizeler eşitse ayarlanacak değer.
Girdi Parametresi 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).
Çıktı İddiası outputClaim Dize Normal ifade eşleşiyorsa, bu çıkış talebi giriş parametresinin outputClaimIfMatched değerini içerir. Ya da eşleşme yoksa null.
Çıktı İddiası regexCompareResultClaim Boolean Normal ifade, eşleştirme sonucuna göre veya true olarak false ayarlanacak sonuç çıktı talep türünü eşleştirır.
Çıktı İddiası 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: "Phone"
  • Çıkış talepleri:
    • outputClaim: "iPhone"
    • 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 stringMatchMsg veya stringMatchMsgCode karşılaştırma sonucuna göre ayarlanacak olan karşılaştırma sonucu talebiyle birlikte, içinde bulunan true değerle ve false 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
Giriş İddiası inputClaim Dize Karşılaştırılacak talep türü.
Girdi Parametresi matchTo Dize ile inputClaimkarşılaştırılacak dize.
Girdi Parametresi stringComparison Dize Olası değerler: Ordinal veya OrdinalIgnoreCase.
Girdi Parametresi stringMatchMsg Dize Dizeler eşitse ayarlanacak ilk değer.
Girdi Parametresi stringMatchMsgCode Dize Dizeler eşitse ayarlanacak ikinci değer.
Çıktı İddiası outputClaim1 Dize Dizeler eşitse, bu çıkış talebi giriş parametresinin stringMatchMsg değerini içerir.
Çıktı İddiası outputClaim2 Dize Dizeler eşitse, bu çıkış talebi giriş parametresinin stringMatchMsgCode değerini içerir.
Çıktı İddiası stringCompareResultClaim Boolean Karşılaştırma sonucu olarak veya true karşılaştırma sonucuna göre ayarlanacak false 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 true karşılaştırma sonucuna göre ayarlanacak false 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
Giriş İddiası claimToMatch Dize Karşılaştırılacak talep türü.
Girdi Parametresi matchTo Dize inputClaim ile karşılaştırılacak dize.
Girdi Parametresi stringComparison Dize Olası değerler: Ordinal veya OrdinalIgnoreCase.
Girdi Parametresi outputClaimIfMatched Dize Dizeler eşitse ayarlanacak değer.
Çıktı İddiası outputClaim Dize Dizeler eşitse, bu çıkış talebi giriş parametresinin outputClaimIfMatched değerini içerir. Dizeler eşleşmiyorsa null da kullanabilir.
Çıktı İddiası stringCompareResultClaim Boolean Karşılaştırma sonucu olarak veya true karşılaştırma sonucuna göre ayarlanacak false 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 truedeğerine sahip yeni bir boole talebidirfalse. 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
Giriş İddiası inputClaim Dize Aranacak talep türü.
Girdi Parametresi içerir Dize Aranacak değer.
Girdi Parametresi 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.
Çıktı İddiası 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 adminrolesiçerip içermediğini 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: doğru

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
Giriş İddiası inputClaim Dize Dizeyi içeren talep türü.
Girdi Parametresi startIndex Int Bu örnekteki bir alt dizenin sıfır tabanlı başlangıç karakteri konumu.
Girdi Parametresi uzunluk Int Alt dizedeki karakter sayısı.
Çıktı İddiası 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
Giriş İddiası inputClaim Dize Dizeyi içeren talep türü.
Girdi Parametresi oldValue Dize Aranacak dize.
Girdi Parametresi newValue Dize Tüm oluşumlarını değiştirecek dize oldValue
Çıktı İddiası 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
Giriş İddiası inputClaim dize koleksiyonu Birleştirilme dizelerini içeren bir koleksiyon.
Girdi Parametresi sınırlayıcı Dize Virgül gibi ,ayırıcı olarak kullanılacak dize.
Çıktı İddiası 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
Giriş İddiası inputClaim Dize Bölünecek alt dizeleri içeren bir dize talep türü.
Girdi Parametresi sınırlayıcı Dize Virgül gibi ,ayırıcı olarak kullanılacak dize.
Çıktı İddiası outputClaim dize koleksiyonu Öğ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.

İfade 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