Przekształcenia oświadczeń ciągów
Ten artykuł zawiera przykłady użycia przekształceń oświadczeń ciągu schematu struktury środowiska tożsamości w usłudze Azure Active Directory B2C (Azure AD B2C). Aby uzyskać więcej informacji, zobacz przekształcenia oświadczeń.
AssertStringClaimsAreEqual
Porównuje dwa oświadczenia i zgłasza wyjątek, jeśli nie są równe zgodnie z określonymi danymi wejściowymi porównaniaClaim1, inputClaim2 i stringComparison.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim1 | string | Typ pierwszego oświadczenia, który ma być porównywany. |
InputClaim | inputClaim2 | string | Drugi typ oświadczenia, który ma być porównywany. |
InputParameter | stringComparison | string | porównanie ciągów, jedna z wartości: Porządkowa, Porządkowa IgnoreCase. |
Przekształcenie AssertStringClaimsAreEqual oświadczeń jest zawsze wykonywane z profilu technicznego weryfikacji, który jest wywoływany przez własny profil techniczny lub DisplayControl. Metadane UserMessageIfClaimsTransformationStringsAreNotEqual
self-asserted profilu technicznego steruje komunikatem o błędzie wyświetlanym użytkownikowi. Komunikaty o błędach mogą być zlokalizowane.
Przykład assertStringClaimsAreEqual
Możesz użyć tej transformacji oświadczeń, aby upewnić się, że dwa oświadczenia mają tę samą wartość. Jeśli nie, zostanie zgłoszony komunikat o błędzie. Poniższy przykład sprawdza, czy oświadczenie strongAuthenticationEmailAddress jest równe oświadczenia e-mail . W przeciwnym razie zostanie zgłoszony komunikat o błędzie.
<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>
- Oświadczenia wejściowe:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Parametry wejściowe:
- stringComparison: ordinalIgnoreCase
- Wynik: zgłoszony błąd
Wywoływanie przekształcenia claims AssertStringClaimsAreEqual
Profil techniczny weryfikacji logowania nonInteractive wywołuje przekształcenie oświadczeń AssertEmailAndStrongAuthenticationEmailAddressAreEqual.
<TechnicalProfile Id="login-NonInteractive">
...
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
</OutputClaimsTransformations>
</TechnicalProfile>
Profil techniczny samodzielnie asercyjny wywołuje profil techniczny login-NonInteractive weryfikacji.
<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>
Identyfikator BuildUri
Tworzy czas na podstawie identyfikatora URI hasła czasowego (TOTP). Identyfikator URI jest kombinacją unikatowego identyfikatora użytkownika, takiego jak adres e-mail i klucz tajny. Identyfikator URI zostanie później przekonwertowany na kod QR przedstawiony użytkownikowi. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | path | string | Unikatowy identyfikator użytkownika, taki jak adres e-mail, nazwa użytkownika lub numer telefonu. |
InputClaim | query.secret | string | Klucz tajny TOTP. |
InputParameter | scheme | string | Część schematu identyfikatora URI. Na przykład otpauth . |
InputParameter | host | string | Część schematu identyfikatora URI. Na przykład totp . |
InputParameter | query.issuer | string | Część identyfikatora URI wystawcy. Na przykład {AuthenticatorIssuer} . |
OutputClaim | outputClaim | string | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Przykład identyfikatora BuildUri
Następujące przekształcenie oświadczeń generuje identyfikator URI TOTP, który będzie wyświetlany w kodzie QR lub linku głębokiego.
<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>
- Oświadczenia wejściowe:
- ścieżka: emily@fabrikam.com
- query.secret:
fay2lj7ynpntjgqa
- Parametry wejściowe:
- schemat:
otpauth
- host:
totp
- query.issuer:
{AuthenticatorIssuer}
- schemat:
- Oświadczenia wyjściowe:
- outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
- outputClaim:
Zmień literę
Zmienia wielkość liter podanego oświadczenia na małe lub wielkie litery w zależności od operatora. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim1 | string | Oświadczenie, które ma zostać zmienione. |
InputParameter | toCase | string | Jedna z następujących wartości: LOWER lub UPPER . |
OutputClaim | outputClaim | string | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Przykładowe litery zmian
Następujące przekształcenie oświadczenia zmienia oświadczenie e-mail na małe litery.
<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>
- Oświadczenia wejściowe:
- adres e-mail: SomeOne@contoso.com
- Parametry wejściowe:
- toCase: LOWER
- Oświadczenia wyjściowe:
- adres e-mail: someone@contoso.com
CompareClaims
Określa, czy jedno oświadczenie ciągu jest równe innemu. Wynikiem jest nowe oświadczenie logiczne z wartością true
lub false
. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim1 | string | Pierwszy typ oświadczenia, który ma być porównywany. |
InputClaim | inputClaim2 | string | Drugi typ oświadczenia, który ma być porównywany. |
InputParameter | operator | string | Możliwe wartości: EQUAL lub NOT EQUAL . |
InputParameter | ignoreCase | string | Określa, czy to porównanie powinno ignorować wielkość porównywanych ciągów. |
OutputClaim | outputClaim | boolean | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Przykład funkcji CompareClaims
Użyj tego przekształcenia oświadczeń, aby sprawdzić, czy oświadczenie jest równe innemu oświadczeniu. Poniższe oświadczenia przekształcenia sprawdzają, czy wartość oświadczenia e-mail jest identyczna z oświadczeniem Verified.Email .
<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>
- Oświadczenia wejściowe:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Parametry wejściowe:
- operator: NOT EQUAL
- ignoreCase: true
- Oświadczenia wyjściowe:
- outputClaim: true
CompareClaimToValue
Określa, czy wartość oświadczenia jest równa wartości parametru wejściowego. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim1 | string | Typ oświadczenia, który ma być porównywany. |
InputParameter | operator | string | Możliwe wartości: EQUAL lub NOT EQUAL . |
InputParameter | compareTo | string | Porównanie ciągów, jedna z wartości, czyli ciąg, do którego muszą być porównywane wartości oświadczeń wejściowych: Porządkowe, PorządkoweIgnoreCase. |
InputParameter | ignoreCase | string | Określa, czy to porównanie powinno ignorować wielkość porównywanych ciągów. |
OutputClaim | outputClaim | boolean | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Przykład funkcji CompareClaimToValue
Użyj tego przekształcenia oświadczeń, aby sprawdzić, czy oświadczenie jest równe określonej wartości. Na przykład następujące przekształcenia oświadczeń sprawdzają, czy wartość oświadczenia termsOfUseConsentVersion jest równa V2
.
<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>
- Oświadczenia wejściowe:
- inputClaim1: wersja 1
- Parametry wejściowe:
- compareTo: V2
- operator: NOT EQUAL
- ignoreCase: true
- Oświadczenia wyjściowe:
- outputClaim: true
CopyClaimIfPredicateMatch
Kopiuje wartość oświadczenia do innego, jeśli wartość oświadczenia wejściowego pasuje do predykatu oświadczenia wyjściowego. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Typ oświadczenia, który ma zostać skopiowany. |
OutputClaim | outputClaim | string | Typ oświadczenia, który jest generowany po wywołaniu tego przekształcenia oświadczeń. Wartość oświadczenia wejściowego jest sprawdzana względem tego predykatu oświadczenia. |
Przykład copyClaimIfPredicateMatch
Poniższy przykład próbuje skopiować wartość oświadczenia signInName do oświadczenia phoneNumber. W tym przykładzie wartość nie zostanie skopiowana. Oświadczenie signInName nie jest w oczekiwanym formacie, numer telefonu. Aby zapoznać się z kompletnym przykładem, zobacz Zasady dotyczące numeru telefonu lub pakietu startowego logowania e-mail .
<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Oświadczenia wejściowe:
- inputClaim: bob@contoso.com
- Oświadczenia wyjściowe:
- outputClaim: oświadczenie wyjściowe nie zostanie zmienione z oryginalnej wartości.
Przykład metody CopyClaimIfPredicateMatch, która zastępuje predykat
W tym przykładzie przekształcenie oświadczeń skopiuje wartość. Oświadczenie signInName ma poprawny format, numer telefonu.
- Oświadczenia wejściowe:
- inputClaim: +11234567890
- Oświadczenia wyjściowe:
- outputClaim: +11234567890
CreateOtpSecret
Tworzy oświadczenie ciągu TOTP. Dane wyjściowe tej transformacji oświadczeń to wpis tajny TOTP, który jest później przechowywany na koncie użytkownika usługi Azure AD B2C i udostępniony aplikacji Microsoft Authenticator. Aplikacja authenticator używa klucza do generowania kodów TOTP, gdy użytkownik musi przejść przez uwierzytelnianie wieloskładnikowe. Zasady używają klucza do sprawdzania poprawności kodu TOTP dostarczonego przez użytkownika.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
OutputClaim | outputClaim | string | Oświadczenie, które jest tworzone po wywołaniu tego przekształcenia oświadczeń, z wygenerowany kod TOTP. |
Przykład polecenia CreateOtpSecret
Następujące przekształcenie oświadczeń tworzy wpis tajny dla wystawcy uwierzytelniania wieloskładnikowego TOTP.
<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Oświadczenia wyjściowe:
- outputClaim:
hmlcmd4ph6fph64c
- outputClaim:
CreateRandomString
Tworzy losowy ciąg przy użyciu generatora liczb losowych. Jeśli generator liczb losowych jest typu integer
, opcjonalnie można podać parametr inicjacyjny i maksymalną liczbę. Opcjonalny parametr formatu ciągu umożliwia formatowanie danych wyjściowych przy użyciu niego, a opcjonalny parametr base64 określa, czy dane wyjściowe są zakodowane w formacie base64 randomGeneratorType [guid, liczba całkowita] outputClaim (Ciąg).
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputParameter | randomGeneratorType | string | Określa wartość losową, która ma być generowana, GUID (globalny unikatowy identyfikator) lub INTEGER (liczba). |
InputParameter | stringFormat | string | [Opcjonalnie] Sformatuj wartość losową. |
InputParameter | base64 | boolean | [Opcjonalnie] Przekonwertuj wartość losową na base64. Jeśli format ciągu jest stosowany, wartość po formacie ciągu jest zakodowana w formacie base64. |
InputParameter | maximumNumber | int | [Opcjonalnie] Tylko dla INTEGER randomGeneratorType. Określ maksymalną liczbę. |
InputParameter | nasienie | int | [Opcjonalnie] Tylko dla INTEGER randomGeneratorType. Określ inicjator dla wartości losowej. Uwaga: ten sam nasion daje tę samą sekwencję liczb losowych. |
OutputClaim | outputClaim | string | Oświadczenia, które zostaną wygenerowane po wywołaniu tego przekształcenia oświadczeń. Wartość losowa. |
Przykład metody CreateRandomString
Poniższy przykład generuje globalny unikatowy identyfikator. Ta transformacja oświadczeń służy do tworzenia losowej nazwy UPN (nazwy reguły użytkownika).
<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Parametry wejściowe:
- randomGeneratorType: IDENTYFIKATOR GUID
- Oświadczenia wyjściowe:
- outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc
Przykład tworzenia wartości liczbowej CreateRandomString
Poniższy przykład generuje liczbę całkowitą losową z zakresu od 0 do 1000. Wartość jest sformatowana w celu OTP_{wartość losowa}.
<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>
- Parametry wejściowe:
- randomGeneratorType: INTEGER
- maximumNumber: 1000
- stringFormat: OTP_{0}
- base64: false
- Oświadczenia wyjściowe:
- outputClaim: OTP_853
CreateStringClaim
Tworzy oświadczenie ciągu z podanego parametru wejściowego w transformacji. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputParameter | wartość | string | Ciąg do ustawienia. Ten parametr wejściowy obsługuje wyrażenia przekształcania oświadczeń ciągów. |
OutputClaim | createdClaim | string | Oświadczenie, które jest generowane po wywołaniu tego przekształcenia oświadczeń, z wartością określoną w parametrze wejściowym. |
Przykład metody CreateStringClaim
Następujące przekształcenie oświadczeń tworzy wartość ciągu z warunkami usługi.
<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>
- Parametr wejściowy:
- wartość: Warunki użytkowania usługi firmy Contoso...
- Oświadczenia wyjściowe:
- createdClaim: Oświadczenie TOS zawiera "Warunki świadczenia usługi Contoso..." wartość.
FormatLocalizedString
Formatuje wiele oświadczeń zgodnie z podanym zlokalizowanym ciągiem formatu. Ta transformacja używa metody języka C# String.Format
. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaims | string | Kolekcja oświadczeń wejściowych, które działają jako format {0}ciągu , , {1}{2} parametry. | |
InputParameter | stringFormatId | string | Element StringId zlokalizowanego ciągu. |
OutputClaim | outputClaim | string | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Uwaga
Nie ma limitu liczby oświadczeń wejściowych, które można określić, ale maksymalna długość sformatowanego ciągu wynosi 4000.
Aby użyć przekształcenia oświadczeń FormatLocalizedString:
- Zdefiniuj ciąg lokalizacji i skojarz go z własnym profilem technicznym.
LocalizedString
ElementElementType
musi być ustawiony naFormatLocalizedStringTransformationClaimType
.- Jest
StringId
to unikatowy identyfikator, który definiujesz, i użyj go w dalszej części przekształceniastringFormatId
oświadczeń . - W przekształceniu oświadczeń określ listę oświadczeń, które mają być ustawione za pomocą zlokalizowanego ciągu. Następnie ustaw
stringFormatId
wartość elementuStringId
zlokalizowanego ciągu. - W samodzielnym profilu technicznym lub transformacji oświadczeń wejściowych lub wyjściowych kontrolki wyświetlania utwórz odwołanie do transformacji oświadczeń.
Przykład formatLocalizedString
Poniższy przykład generuje komunikat o błędzie, gdy konto znajduje się już w katalogu. W przykładzie zdefiniowano zlokalizowane ciągi dla języka angielskiego (domyślnego) i hiszpańskiego.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedStrings>
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
</Localization>
Przekształcenie oświadczeń tworzy komunikat odpowiedzi na podstawie zlokalizowanego ciągu. Wiadomość zawiera adres e-mail użytkownika osadzony w zlokalizowanej ResponseMessge_EmailExists sting.
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Oświadczenia wejściowe:
- inputClaim: sarah@contoso.com
- Parametry wejściowe:
- stringFormat: ResponseMessge_EmailExists
- Oświadczenia wyjściowe:
- outputClaim: adres e-mail "sarah@contoso.com" jest już kontem w tej organizacji. Wybierz pozycję Dalej, aby zalogować się przy użyciu tego konta.
FormatStringClaim
Formatuje oświadczenie zgodnie z podanym ciągiem formatu. Ta transformacja używa metody języka C# String.Format
. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Oświadczenie, które działa jako parametr formatu {0} ciągu. |
InputParameter | stringFormat | string | Format ciągu, w tym {0} parametr . Ten parametr wejściowy obsługuje wyrażenia przekształcania oświadczeń ciągów. |
OutputClaim | outputClaim | string | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Uwaga
Maksymalny dozwolony rozmiar formatu ciągu to 4000.
Przykład formatStringClaim
Użyj tej transformacji oświadczeń, aby sformatować dowolny ciąg z jednym parametrem {0}. W poniższym przykładzie zostanie utworzona nazwa userPrincipalName. Wszystkie profile techniczne dostawcy tożsamości społecznościowych, takie jak wywołanie metody CreateUserPrincipalName w celu wygenerowania nazwy userPrincipalName.Facebook-OAUTH
<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>
- Oświadczenia wejściowe:
- inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
- Parametry wejściowe:
- stringFormat: cpim_{0}@{RelyingPartyTenantId}
- Oświadczenia wyjściowe:
- outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com
FormatStringMultipleClaims
Formatuje dwa oświadczenia zgodnie z podanym ciągiem formatu. Ta transformacja używa metody języka C# String.Format
. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim1 | string | Oświadczenie, które działa jako parametr formatu {0} ciągu. |
InputClaim | inputClaim2 | string | Oświadczenie, które działa jako parametr formatu {1} ciągu. |
InputParameter | stringFormat | string | Format ciągu, w tym {0} parametry i {1} . Ten parametr wejściowy obsługuje wyrażenia przekształcania oświadczeń ciągów. |
OutputClaim | outputClaim | string | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. |
Uwaga
Maksymalny dozwolony rozmiar formatu ciągu to 4000.
Przykład formatStringMultipleClaims
Użyj tego przekształcenia oświadczeń, aby sformatować dowolny ciąg z dwoma parametrami {0} i {1}. W poniższym przykładzie zostanie utworzona nazwa displayName o określonym formacie:
<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>
- Oświadczenia wejściowe:
- inputClaim1: Joe
- inputClaim2: Fernando
- Parametry wejściowe:
- stringFormat: {0}{1}
- Oświadczenia wyjściowe:
- outputClaim: Joe Fernando
GetLocalizedStringsTransformation
Kopiuje zlokalizowane ciągi do oświadczeń. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
OutputClaim | Nazwa zlokalizowanego ciągu | string | Lista typów oświadczeń tworzonych po wywołaniu tego przekształcenia oświadczeń. |
Aby użyć przekształcenia oświadczeń GetLocalizedStringsTransformation:
Zdefiniuj ciąg lokalizacji dla definicji zawartości, na przykład
api.selfasserted
.LocalizedString
ElementElementType
musi być ustawiony naGetLocalizedStringsTransformationClaimType
.Jest
StringId
to unikatowy identyfikator, który zdefiniujesz i użyj go w dalszej części przekształcenia oświadczeń.W przekształceniu oświadczeń określ listę oświadczeń, które mają być ustawione za pomocą zlokalizowanego ciągu. Jest
ClaimTypeReferenceId
to odwołanie do oświadczenia już zdefiniowanego w sekcji ClaimsSchema w zasadach. JestTransformationClaimType
to nazwa zlokalizowanego ciągu zdefiniowanego w elemecieStringId
LocalizedString
.W transformacji oświadczeń własnego profilu technicznego lub przekształcania oświadczeń, utwórz odwołanie do transformacji oświadczeń.
Skojarz profil techniczny z definicją zawartości, taką jak
api.selfasserted
. W poniższym przykładzie pokazano, jak skojarzyć profil techniczny z definicjąapi.selfasserted
zawartości.<Metadata> <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> </Metadata>
Na poniższym diagramie przedstawiono sposób konfigurowania przekształcenia oświadczeń przy użyciu elementów lokalizacji:
Przykład polecenia GetLocalizedStringsTransformation
Poniższy przykład wyszukuje temat wiadomości e-mail, treść, wiadomość kodową i podpis wiadomości e-mail z zlokalizowanych ciągów. Oświadczenia później używane przez niestandardowy szablon weryfikacji poczty e-mail.
Zdefiniuj zlokalizowane ciągi dla języka angielskiego (domyślnego) i hiszpańskiego.
<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>
Przekształcenie oświadczeń ustawia wartość podmiotu typu oświadczenia z wartością StringId
email_subject.
<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>
- Oświadczenia wyjściowe:
- temat: Kod weryfikacyjny poczty e-mail konta firmy Contoso
- wiadomość: Dziękujemy za zweryfikowanie konta!
- codeIntro: Twój kod to
- podpis: Szczerze
GetMappedValueFromLocalizedCollection
Mapuje element z kolekcji ograniczeń oświadczenia wejściowego. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | mapFromClaim | string | Oświadczenie zawierające tekst do wyszukania w oświadczeniach restrictionValueClaim z kolekcją Ogranicz. |
OutputClaim | restrictionValueClaim | string | Oświadczenie zawierające kolekcję ograniczeń . Po wywołaniu przekształcenia oświadczeń wartość tego oświadczenia zawiera wartość wybranego elementu. |
Przykład getMappedValueFromLocalizedCollection
Poniższy przykład wyszukuje opis komunikatu o błędzie na podstawie klucza błędu. Oświadczenie responseMsg zawiera kolekcję komunikatów o błędach do przedstawienia użytkownikowi końcowemu lub wysłania do jednostki uzależnionej.
<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>
Przekształcenie oświadczeń wyszukuje tekst elementu i zwraca jego wartość. Jeśli ograniczenie jest zlokalizowane przy użyciu <LocalizedCollection>
metody , przekształcenie oświadczeń zwraca zlokalizowaną wartość.
<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />
</OutputClaims>
</ClaimsTransformation>
- Oświadczenia wejściowe:
- mapFromClaim: B2C_V1_90001
- Oświadczenia wyjściowe:
- restrictionValueClaim: nie możesz się zalogować, ponieważ jesteś pomocniczy.
LookupValue
Wyszukuje wartość oświadczenia z listy wartości na podstawie wartości innego oświadczenia. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputParameterId | string | Oświadczenie zawierające wartość odnośnika |
InputParameter | string | Kolekcja parametrów wejściowych. | |
InputParameter | errorOnFailedLookup | boolean | Kontrolowanie, czy błąd jest zwracany, gdy nie ma pasującego odnośnika. |
OutputClaim | outputClaim | string | Oświadczenie, które zostanie wygenerowane po wywołaniu tego przekształcenia oświadczeń. Wartość pasującego Id elementu . |
Przykład funkcji LookupValue
Poniższy przykład wyszukuje nazwę domeny w jednej z kolekcji inputParameters. Przekształcenie oświadczeń wyszukuje nazwę domeny w identyfikatorze i zwraca jego wartość (identyfikator aplikacji).
<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>
- Oświadczenia wejściowe:
- inputParameterId: test.com
- Parametry wejściowe:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: false
- Oświadczenia wyjściowe:
- outputClaim: c7026f88-4299-4cdb-965d-3f16646464b8a9
Przykład elementu LookupValue z błędem
Gdy errorOnFailedLookup
parametr wejściowy jest ustawiony na true
wartość , przekształcenie oświadczeń LookupValue jest zawsze wykonywane z profilu technicznego weryfikacji, który jest wywoływany przez własny profil techniczny lub DisplayConrtol. Metadane LookupNotFound
self-asserted profilu technicznego steruje komunikatem o błędzie wyświetlanym użytkownikowi.
Poniższy przykład wyszukuje nazwę domeny w jednej z kolekcji inputParameters. Przekształcenie oświadczeń wyszukuje nazwę domeny w identyfikatorze i zwraca jego wartość (identyfikator aplikacji) lub zgłasza komunikat o błędzie.
<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>
- Oświadczenia wejściowe:
- inputParameterId: live.com
- Parametry wejściowe:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: true
- Błąd:
- Nie znaleziono dopasowania dla wartości oświadczenia wejściowego na liście identyfikatorów parametrów wejściowych i errorOnFailedLookup ma wartość true.
NullClaim
Czyści wartość danego oświadczenia. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
OutputClaim | claim_to_null | string | Wartość oświadczenia jest ustawiona na wartość NULL. |
Przykład nullClaim
Użyj tego przekształcenia oświadczenia, aby usunąć niepotrzebne dane z torby właściwości oświadczeń, aby plik cookie sesji był mniejszy. Poniższy przykład usuwa wartość TermsOfService
typu oświadczenia.
<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
</OutputClaims>
</ClaimsTransformation>
- Oświadczenia wejściowe:
- outputClaim: Witamy w aplikacji Contoso. Jeśli nadal przeglądasz tę witrynę i korzystasz z niej, zgadzasz się przestrzegać następujących warunków i postanowień...
- Oświadczenia wyjściowe:
- outputClaim: NULL
ParseDomain
Pobiera część domeny adresu e-mail. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | emailAddress | string | Oświadczenie zawierające adres e-mail. |
OutputClaim | domena | string | Oświadczenie utworzone po wywołaniu tego przekształcenia oświadczeń — domena. |
Przykład parseDomain
Użyj tego przekształcenia oświadczeń, aby przeanalizować nazwę domeny po symbolu @ użytkownika. Poniższe przekształcenia oświadczeń pokazują, jak przeanalizować nazwę domeny z oświadczenia e-mail .
<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
</OutputClaims>
</ClaimsTransformation>
- Oświadczenia wejściowe:
- emailAddress: joe@outlook.com
- Oświadczenia wyjściowe:
- domena: outlook.com
SetClaimIfBooleansMatch
Sprawdza, czy oświadczenie logiczne to true
, lub false
. Jeśli tak, ustawia oświadczenia wyjściowe z wartością obecną w outputClaimIfMatched
parametrze wejściowym. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | claimToMatch | string | Typ oświadczenia, który ma zostać sprawdzony. Wartość null zgłasza wyjątek. |
InputParameter | matchTo | string | Wartość do porównania z oświadczeniem claimToMatch wejściowym. Możliwe wartości: true , lub false . |
InputParameter | outputClaimIfMatched | string | Wartość, która ma zostać ustawiona, jeśli oświadczenie wejściowe jest równe parametrowi wejściowemu matchTo . |
OutputClaim | outputClaim | string | claimToMatch Jeśli oświadczenie wejściowe jest równe parametrowi wejściowemumatchTo , to oświadczenie wyjściowe zawiera wartość parametru wejściowegooutputClaimIfMatched . |
Przykład setClaimIfBooleansMatch
Na przykład następujące przekształcenia oświadczeń sprawdzają, czy wartość oświadczenia hasPromotionCode jest równa true
. Jeśli tak, zwróć wartość na nie znaleziono kodu podwyższania poziomu.
<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>
- Oświadczenia wejściowe:
- claimToMatch: true
- Parametry wejściowe:
- matchTo: true
- outputClaimIfMatched: "Nie znaleziono kodu podwyższania poziomu".
- Oświadczenia wyjściowe:
- outputClaim: "Nie znaleziono kodu podwyższania poziomu".
SetClaimsIfRegexMatch
Sprawdza, czy oświadczenie claimToMatch
ciągu i matchTo
parametr wejściowy są równe, i ustawia oświadczenia wyjściowe z wartością obecną w outputClaimIfMatched
parametrze wejściowym, wraz z porównaniem oświadczenia wyjściowego wyniku, które ma być ustawione jako true
lub false
na podstawie wyniku porównania.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
inputClaim | claimToMatch | string | Typ oświadczenia, który ma być porównywany. |
InputParameter | matchTo | string | Wyrażenie regularne do dopasowania. |
InputParameter | outputClaimIfMatched | string | Wartość, która ma być ustawiona, jeśli ciągi są równe. |
InputParameter | extractGroups | boolean | [Opcjonalnie] Określa, czy dopasowanie wyrażenia regularnego powinno wyodrębniać wartości grup. Możliwe wartości: true lub false (wartość domyślna). |
OutputClaim | outputClaim | string | Jeśli wyrażenie regularne jest zgodne, to oświadczenie wyjściowe zawiera wartość parametru wejściowego outputClaimIfMatched . Lub wartość null, jeśli nie jest zgodna. |
OutputClaim | regexCompareResultClaim | boolean | Wyrażenie regularne jest zgodne z typem oświadczenia wyjściowego wyniku, który ma być ustawiony jako true lub false na podstawie wyniku dopasowania. |
OutputClaim | Nazwa oświadczenia | string | Jeśli parametr wejściowy extractGroups ma wartość true, lista typów oświadczeń, które są generowane po wywołaniu tego przekształcenia oświadczeń. Nazwa oświadczenia musi być zgodna z nazwą grupy regex. |
Przykład polecenia SetClaimsIfRegexMatch
Sprawdza, czy podany numer telefonu jest prawidłowy na podstawie wzorca wyrażenia regularnego numeru telefonu.
<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>
- Oświadczenia wejściowe:
- claimToMatch: "64854114520"
- Parametry wejściowe:
- matchTo: "^[0-9]{4,16}$"
- outputClaimIfMatched: "Telefon"
- Oświadczenia wyjściowe:
- outputClaim: "iPhone"
- regexCompareResultClaim: true
Przykład polecenia SetClaimsIfRegexMatch z grupami wyodrębniania
Sprawdza, czy podany adres e-mail jest prawidłowy i zwraca alias wiadomości e-mail. Zapoznaj się z pokazem na żywo tej transformacji oświadczeń z wyodrębnianymi grupami.
<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>
- Oświadczenia wejściowe:
- claimToMatch: "emily@contoso.com"
- Parametry wejściowe:
- matchTo:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: "isEmail"
- extractGroups: true
- matchTo:
- Oświadczenia wyjściowe:
- outputClaim: "isEmail"
- regexCompareResultClaim: true
- mailAlias: emily
SetClaimsIfStringsAreEqual
Sprawdza, czy oświadczenie ciągu i matchTo
parametr wejściowy są równe, i ustawia oświadczenia wyjściowe z wartością obecną w stringMatchMsg
parametrach wejściowych oraz stringMatchMsgCode
porównaj oświadczenie wyjściowe wyniku, które ma być ustawione jako true
lub false
na podstawie wyniku porównania.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Typ oświadczenia, który ma być porównywany. |
InputParameter | matchTo | string | Ciąg, który ma być porównywany z elementem inputClaim . |
InputParameter | stringComparison | string | Możliwe wartości: Ordinal lub OrdinalIgnoreCase . |
InputParameter | stringMatchMsg | string | Pierwsza wartość, która ma być ustawiona, jeśli ciągi są równe. |
InputParameter | stringMatchMsgCode | string | Druga wartość, która ma być ustawiona, jeśli ciągi są równe. |
OutputClaim | outputClaim1 | string | Jeśli ciągi są równe, to oświadczenie wyjściowe zawiera wartość parametru wejściowego stringMatchMsg . |
OutputClaim | outputClaim2 | string | Jeśli ciągi są równe, to oświadczenie wyjściowe zawiera wartość parametru wejściowego stringMatchMsgCode . |
OutputClaim | stringCompareResultClaim | boolean | Typ oświadczenia wyjściowego wyniku porównania, który ma być ustawiony jako true lub false na podstawie wyniku porównania. |
Przykład polecenia SetClaimsIfStringsAreEqual
Tego przekształcenia oświadczeń można użyć, aby sprawdzić, czy oświadczenie jest równe określonej wartości. Na przykład następujące przekształcenia oświadczeń sprawdzają, czy wartość oświadczenia termsOfUseConsentVersion jest równa v1
. Jeśli tak, zmień wartość na v2
.
<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>
- Oświadczenia wejściowe:
- inputClaim: wersja 1
- Parametry wejściowe:
- matchTo: V1
- stringComparison: ordinalIgnoreCase
- stringMatchMsgCode: B2C_V1_90005
- stringMatchMsg: usługa TOS jest uaktualniana do wersji 2
- Oświadczenia wyjściowe:
- outputClaim1: B2C_V1_90005
- outputClaim2: usługa TOS jest uaktualniana do wersji 2
- stringCompareResultClaim: true
SetClaimsIfStringsMatch
Sprawdza, czy oświadczenie ciągu i matchTo
parametr wejściowy są równe, i ustawia oświadczenia wyjściowe z wartością obecną w outputClaimIfMatched
parametrze wejściowym, wraz z porównaniem oświadczenia wyjściowego wyniku, które ma być ustawione jako true
lub false
na podstawie wyniku porównania.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | claimToMatch | string | Typ oświadczenia, który ma być porównywany. |
InputParameter | matchTo | string | Ciąg, który ma być porównywany z elementem inputClaim. |
InputParameter | stringComparison | string | Możliwe wartości: Ordinal lub OrdinalIgnoreCase . |
InputParameter | outputClaimIfMatched | string | Wartość, która ma być ustawiona, jeśli ciągi są równe. |
OutputClaim | outputClaim | string | Jeśli ciągi są równe, to oświadczenie wyjściowe zawiera wartość parametru wejściowego outputClaimIfMatched . Lub wartość null, jeśli ciągi nie są zgodne. |
OutputClaim | stringCompareResultClaim | boolean | Typ oświadczenia wyjściowego wyniku porównania, który ma być ustawiony jako true lub false na podstawie wyniku porównania. |
Przykład polecenia SetClaimsIfStringsMatch
Na przykład następujące przekształcenia oświadczeń sprawdzają, czy wartość oświadczenia ageGroup jest równa Minor
. Jeśli tak, zwróć wartość na B2C_V1_90001
.
<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>
- Oświadczenia wejściowe:
- claimToMatch: pomocnicza
- Parametry wejściowe:
- matchTo: pomocnicza
- stringComparison: ordinalIgnoreCase
- outputClaimIfMatched: B2C_V1_90001
- Oświadczenia wyjściowe:
- isMinorResponseCode: true
- isMinor: B2C_V1_90001
CiągContains
Określa, czy określony podciąg występuje w ramach oświadczenia wejściowego. Wynikiem jest nowe oświadczenie logiczne z wartością true
lub false
. true
jeśli parametr wartości występuje w tym ciągu, w przeciwnym razie , false
.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Typ oświadczenia, który ma zostać przeszukany. |
InputParameter | zawiera | string | Wartość do wyszukania. |
InputParameter | ignoreCase | string | Określa, czy to porównanie powinno ignorować przypadek porównywanego ciągu. |
OutputClaim | outputClaim | string | Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń. Wskaźnik logiczny, jeśli podciąg występuje w oświadczeniu wejściowym. |
Przykład parametrów StringContains
Użyj tego przekształcenia oświadczeń, aby sprawdzić, czy typ oświadczenia ciągu zawiera podciąg. W poniższym przykładzie roles
sprawdza, czy typ oświadczenia ciągu zawiera wartość administratora.
<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>
- Oświadczenia wejściowe:
- inputClaim: "Administrator, Osoba zatwierdzająca, Edytor"
- Parametry wejściowe:
- contains: "admin",
- ignoreCase: true
- Oświadczenia wyjściowe:
- outputClaim: true
Ciągi podsubstrujące
Wyodrębnia części typu oświadczenia ciągu, zaczynając od znaku w określonej pozycji, i zwraca określoną liczbę znaków. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Typ oświadczenia, który zawiera ciąg. |
InputParameter | startIndex | int | Na podstawie zera pozycja znaku początkowego podciągów w tym wystąpieniu. |
InputParameter | length | int | Liczba znaków w podciągnie. |
OutputClaim | outputClaim | string | Ciąg, który jest odpowiednikiem podciągu długości rozpoczynającej się od parametru startIndex w tym wystąpieniu, lub Pusty, jeśli właściwość startIndex jest równa długości tego wystąpienia i długość wynosi zero. |
Przykład ciąguSubstring
Na przykład pobierz prefiks kraju/regionu numeru telefonu.
<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>
- Oświadczenia wejściowe:
- inputClaim: "+1644114520"
- Parametry wejściowe:
- startIndex: 0
- długość: 2
- Oświadczenia wyjściowe:
- outputClaim: "+1"
StringReplace
Wyszukuje ciąg typu oświadczenia dla określonej wartości i zwraca nowy ciąg typu oświadczenia, w którym wszystkie wystąpienia określonego ciągu w bieżącym ciągu są zastępowane innym określonym ciągiem.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Typ oświadczenia, który zawiera ciąg. |
InputParameter | oldValue | string | Ciąg do wyszukania. |
InputParameter | newValue | string | Ciąg, który zastąpi wszystkie wystąpienia elementu oldValue |
OutputClaim | outputClaim | boolean | Ciąg, który jest odpowiednikiem bieżącego ciągu, z tą różnicą, że wszystkie wystąpienia oldValue są zastępowane wartością newValue. Jeśli element oldValue nie zostanie znaleziony w bieżącym wystąpieniu, metoda zwróci bieżące wystąpienie bez zmian. |
Przykład ciąguReplace
Na przykład normalizuj numer telefonu, usuwając -
znaki
<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>
- Oświadczenia wejściowe:
- inputClaim: "+164-411-452-054"
- Parametry wejściowe:
- oldValue: "-"
- newValue: ""
- Oświadczenia wyjściowe:
- outputClaim: "+164411452054"
StringJoin
Łączy elementy określonego typu oświadczenia kolekcji ciągów przy użyciu określonego separatora między każdym elementem lub elementem członkowskim.
Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | stringCollection | Kolekcja zawierająca ciągi do łączenia. |
InputParameter | Ogranicznik | string | Ciąg do użycia jako separator, taki jak przecinek , . |
OutputClaim | outputClaim | string | Ciąg składający się z elementów członkowskich kolekcji ciągów inputClaim rozdzielonych przez delimiter parametr wejściowy. |
Przykład ciąguJoin
W poniższym przykładzie kolekcja ciągów ról użytkownika jest konwertowana na ciąg ogranicznika przecinka. Ta metoda służy do przechowywania kolekcji ciągów na koncie użytkownika usługi Azure AD B2C. Później podczas odczytywania konta z katalogu użyj StringSplit
elementu , aby przekonwertować ciąg ogranicznika przecinka z powrotem na kolekcję ciągów.
<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>
- Oświadczenia wejściowe:
- inputClaim:
[ "Admin", "Author", "Reader" ]
- inputClaim:
- Parametry wejściowe:
- ogranicznik: ","
- Oświadczenia wyjściowe:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
CiągSplit
Zwraca tablicę ciągów zawierającą podciągi w tym wystąpieniu rozdzielane elementami określonego ciągu. Zapoznaj się z pokazem live tej transformacji oświadczeń.
Element | TransformationClaimType | Typ danych | Uwagi |
---|---|---|---|
InputClaim | inputClaim | string | Typ oświadczenia ciągu, który zawiera ciągi podrzędne do podziału. |
InputParameter | Ogranicznik | string | Ciąg do użycia jako separator, taki jak przecinek , . |
OutputClaim | outputClaim | stringCollection | Kolekcja ciągów, której elementy zawierają podciągi w tym ciągu, które są rozdzielane przez delimiter parametr wejściowy. |
Uwaga
Wszystkie istniejące elementy w OutputClaim
ciąguCollection zostaną usunięte.
Przykład ciąguSplit
Poniższy przykład przyjmuje ciąg ogranicznika przecinka ról użytkownika i konwertuje go na kolekcję ciągów.
<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>
- Oświadczenia wejściowe:
- inputClaim:
Admin,Author,Reader
- inputClaim:
- Parametry wejściowe:
- ogranicznik: ","
- Oświadczenia wyjściowe:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
Wyrażenia przekształcania oświadczeń ciągów
Wyrażenia przekształceń oświadczeń w zasadach niestandardowych usługi Azure AD B2C zawierają informacje kontekstowe dotyczące identyfikatora dzierżawy i identyfikatora profilu technicznego.
Expression | Opis | Przykład |
---|---|---|
{TechnicalProfileId} |
Nazwa identyfikatora profilu technicznego. | Facebook-OAUTH |
{RelyingPartyTenantId} |
Identyfikator dzierżawy zasad jednostki uzależnionej. | your-tenant.onmicrosoft.com |
{TrustFrameworkTenantId} |
Identyfikator dzierżawy platformy zaufania. | your-tenant.onmicrosoft.com |
Następne kroki
- Znajdź więcej przykładów przekształcania oświadczeń w repozytorium GitHub społeczności usługi Azure AD B2C