Share via


Definiera omvandlingar av telefonnummeranspråk i Azure AD B2C

Den här artikeln innehåller referenser och exempel för användning av anspråkstransformeringar för telefonnummer i en anpassad princip för Azure Active Directory B2C (Azure AD B2C). Mer information om anspråkstransformeringar i allmänhet finns i ClaimsTransformations.

Anteckning

Den här funktionen är en allmänt tillgänglig förhandsversion.

ConvertPhoneNumberClaimToString

Konverterar en phoneNumber datatyp till en string datatyp. Titta på livedemon för den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentarer
InputClaim phoneNumber phoneNumber Anspråket för att konvertera till en sträng.
OutputClaim phoneNumberString sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Exempel på ConvertPhoneNumberClaimToString

I det här exemplet konverteras cellPhoneNumber-anspråket med en värdetyp phoneNumber till ett cellPhone-anspråk med värdetypen string.

<ClaimsTransformation Id="PhoneNumberToString" TransformationMethod="ConvertPhoneNumberClaimToString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="cellPhoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="cellPhone" TransformationClaimType="phoneNumberString" />
  </OutputClaims>
</ClaimsTransformation>
  • Indataanspråk:
    • phoneNumber: +11234567890 (phoneNumber)
  • Utdataanspråk:
    • phoneNumberString: +11234567890 (sträng)

ConvertStringToPhoneNumberClaim

Verifierar formatet för ett telefonnummer. Om det är giltigt ändrar du det till ett standardformat som används av Azure AD B2C. Om det angivna telefonnumret inte har ett giltigt format returneras ett felmeddelande. Titta på livedemon för den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentarer
InputClaim phoneNumberString sträng Stränganspråket för telefonnumret. Telefonnumret måste vara i internationellt format, komplett med en ledande "+" och lands-/regionkod. Om indataanspråk country anges är telefonnumret i lokalt format (utan lands-/regionkod).
InputClaim land sträng [Valfritt] Stränganspråket för lands-/regionkoden för telefonnumret i ISO3166-format (tvåbokstavskoden ISO-3166 land/region).
OutputClaim outputClaim phoneNumber Resultatet av den här anspråkstransformeringen.

ConvertStringToPhoneNumberClaim-anspråkstransformeringen körs alltid från en teknisk valideringsprofil som anropas av en självkontrollerad teknisk profil eller visningskontroll. UserMessageIfClaimsTransformationInvalidPhoneNumber självsäkrade tekniska profilmetadata styr felmeddelandet som visas för användaren.

Diagram över körningssökväg för felmeddelanden

Exempel på ConvertStringToPhoneNumberClaim

I följande exempel kontrolleras att phoneString-anspråket verkligen är ett giltigt telefonnummer och returnerar sedan telefonnumret i standardformatet Azure AD B2C. Annars utlöses ett felmeddelande.

<ClaimsTransformation Id="ConvertStringToPhoneNumber" TransformationMethod="ConvertStringToPhoneNumberClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneString" TransformationClaimType="phoneNumberString" />
    <InputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="country" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Indataanspråk:
    • phoneNumberString: 033 456-7890
    • land: DK
  • Utdataanspråk:
    • outputClaim: +450334567890

Exempel på ConvertStringToPhoneNumberClaim utan landskodsanspråk

Kolla in livedemon för det här läget för anspråkstransformering.

  • Indataanspråk:
    • phoneNumberString: +1 (123) 456-7890
  • Utdataanspråk:
    • outputClaim: +11234567890

Anropa ConvertStringToPhoneNumberClaim-anspråkstransformeringen

Den självsäkra tekniska profilen som anropar den tekniska valideringsprofilen som innehåller den här anspråksomvandlingen kan definiera felmeddelandet.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignUp-Phone">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationInvalidPhoneNumber">Custom error message if the phone number is not valid.</Item>
  </Metadata>
  ...
</TechnicalProfile>

GetNationalNumberAndCountryCodeFromPhoneNumberString

Extraherar lands-/regionkoden och det nationella numret från indataanspråket och genererar ett undantag om det angivna telefonnumret inte är giltigt. Titta på livedemon för den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentarer
InputClaim phoneNumber sträng Stränganspråket för telefonnumret. Telefonnumret måste vara i internationellt format, komplett med en ledande "+" och lands-/regionkod.
InputParameter throwExceptionOnFailure boolean [Valfritt] En parameter som anger om ett undantag utlöses när telefonnumret inte är giltigt. Standardvärdet är falskt.
InputParameter countryCodeType sträng [Valfritt] En parameter som anger typen av lands-/regionkod i utdataanspråket. Tillgängliga värden är CallingCode (den internationella anropskoden för ett land/en region, till exempel +1) eller ISO3166 (tvåbokstavskoden ISO-3166 land/region).
OutputClaim nationalNumber sträng Stränganspråket för telefonnumrets nationella nummer.
OutputClaim countryCode sträng Stränganspråket för lands-/regionkoden för telefonnumret.

Om anspråksomvandlingen GetNationalNumberAndCountryCodeFromPhoneNumberString körs från en teknisk valideringsprofil som anropas av en självkontrollerad teknisk profil eller en visningskontrollåtgärd, styr userMessageIfPhoneNumberParseFailure självkontrollerade tekniska profilmetadata felmeddelandet som visas för användaren.

Diagram över körningssökvägen för felmeddelanden

Du kan använda denna anspråkstransformering för att dela upp ett fullständigt telefonnummer i lands-/regionkoden och det nationella numret. Om det angivna telefonnumret inte är giltigt kan du välja att utlösa ett felmeddelande.

Exempel på GetNationalNumberAndCountryCodeFromPhoneNumberString

I följande exempel försöker man dela upp telefonnumret i nationellt nummer och lands-/regionkod. Om telefonnumret är giltigt kommer telefonnumret att åsidosättas av det nationella numret. Om telefonnumret inte är giltigt genereras inget undantag och telefonnumret har fortfarande sitt ursprungliga värde.

<ClaimsTransformation Id="GetNationalNumberAndCountryCodeFromPhoneNumberString" TransformationMethod="GetNationalNumberAndCountryCodeFromPhoneNumberString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="throwExceptionOnFailure" DataType="boolean" Value="false" />
    <InputParameter Id="countryCodeType" DataType="string" Value="ISO3166" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="nationalNumber" TransformationClaimType="nationalNumber" />
    <OutputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="countryCode" />
  </OutputClaims>
</ClaimsTransformation>
  • Inkommande anspråk:
    • phoneNumber: +49 (123) 456-7890
  • Indataparametrar:
    • throwExceptionOnFailure: false
    • countryCodeType: ISO3166
  • Utgående anspråk:
    • nationalNumber: 1234567890
    • countryCode: DE

Exempel på GetNationalNumberAndCountryCodeFromPhoneNumberString med callingcode-parametern

I följande exempel försöker man dela upp telefonnumret i nationellt nummer och landsnummer.

<ClaimsTransformation Id="GetNationalNumberAndCountryCodeFromPhoneNumberString" TransformationMethod="GetNationalNumberAndCountryCodeFromPhoneNumberString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="throwExceptionOnFailure" DataType="boolean" Value="false" />
    <InputParameter Id="countryCodeType" DataType="string" Value="CallingCode" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="nationalNumber" TransformationClaimType="nationalNumber" />
    <OutputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="countryCode" />
  </OutputClaims>
</ClaimsTransformation>
  • Inkommande anspråk:
    • phoneNumber: +49 (123) 456-7890
  • Indataparametrar
    • throwExceptionOnFailure: false
    • countryCodeType: CallingCode
  • Utgående anspråk:
    • nationalNumber: 1234567890
    • countryCode: +49

Anropa anspråkstransformationen GetNationalNumberAndCountryCodeFromPhoneNumberString

Den självbetitlade tekniska profilen som anropar den tekniska verifieringsprofilen som innehåller den här anspråksomvandlingen kan definiera felmeddelandet.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignup-Phone">
  <Metadata>
    <Item Key="UserMessageIfPhoneNumberParseFailure">Custom error message if the phone number is not valid.</Item>
  </Metadata>
  ...
</TechnicalProfile>

Nästa steg