Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
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}
-
şeması:
- Çıkış talepleri:
-
outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
-
outputClaim:
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
-
outputClaim:
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:
- Bir yerelleştirme dizesi tanımlayın ve bunu kendi kendine onaylanan bir teknik profille ilişkilendirin.
-
ElementTypeöğesininLocalizedStringolarak ayarlanmasıFormatLocalizedStringTransformationClaimTypegerekir. -
StringId, tanımladığınız benzersiz bir tanımlayıcıdır ve daha sonra talep dönüştürmenizdestringFormatIdkullanır. - Talep dönüştürmesinde, yerelleştirilmiş dizeyle ayarlanacak taleplerin listesini belirtin. Ardından öğesini
stringFormatIdStringIdyerelleştirilmiş dize öğesinin değerine ayarlayın. - 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:
ElementTypeöğesininLocalizedStringolarak ayarlanmasıGetLocalizedStringsTransformationClaimTypegerekir.StringId, tanımladığınız benzersiz bir tanımlayıcıdır ve bunu daha sonra talep dönüştürmenizde kullanır.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öğesindeStringIdtanımlandığı gibi yerelleştirilmiş dizeninLocalizedStringadıdır.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.
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österilmektedirapi.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:
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.
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="(?<mailAlias>.*)@(.*)$" />
<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:
(?<mailAlias>.*)@(.*)$ - outputClaimIfMatched: "isEmail"
- extractGroups: true
-
matchTo:
- Çı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" ]
-
inputClaim:
- Giriş parametreleri:
- sınırlayıcı: ","
- Çıkış talepleri:
-
outputClaim:
"Admin,Author,Reader"
-
outputClaim:
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
-
inputClaim:
- Giriş parametreleri:
- sınırlayıcı: ","
- Çıkış talepleri:
-
outputClaim:
[ "Admin", "Author", "Reader" ]
-
outputClaim:
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
- Azure AD B2C topluluğu GitHub deposunda daha fazla talep dönüştürme örneği bulun