Dize talep dönüştürmeleri
Bu makalede, Azure Active Directory B2C'de (Azure AD B2C) Kimlik Deneyimi Çerçevesi şemasının dize talep dönüştürmelerini kullanma örnekleri sağlanır. Daha fazla bilgi için bkz . talep dönüştürmeleri.
AssertStringClaimsAreEqual
İki talebi karşılaştırır ve belirtilen inputClaim1, inputClaim2 ve stringComparison karşılaştırmasına göre eşit değilse bir özel durum oluşturur.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim1 | Dize | Karşılaştırılacak ilk talebin türü. |
InputClaim | inputClaim2 | Dize | karşılaştırılacak ikinci talebin türü. |
InputParameter | stringComparison | Dize | dize karşılaştırması, değerlerden biri: Ordinal, OrdinalIgnoreCase. |
AssertStringClaimsAreEqual talep dönüşümü her zaman kendi kendine onaylanan bir teknik profil veya DisplayControl tarafından çağrılan bir doğrulama teknik profilinden yürütülür. Kendi UserMessageIfClaimsTransformationStringsAreNotEqual
kendine onaylanan bir teknik profilin meta verileri, kullanıcıya sunulan hata iletisini denetler. Hata iletileri yerelleştirilebilir.
AssertStringClaimsAreEqual örneği
İki talebin aynı değere sahip olduğundan emin olmak için bu talep dönüştürmesini kullanabilirsiniz. Aksi takdirde bir hata iletisi oluşturulur. Aşağıdaki örnek strongAuthenticationEmailAddress talebin e-posta talebine eşit olup olmadığını denetler. Aksi takdirde bir hata iletisi oluşturulur.
<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
</InputParameters>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Giriş parametreleri:
- stringComparison: ordinalIgnoreCase
- Sonuç: Hata oluştu
AssertStringClaimsAreEqual talep dönüştürmesini çağırma
Login-NonInteractive doğrulama teknik profili AssertEmailAndStrongAuthenticationEmailAddressAreEqual talep dönüştürmesini çağırır.
<TechnicalProfile Id="login-NonInteractive">
...
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
</OutputClaimsTransformations>
</TechnicalProfile>
Kendi kendine onaylanan teknik profil, doğrulama oturum açma-Etkileşimsiz teknik profili çağırır.
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<Metadata>
<Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
</Metadata>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
BuildUri
Zaman parolası (TOTP) URI'sini temel alan bir zaman oluşturur. URI, kullanıcının e-posta adresi ve gizli anahtar gibi benzersiz tanımlayıcısının birleşimidir. URI daha sonra kullanıcıya sunulan bir QR koduna dönüştürülür. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | yol | Dize | Kullanıcının e-posta adresi, kullanıcı adı veya telefon numarası gibi benzersiz tanımlayıcısı. |
InputClaim | query.secret | Dize | TOTP gizli anahtarı. |
InputParameter | scheme | Dize | URI'nin şema bölümü. Örneğin, otpauth . |
InputParameter | host | Dize | URI'nin şema bölümü. Örneğin, totp . |
InputParameter | query.issuer | Dize | URI'nin veren bölümü. Örneğin, {AuthenticatorIssuer} . |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
BuildUri örneği
Aşağıdaki talep dönüştürme, QR Kodunda veya ayrıntılı bağlantıda görüntülenecek bir TOTP URI'sini oluşturur.
<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
<InputClaims>
<InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
<InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
</InputClaims>
<InputParameters>
<InputParameter Id="scheme" DataType="string" Value="otpauth" />
<InputParameter Id="host" DataType="string" Value="totp" />
<InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- yol: emily@fabrikam.com
-
query.secret:
fay2lj7ynpntjgqa
- Giriş parametreleri:
-
şeması:
otpauth
-
ana bilgisayar:
totp
-
query.issuer:
{AuthenticatorIssuer}
-
ş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 |
---|---|---|---|
InputClaim | inputClaim1 | Dize | Değiştirilecek talep. |
InputParameter | toCase | Dize | Aşağıdaki değerlerden biri: LOWER veya UPPER . |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
ChangeCase örneği
Aşağıdaki talep dönüştürme, e-posta talebini küçük harfe değiştirir.
<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- e-posta: SomeOne@contoso.com
- Giriş parametreleri:
- toCase: LOWER
- Çıkış talepleri:
- e-posta: someone@contoso.com
CompareClaims
Bir dize talebi diğerine eşit olup olmadığını belirler. Sonuç, veya false
değerine sahip yeni bir boole talebidirtrue
. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim1 | Dize | Karşılaştırılacak ilk talep türü. |
InputClaim | inputClaim2 | Dize | Karşılaştırılacak ikinci talep türü. |
InputParameter | işleç | Dize | Olası değerler: EQUAL veya NOT EQUAL . |
InputParameter | ignoreCase | Dize | Bu karşılaştırmanın karşılaştırılan dizelerin büyük/küçük harf durumunu yoksayıp yoksaymayacağını belirtir. |
OutputClaim | outputClaim | boolean | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
CompareClaims Örneği
Bir talebin başka bir taleple eşit olup olmadığını denetlemek için bu talep dönüştürmesini kullanın. Aşağıdaki talep dönüştürme işlemi, e-posta talebi değerinin Verified.Email talebiyle aynı olup olmadığını denetler.
<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Giriş parametreleri:
- işleç: EŞİt DEĞİl
- ignoreCase: true
- Çıkış talepleri:
- outputClaim: true
CompareClaimToValue
Bir talep değerinin giriş parametresi değerine eşit olup olmadığını belirler. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim1 | Dize | Karşılaştırılması gereken talebin türü. |
InputParameter | işleç | Dize | Olası değerler: EQUAL veya NOT EQUAL . |
InputParameter | compareTo | Dize | Değerlerden biri olan dize karşılaştırması, yani giriş talep değerlerinin karşılaştırılması gereken dize: Ordinal, OrdinalIgnoreCase. |
InputParameter | ignoreCase | Dize | Bu karşılaştırmanın karşılaştırılan dizelerin büyük/küçük harf durumunu yoksayıp yoksaymayacağını belirtir. |
OutputClaim | outputClaim | boolean | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
CompareClaimToValue örneği
Talebin belirttiğiniz değere eşit olup olmadığını denetlemek için bu talep dönüştürmesini kullanın. Örneğin, aşağıdaki talep dönüştürmesi termsOfUseConsentVersion talebi değerinin değerine V2
eşit olup olmadığını denetler.
<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="compareTo" DataType="string" Value="V2" />
<InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim1: v1
- Giriş parametreleri:
- compareTo: V2
- işleç: EŞİt DEĞİl
- ignoreCase: true
- Çıkış talepleri:
- outputClaim: true
CopyClaimIfPredicateMatch
Giriş talebi değeri çıkış talebi koşuluyla eşleşiyorsa, bir talebin değerini başka bir talepe kopyalar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim | Dize | Kopyalanacak talep türü. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türü. Giriş talebi değeri bu talep koşuluna göre denetlendi. |
CopyClaimIfPredicateMatch örneği
Aşağıdaki örnek, signInName talep değerini phoneNumber talebine kopyalamaya çalışır. Bu örnekte değer kopyalanamaz. signInName talebi beklenen biçimde değil, telefon numarası. 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 |
---|---|---|---|
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep, oluşturulan TOTP koduyla birlikte. |
CreateOtpSecret örneği
Aşağıdaki talep dönüştürmesi, TOTP çok faktörlü kimlik doğrulayıcı için bir gizli dizi oluşturur.
<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Çıkış talepleri:
-
outputClaim:
hmlcmd4ph6fph64c
-
outputClaim:
CreateRandomString
Rastgele sayı oluşturucuyu kullanarak rastgele bir dize oluşturur. Rastgele sayı oluşturucu türündeyse integer
isteğe bağlı olarak bir tohum parametresi ve maksimum sayı sağlanabilir. İsteğe bağlı dize biçimi parametresi çıkışın kullanılarak biçimlendirilmesine olanak tanır ve isteğe bağlı bir base64 parametresi çıkışın base64 kodlanmış randomGeneratorType [guid, integer] outputClaim (Dize) olup olmadığını belirtir.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputParameter | randomGeneratorType | Dize | Oluşturulacak rastgele değeri ( GUID genel benzersiz kimlik) veya INTEGER (bir sayı) belirtir. |
InputParameter | stringFormat | Dize | [İsteğe bağlı] Rastgele değeri biçimlendirin. |
InputParameter | base64 | boolean | [İsteğe bağlı] Rastgele değeri base64'e dönüştürün. Dize biçimi uygulanırsa, dize biçiminden sonraki değer base64 olarak kodlanır. |
InputParameter | maximumNumber | int | [İsteğe bağlı] Yalnızca INTEGER randomGeneratorType için. Maksimum sayıyı belirtin. |
InputParameter | tohum | int | [İsteğe bağlı] Yalnızca INTEGER randomGeneratorType için. Rastgele değerin tohumunu belirtin. Not: Aynı tohum aynı rastgele sayı dizisini verir. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulacak talepler. Rastgele değer. |
CreateRandomString Örneği
Aşağıdaki örnek, genel benzersiz bir kimlik oluşturur. Bu talep dönüştürmesi, rastgele UPN'yi (kullanıcı ilkesi adı) oluşturmak için kullanılır.
<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş parametreleri:
- randomGeneratorType: GUID
- Çıkış talepleri:
- outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc
CreateRandomString örneği sayısal değer oluşturma
Aşağıdaki örnekte 0 ile 1000 arasında rastgele bir tamsayı değeri oluşturulur. Değer OTP_{random value} olarak biçimlendirilir.
<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
<InputParameter Id="maximumNumber" DataType="int" Value="1000" />
<InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
<InputParameter Id="base64" DataType="boolean" Value="false" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş parametreleri:
- randomGeneratorType: INTEGER
- maximumNumber: 1000
- stringFormat: OTP_{0}
- base64: false
- Çıkış talepleri:
- outputClaim: OTP_853
CreateStringClaim
Dönüştürmede sağlanan giriş parametresinden bir dize talebi oluşturur. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputParameter | değer | Dize | Ayarlanacak dize. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler. |
OutputClaim | createdClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep, giriş parametresinde belirtilen değerle. |
CreateStringClaim Örneği
Aşağıdaki talep dönüştürmesi, hizmet koşullarına sahip bir dize değeri oluşturur.
<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
<InputParameters>
<InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş parametresi:
- değer: Contoso hizmet koşulları...
- Çıkış talepleri:
- createdClaim: TOS talebi "Contoso hizmet koşulları..." değer.
FormatLocalizedString
Sağlanan yerelleştirilmiş biçim dizesine göre birden çok talep biçimlendirilir. Bu dönüştürme C# String.Format
yöntemini kullanır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaims | Dize | Dize biçimi {0}, , {1}{2} parametreleri gibi davranan giriş talepleri koleksiyonu. | |
InputParameter | stringFormatId | Dize |
StringId Yerelleştirilmiş dizenin. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
Not
Belirtebileceğiniz giriş talepleri sayısı sınırı yoktur, ancak biçimlendirilmiş dizenin uzunluğu üst sınırı 4000'dir.
FormatLocalizedString talep dönüştürmesini kullanmak için:
- Bir yerelleştirme dizesi tanımlayın ve bunu kendi kendine onaylanan bir teknik profille ilişkilendirin.
-
ElementType
öğesininLocalizedString
olarak ayarlanmasıFormatLocalizedStringTransformationClaimType
gerekir. -
StringId
, tanımladığınız benzersiz bir tanımlayıcıdır ve daha sonra talep dönüştürmenizdestringFormatId
kullanır. - Talep dönüştürmesinde, yerelleştirilmiş dizeyle ayarlanacak taleplerin listesini belirtin. Ardından öğesini
stringFormatId
StringId
yerelleş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ş sting 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 |
---|---|---|---|
InputClaim | inputClaim | Dize | Dize biçimi {0} parametresi işlevi gören talep. |
InputParameter | stringFormat | Dize | Parametresi de dahil olmak üzere {0} dize biçimi. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
Not
İzin verilen en büyük dize biçimi boyutu 4000'dir.
FormatStringClaim Örneği
Herhangi bir dizeyi tek parametre {0}ile biçimlendirmek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek bir userPrincipalName oluşturur. UserPrincipalName oluşturmak için CreateUserPrincipalName çağrısı gibi Facebook-OAUTH
tüm sosyal kimlik sağlayıcısı teknik profilleri.
<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
- Giriş parametreleri:
- stringFormat: cpim_{0}@{RelyingPartyTenantId}
- Çıkış talepleri:
- outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com
FormatStringMultipleClaims
sağlanan biçim dizesine göre iki talep biçimlendirilir. Bu dönüştürme C# String.Format
yöntemini kullanır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim1 | Dize | Dize biçimi {0} parametresi işlevi gören talep. |
InputClaim | inputClaim2 | Dize | Dize biçimi {1} parametresi işlevi gören talep. |
InputParameter | stringFormat | Dize | ve {1} parametreleri de dahil olmak üzere {0} dize biçimi. Bu giriş parametresi, dize talep dönüştürme ifadelerini destekler. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. |
Not
İzin verilen en büyük dize biçimi boyutu 4000'dir.
FormatStringMultipleClaims Örneği
ve olmak üzere iki parametreli {0}{1}herhangi bir dizeyi biçimlendirmek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, belirtilen biçime sahip bir displayName oluşturur:
<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim1: Joe
- inputClaim2: Fernando
- Giriş parametreleri:
- stringFormat: {0}{1}
- Çıkış talepleri:
- outputClaim: Joe Fernando
GetLocalizedStringsTransformation
Yerelleştirilmiş dizeleri taleplere kopyalar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
OutputClaim | Yerelleştirilmiş dizenin adı | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türlerinin listesi. |
GetLocalizedStringsTransformation talep dönüştürmesini kullanmak için:
İçerik tanımınız için gibi
api.selfasserted
bir yerelleştirme dizesi tanımlayın.ElementType
öğesininLocalizedString
olarak ayarlanmasıGetLocalizedStringsTransformationClaimType
gerekir.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
öğesindeStringId
tanımlandığı gibi yerelleştirilmiş dizeninLocalizedString
adı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.selfasserted
iç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 StringId
ayarlar.
<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 |
---|---|---|---|
InputClaim | mapFromClaim | Dize | Restriction collection ile restrictionValueClaim taleplerinde aranacak metni içeren talep. |
OutputClaim | restrictionValueClaim | Dize | Kısıtlama koleksiyonunu içeren talep. Talep dönüştürmesi çağrıldıktan sonra, bu talebin değeri seçili öğenin değerini içerir. |
GetMappedValueFromLocalizedCollection Örneği
Aşağıdaki örnek, hata anahtarına göre hata iletisi açıklamasını arar. responseMsg talebi, son kullanıcıya sunmak veya bağlı olan tarafa gönderilmek üzere bir hata iletileri koleksiyonu içerir.
<ClaimType Id="responseMsg">
<DisplayName>Error message: </DisplayName>
<DataType>string</DataType>
<UserInputType>Paragraph</UserInputType>
<Restriction>
<Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
<Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
<Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
</Restriction>
</ClaimType>
Talep dönüştürmesi öğenin metnini arar ve değerini döndürür. Kısıtlama kullanılarak <LocalizedCollection>
yerelleştirilirse, talep dönüştürmesi yerelleştirilmiş değeri döndürür.
<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- mapFromClaim: B2C_V1_90001
- Çıkış talepleri:
- restrictionValueClaim: Reşit olmadığınız için oturum alamazsınız.
LookupValue
Bir değer listesinden, başka bir talebin değerine göre bir talep değeri arar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputParameterId | Dize | Arama değerini içeren talep |
InputParameter | Dize | inputParameters koleksiyonu. | |
InputParameter | errorOnFailedLookup | boolean | Eşleşen arama olmadığında bir hatanın döndürülip döndürülmeyeceğini denetleme. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulacak talep. Eşleşen Id değ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 true
ayarlandığı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 |
---|---|---|---|
OutputClaim | claim_to_null | Dize | Talebin değeri NULL olarak ayarlanır. |
NullClaim Örneği
Oturum tanımlama bilgisinin daha küçük olması için talep özellik paketinden gereksiz verileri kaldırmak için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, talep türünün değerini TermsOfService
kaldırır.
<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- outputClaim: Contoso Uygulamasına Hoş Geldiniz. Bu web sitesine göz atıp kullanmaya devam ederseniz, aşağıdaki hüküm ve koşullara uymayı ve bağlı kalmayı kabul etmiş olursunuz...
- Çıkış talepleri:
- outputClaim: NULL
ParseDomain
E-posta adresinin etki alanı bölümünü alır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | emailAddress | Dize | E-posta adresini içeren talep. |
OutputClaim | etki alanı | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep - etki alanı. |
ParseDomain örneği
Etki alanı adını kullanıcının @ simgesinden sonra ayrıştırmak için bu talep dönüştürmesini kullanın. Aşağıdaki talep dönüştürme, etki alanı adının bir e-posta talebinden nasıl ayrıştırılmış olduğunu gösterir.
<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- emailAddress: joe@outlook.com
- Çıkış talepleri:
- etki alanı: outlook.com
SetClaimIfBooleansMatch
Boole talebi değerinin veya false
olduğunu true
denetler. Evet ise çıkış taleplerini giriş parametresinde outputClaimIfMatched
bulunan değerle ayarlar. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | claimToMatch | Dize | Denetlenecek talep türü. Null değer bir özel durum oluşturur. |
InputParameter | matchTo | Dize | Giriş talebiyle claimToMatch karşılaştırılacak değer. Olası değerler: true , veya false . |
InputParameter | outputClaimIfMatched | Dize | Giriş talebi giriş parametresine matchTo eşitse ayarlanacak değer. |
OutputClaim | outputClaim | Dize |
claimToMatch Giriş talebi giriş parametresine matchTo eşitse, bu çıkış talebi giriş parametresi değerini outputClaimIfMatched içerir. |
SetClaimIfBooleansMatch örneği
Örneğin, aşağıdaki talep dönüştürme işlemi hasPromotionCode talebi değerinin değerine true
eşit olup olmadığını denetler. Evet ise, değeri Promosyon kodu bulunamadı olarak döndür.
<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="true" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- claimToMatch: true
- Giriş parametreleri:
- matchTo: true
- outputClaimIfMatched: "Yükseltme kodu bulunamadı."
- Çıkış talepleri:
- outputClaim: "Yükseltme kodu bulunamadı."
SetClaimsIfRegexMatch
Bir dize talebi claimToMatch
ve matchTo
giriş parametresinin eşit olduğunu denetler ve çıkış taleplerini giriş parametresinde outputClaimIfMatched
bulunan değerle ve karşılaştırma sonucu olarak veya false
karşılaştırma sonucuna göre ayarlanacak true
olan karşılaştırma sonucu çıktı talebiyle birlikte ayarlar.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
inputClaim | claimToMatch | Dize | Karşılaştırılacak talep türü. |
InputParameter | matchTo | Dize | Eşleşecek normal ifade. |
InputParameter | outputClaimIfMatched | Dize | Dizeler eşitse ayarlanacak değer. |
InputParameter | extractGroups | boolean | [İsteğe bağlı] Regex eşleşmesinin grup değerlerini ayıklayıp ayıklamayacağını belirtir. Olası değerler: true veya false (varsayılan). |
OutputClaim | outputClaim | Dize | Normal ifade eşleşiyorsa, bu çıkış talebi giriş parametresinin outputClaimIfMatched değerini içerir. Ya da eşleşme yoksa null. |
OutputClaim | regexCompareResultClaim | boolean | Normal ifade, eşleştirme sonucuna göre veya false olarak true ayarlanacak sonuç çıktı talep türünü eşleştirır. |
OutputClaim | Talebin adı | Dize | extractGroups giriş parametresi true olarak ayarlanırsa, bu talep dönüştürme işleminden sonra oluşturulan talep türlerinin listesi çağrılır. Talebin adı Regex grup adıyla eşleşmelidir. |
SetClaimsIfRegexMatch örneği
Telefon numarası normal ifade düzenine göre sağlanan telefon numarasının geçerli olup olmadığını denetler.
<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- claimToMatch: "64854114520"
- Giriş parametreleri:
- matchTo: "^[0-9]{4,16}$"
- outputClaimIfMatched: "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 true
veya false
karşılaştırma sonucuna göre ayarlanacak olan karşılaştırma sonucu talebiyle birlikte, içinde bulunan stringMatchMsg
değerle ve stringMatchMsgCode
giriş parametreleriyle ayarlar.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim | Dize | Karşılaştırılacak talep türü. |
InputParameter | matchTo | Dize | ile inputClaim karşılaştırılacak dize. |
InputParameter | stringComparison | Dize | Olası değerler: Ordinal veya OrdinalIgnoreCase . |
InputParameter | stringMatchMsg | Dize | Dizeler eşitse ayarlanacak ilk değer. |
InputParameter | stringMatchMsgCode | Dize | Dizeler eşitse ayarlanacak ikinci değer. |
OutputClaim | outputClaim1 | Dize | Dizeler eşitse, bu çıkış talebi giriş parametresinin stringMatchMsg değerini içerir. |
OutputClaim | outputClaim2 | Dize | Dizeler eşitse, bu çıkış talebi giriş parametresinin stringMatchMsgCode değerini içerir. |
OutputClaim | stringCompareResultClaim | boolean | Karşılaştırma sonucu olarak veya false karşılaştırma sonucuna göre ayarlanacak true olan karşılaştırma sonucu çıktı talep türü. |
SetClaimsIfStringsAreEqual örneği
Bir talebin belirttiğiniz değere eşit olup olmadığını denetlemek için bu talep dönüştürmesini kullanabilirsiniz. Örneğin, aşağıdaki talep dönüştürmesi termsOfUseConsentVersion talebi değerinin değerine v1
eşit olup olmadığını denetler. Evet ise değerini olarak v2
değiştirin.
<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="v1" />
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
<InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
<InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim: v1
- Giriş parametreleri:
- matchTo: V1
- stringComparison: ordinalIgnoreCase
- stringMatchMsgCode: B2C_V1_90005
- stringMatchMsg: TOS, v2'ye yükseltildi
- Çıkış talepleri:
- outputClaim1: B2C_V1_90005
- outputClaim2: TOS, v2'ye yükseltildi
- stringCompareResultClaim: true
SetClaimsIfStringsMatch
Bir dize talebi ve matchTo
giriş parametresinin eşit olduğunu denetler ve çıkış taleplerini giriş parametresinde outputClaimIfMatched
bulunan değerle ve karşılaştırma sonucu olarak veya false
karşılaştırma sonucuna göre ayarlanacak true
olan karşılaştırma sonucu çıktı talebiyle birlikte ayarlar.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | claimToMatch | Dize | Karşılaştırılacak talep türü. |
InputParameter | matchTo | Dize | inputClaim ile karşılaştırılacak dize. |
InputParameter | stringComparison | Dize | Olası değerler: Ordinal veya OrdinalIgnoreCase . |
InputParameter | outputClaimIfMatched | Dize | Dizeler eşitse ayarlanacak değer. |
OutputClaim | outputClaim | Dize | Dizeler eşitse, bu çıkış talebi giriş parametresinin outputClaimIfMatched değerini içerir. Dizeler eşleşmiyorsa null da kullanabilir. |
OutputClaim | stringCompareResultClaim | boolean | Karşılaştırma sonucu olarak veya false karşılaştırma sonucuna göre ayarlanacak true olan karşılaştırma sonucu çıktı talep türü. |
SetClaimsIfStringsMatch örneği
Örneğin, aşağıdaki talep dönüştürme işlemi ageGroup talebi değerinin değerine eşit Minor
olup olmadığını denetler. Evet ise değerini olarak B2C_V1_90001
dö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 false
değerine sahip yeni bir boole talebidirtrue
.
true
değer parametresi bu dize içinde gerçekleşirse, aksi takdirde , false
.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim | Dize | Aranacak talep türü. |
InputParameter | içerir | Dize | Aranacak değer. |
InputParameter | ignoreCase | Dize | Bu karşılaştırmanın karşılaştırılan dizenin büyük/küçük harf durumunu yoksayıp yoksaymayacağını belirtir. |
OutputClaim | outputClaim | Dize | Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep. Alt dize giriş talebi içinde gerçekleşirse boole göstergesi. |
StringContains örneği
Bir dize talep türünün alt dize içerip içermediğini denetlemek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, dize talep türünün admin değerini içerip içermediğini roles
denetler.
<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
</InputClaims>
<InputParameters>
<InputParameter Id="contains" DataType="string" Value="admin"/>
<InputParameter Id="ignoreCase" DataType="string" Value="true"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim: "Yönetici, Onaylayan, Düzenleyici"
- Giriş parametreleri:
- contains: "admin,"
- ignoreCase: true
- Çıkış talepleri:
- outputClaim: true
StringSubstring
Dize talep türünün belirtilen konumdaki karakterden başlayarak bölümlerini ayıklar ve belirtilen karakter sayısını döndürür. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim | Dize | Dizeyi içeren talep türü. |
InputParameter | startIndex | int | Bu örnekteki bir alt dizenin sıfır tabanlı başlangıç karakteri konumu. |
InputParameter | uzunluk | int | Alt dizedeki karakter sayısı. |
OutputClaim | outputClaim | Dize | Bu örnekte startIndex ile başlayan uzunluk alt dizesine eşdeğer bir dize veya startIndex bu örneğin uzunluğuna eşitse ve uzunluk sıfırsa Boş. |
StringSubstring Örneği
Örneğin, telefon numarası ülke/bölge ön ekini alın.
<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="startIndex" DataType="int" Value="0" />
<InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim: "+1644114520"
- Giriş parametreleri:
- startIndex: 0
- uzunluk: 2
- Çıkış talepleri:
- outputClaim: "+1"
StringReplace
Belirtilen bir değer için talep türü dizesini arar ve geçerli dizedeki belirtilen dizenin tüm oluşumlarının başka bir belirtilen dizeyle değiştirildiği yeni bir talep türü dizesi döndürür.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim | Dize | Dizeyi içeren talep türü. |
InputParameter | oldValue | Dize | Aranacak dize. |
InputParameter | newValue | Dize | Tüm oluşumlarını değiştirecek dize oldValue |
OutputClaim | outputClaim | boolean | Tüm oldValue örneklerinin newValue ile değiştirilmesi dışında geçerli dizeye eşdeğer bir dize. Geçerli örnekte oldValue bulunamazsa, yöntemi geçerli örneği değişmeden döndürür. |
StringReplace örneği
Örneğin, karakterleri kaldırarak telefon numarasını normalleştirin -
<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="oldValue" DataType="string" Value="-" />
<InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
- inputClaim: "+164-411-452-054"
- Giriş parametreleri:
- oldValue: "-"
- newValue: ""
- Çıkış talepleri:
- outputClaim: "+164411452054"
StringJoin
Her öğe veya üye arasında belirtilen ayırıcıyı kullanarak belirtilen dize koleksiyonu talep türünün öğelerini birleştirir.
Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.
Öğe | TransformationClaimType | Veri Türü | Notlar |
---|---|---|---|
InputClaim | inputClaim | stringCollection | Birleştirilme dizelerini içeren bir koleksiyon. |
InputParameter | sınırlayıcı | Dize | Virgül gibi , ayırıcı olarak kullanılacak dize. |
OutputClaim | outputClaim | Dize | Giriş parametresiyle ayrılmış dize koleksiyonunun inputClaim üyelerinden delimiter oluşan bir dize. |
StringJoin Örneği
Aşağıdaki örnek, kullanıcı rollerinden oluşan bir dize koleksiyonu alır ve bunu virgül sınırlayıcı dizesine dönüştürür. Bir dize koleksiyonunu Azure AD B2C kullanıcı hesabında depolamak için bu yöntemi kullanabilirsiniz. Daha sonra, dizinden hesabı okurken, virgül sınırlayıcı dizesini dize koleksiyonuna geri dönüştürmek için öğesini kullanın StringSplit
.
<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter DataType="string" Id="delimiter" Value="," />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
-
inputClaim:
[ "Admin", "Author", "Reader" ]
-
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 |
---|---|---|---|
InputClaim | inputClaim | Dize | Bölünecek alt dizeleri içeren bir dize talep türü. |
InputParameter | sınırlayıcı | Dize | Virgül gibi , ayırıcı olarak kullanılacak dize. |
OutputClaim | outputClaim | stringCollection | Öğeleri bu dizedeki giriş parametresiyle delimiter ayrılmış alt dizeleri içeren bir dize koleksiyonu. |
Not
stringCollection içindeki OutputClaim
mevcut öğeler kaldırılır.
StringSplit örneği
Aşağıdaki örnek, kullanıcı rollerinin virgül sınırlayıcı dizesini alır ve bunu dize koleksiyonuna dönüştürür.
<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
<InputClaims>
<InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter DataType="string" Id="delimiter" Value="," />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Giriş talepleri:
-
inputClaim:
Admin,Author,Reader
-
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.
Expression | Açıklama | Örnek |
---|---|---|
{TechnicalProfileId} |
Teknik profileId adı. | Facebook-OAUTH |
{RelyingPartyTenantId} |
Bağlı olan taraf ilkesinin kiracı kimliği. | your-tenant.onmicrosoft.com |
{TrustFrameworkTenantId} |
Güven çerçevesinin kiracı kimliği. | your-tenant.onmicrosoft.com |
Sonraki adımlar
- Azure AD B2C topluluğu GitHub deposunda daha fazla talep dönüştürme örneği bulun