Udostępnij za pośrednictwem


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.

Diagram przedstawia sposób używania oświadczeń ciągu asercyjnie są równe przekształcenia oświadczeń.

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}
  • Oświadczenia wyjściowe:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

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

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:

  1. Zdefiniuj ciąg lokalizacji i skojarz go z własnym profilem technicznym.
  2. LocalizedString Element ElementType musi być ustawiony na FormatLocalizedStringTransformationClaimType.
  3. Jest StringId to unikatowy identyfikator, który definiujesz, i użyj go w dalszej części przekształcenia stringFormatIdoświadczeń .
  4. 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ść elementu StringId zlokalizowanego ciągu.
  5. 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:

  1. Zdefiniuj ciąg lokalizacji dla definicji zawartości, na przykład api.selfasserted.

  2. LocalizedString Element ElementType musi być ustawiony na GetLocalizedStringsTransformationClaimType.

  3. Jest StringId to unikatowy identyfikator, który zdefiniujesz i użyj go w dalszej części przekształcenia oświadczeń.

  4. 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. Jest TransformationClaimType to nazwa zlokalizowanego ciągu zdefiniowanego w elemecie StringId LocalizedString .

  5. W transformacji oświadczeń własnego profilu technicznego lub przekształcania oświadczeń, utwórz odwołanie do transformacji oświadczeń.

  6. 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:

Diagram przedstawia sposób używania przekształcenia oświadczeń ciągów zlokalizowanych.

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 Idelementu .

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 truewartość , 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.

Diagram przedstawia sposób używania przekształcenia oświadczeń wartości odnośnika.

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: truelub 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="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • Oświadczenia wejściowe:
    • claimToMatch: "emily@contoso.com"
  • Parametry wejściowe:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: true
  • 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" ]
  • Parametry wejściowe:
    • ogranicznik: ","
  • Oświadczenia wyjściowe:
    • outputClaim: "Admin,Author,Reader"

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
  • Parametry wejściowe:
    • ogranicznik: ","
  • Oświadczenia wyjściowe:
    • outputClaim: [ "Admin", "Author", "Reader" ]

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