Weryfikowanie danych wejściowych użytkownika przy użyciu niestandardowych zasad usługi Azure Active Directory B2C
Niestandardowe zasady usługi Azure Active Directory B2C (Azure AD B2C) nie tylko umożliwiają wprowadzanie danych wejściowych użytkownika jako obowiązkowe, ale także ich weryfikowanie. Możesz oznaczyć dane wejściowe użytkownika jako wymagane, takie jak <DisplayClaim ClaimTypeReferenceId="givenName" Required="true"/>
, ale nie oznacza to, że użytkownicy będą wprowadzać prawidłowe dane. Usługa Azure AD B2C oferuje różne sposoby weryfikowania danych wejściowych użytkownika. Z tego artykułu dowiesz się, jak napisać zasady niestandardowe, które zbierają dane wejściowe użytkownika i weryfikują je przy użyciu następujących metod:
Ogranicz dane wprowadzane przez użytkownika, podając listę opcji do wyboru. W tym podejściu użyto wartości wyliczonych, które są dodawane podczas deklarowania oświadczenia.
Zdefiniuj wzorzec, który musi być zgodny z danymi wejściowymi użytkownika. To podejście używa wyrażeń regularnych, które są dodawane podczas deklarowania oświadczenia.
Zdefiniuj zestaw reguł i wymagaj, aby dane wejściowe użytkownika przestrzegały co najmniej jednej reguły. To podejście korzysta z predykatów, które są dodawane podczas deklarowania oświadczenia.
Użyj specjalnego typu oświadczenia reenterPassword , aby sprawdzić, czy użytkownik poprawnie wprowadził swoje hasło podczas zbierania danych wejściowych użytkownika.
Skonfiguruj profil techniczny weryfikacji, który definiuje złożone reguły biznesowe, które nie są możliwe do zdefiniowania na poziomie deklaracji oświadczenia. Na przykład zbierasz dane wejściowe użytkownika, które należy zweryfikować względem wartości lub zestawu wartości w innym oświadczeniu.
Wymagania wstępne
Jeśli jeszcze go nie masz, utwórz dzierżawę usługi Azure AD B2C połączoną z subskrypcją platformy Azure.
Zarejestruj aplikację internetową i włącz niejawne przyznanie tokenu identyfikatora. W przypadku identyfikatora URI przekierowania użyj polecenia https://jwt.ms.
Na komputerze musi być zainstalowany program Visual Studio Code (VS Code ).
Wykonaj kroki opisane w temacie Zbieranie danych wejściowych użytkownika i manipulowanie nimi przy użyciu niestandardowych zasad usługi Azure AD B2C. Ten artykuł jest częścią serii Instrukcje tworzenia i uruchamiania własnych zasad niestandardowych.
Uwaga
Ten artykuł jest częścią serii Instrukcje tworzenia i uruchamiania własnych zasad niestandardowych w usłudze Azure Active Directory B2C. Zalecamy rozpoczęcie tej serii od pierwszego artykułu.
Krok 1. Weryfikowanie danych wejściowych użytkownika przez ograniczenie opcji danych wejściowych użytkownika
Jeśli znasz wszystkie możliwe wartości, które użytkownik może wprowadzić dla danego danych wejściowych, możesz podać skończony zestaw wartości, z których użytkownik musi wybrać. W tym celu można użyć opcji DropdownSinglSelect, CheckboxMultiSelect i RadioSingleSelect UserInputType. W tym artykule użyjesz typu danych wejściowych RadioSingleSelect :
W programie VS Code otwórz plik
ContosoCustomPolicy.XML
.W elemecie
ClaimsSchema
ContosoCustomPolicy.XML
pliku zadeklaruj następujący typ oświadczenia:<ClaimType Id="accountType"> <DisplayName>Account Type</DisplayName> <DataType>string</DataType> <UserHelpText>The type of account used by the user</UserHelpText> <UserInputType>RadioSingleSelect</UserInputType> <Restriction> <Enumeration Text="Contoso Employee Account" Value="work" SelectByDefault="true"/> <Enumeration Text="Personal Account" Value="personal" SelectByDefault="false"/> </Restriction> </ClaimType>
Zadeklarowaliśmy oświadczenie accountType . Gdy wartość oświadczenia jest zbierana od użytkownika, użytkownik musi wybrać konto pracownika Firmy Contoso dla wartości służbowej lub osobiste konto dla wartości osobistej.
Usługa Azure AD B2C umożliwia również dostosowanie zasad do różnych języków i zapewnia ograniczenia typu konta dla wielu języków. Aby uzyskać więcej informacji, zapoznaj się z artykułem Lokalizowanie interfejsu użytkownika w artykule Dodawanie atrybutów użytkownika.
Znajdź profil
Id="UserInformationCollector"
techniczny za pomocą polecenia , dodaj oświadczenie accountType jako oświadczenie wyświetlania przy użyciu następującego kodu:<DisplayClaim ClaimTypeReferenceId="accountType" Required="true"/>
W profilu technicznym z elementem
Id="UserInformationCollector"
dodaj oświadczenie accountType jako oświadczenie wyjściowe, używając następującego kodu:<OutputClaim ClaimTypeReferenceId="accountType"/>
Aby uwzględnić oświadczenie typu konta w tokenie dostępu, znajdź
RelyingParty
element, dodaj oświadczenie accountType jako oświadczenie tokenu przy użyciu następującego kodu:<OutputClaim ClaimTypeReferenceId="accountType" />
Krok 2. Weryfikowanie danych wejściowych użytkownika przy użyciu wyrażeń regularnych
Jeśli nie jest możliwe wcześniejsze poznanie wszystkich możliwych wartości wejściowych użytkownika, możesz zezwolić użytkownikowi na wprowadzanie danych samodzielnie. W takim przypadku można użyć wyrażeń regularnych (regex) lub wzorca , aby określić sposób formatowania danych wejściowych użytkownika. Na przykład adres e-mail musi mieć symbol at (@) i kropkę (.) w tekście.
W przypadku deklarowania oświadczenia zasady niestandardowe umożliwiają zdefiniowanie wyrażenia regularnego, które musi być zgodne z danymi wejściowymi użytkownika. Opcjonalnie możesz podać komunikat, który jest wyświetlany użytkownikowi, jeśli ich dane wejściowe nie są zgodne z wyrażeniem.
Znajdź element i zadeklaruj
ClaimsSchema
oświadczenie e-mail przy użyciu następującego kodu:<ClaimType Id="email"> <DisplayName>Email Address</DisplayName> <DataType>string</DataType> <DefaultPartnerClaimTypes> <Protocol Name="OpenIdConnect" PartnerClaimType="email"/> </DefaultPartnerClaimTypes> <UserHelpText>Your email address. </UserHelpText> <UserInputType>TextBox</UserInputType> <Restriction> <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="Please enter a valid email address something like maurice@contoso.com"/> </Restriction> </ClaimType>
Znajdź profil
Id="UserInformationCollector"
techniczny za pomocą polecenia , dodaj oświadczenie e-mail jako oświadczenie wyświetlane przy użyciu następującego kodu:<DisplayClaim ClaimTypeReferenceId="email" Required="true"/>
W profilu technicznym z elementem
Id="UserInformationCollector"
dodaj oświadczenie e-mail jako oświadczenie wyjściowe przy użyciu następującego kodu:<OutputClaim ClaimTypeReferenceId="email"/>
RelyingParty
Znajdź element , dodaj wiadomość e-mail jako oświadczenie tokenu, używając następującego kodu:<OutputClaim ClaimTypeReferenceId="email" />
Krok 3. Weryfikowanie danych wejściowych użytkownika przy użyciu predykatów
Użyto wyrażenia regularnego do sprawdzania poprawności danych wejściowych użytkownika. Jednak wyrażenie regularne ma jedną słabość, oznacza to, że komunikat o błędzie jest wyświetlany, dopóki nie poprawisz danych wejściowych bez wyświetlania określonego wymagania, którego brakuje.
Walidacje predykatów umożliwiają rozwiązanie tego problemu, umożliwiając zdefiniowanie zestawu reguł (predykatów) i niezależnego komunikatu o błędzie dla każdej reguły. W zasadach niestandardowych predykat ma wbudowaną metodę, która definiuje kontrole, które chcesz wykonać. Na przykład można użyć metody predykatu IsLengthRange, aby sprawdzić, czy hasło użytkownika mieści się w zakresie minimalnych i maksymalnych parametrów (wartości).
Podczas gdy predykaty definiują walidację w celu sprawdzenia względem typu oświadczenia, PredykateValidations grupuje zestaw predykatów w celu utworzenia weryfikacji danych wejściowych użytkownika, które można zastosować do typu oświadczenia. Na przykład tworzysz grupę predykatów weryfikacji, która weryfikuje różne typy dozwolonych znaków dla hasła. Zarówno predykaty , jak i elementy PredykateValidations są elementami podrzędnymi BuildingBlocks
sekcji pliku zasad.
Znajdź element i zadeklaruj
ClaimsSchema
oświadczenie hasła przy użyciu następującego kodu:<ClaimType Id="password"> <DisplayName>Password</DisplayName> <DataType>string</DataType> <AdminHelpText>Enter password</AdminHelpText> <UserHelpText>Enter password</UserHelpText> <UserInputType>Password</UserInputType> </ClaimType>
Predicates
Dodaj element jako element podrzędnyBuildingBlocks
sekcji przy użyciu następującego kodu. Element należyPredicates
dodać poniżejClaimsSchema
elementu :<Predicates> </Predicates>
Wewnątrz elementu zdefiniuj
Predicates
predykaty przy użyciu następującego kodu:<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters."> <Parameters> <Parameter Id="Minimum">8</Parameter> <Parameter Id="Maximum">64</Parameter> </Parameters> </Predicate> <Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter"> <Parameters> <Parameter Id="CharacterSet">a-z</Parameter> </Parameters> </Predicate> <Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter"> <Parameters> <Parameter Id="CharacterSet">A-Z</Parameter> </Parameters> </Predicate> <Predicate Id="Number" Method="IncludesCharacters" HelpText="a digit"> <Parameters> <Parameter Id="CharacterSet">0-9</Parameter> </Parameters> </Predicate> <Predicate Id="Symbol" Method="IncludesCharacters" HelpText="a symbol"> <Parameters> <Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter> </Parameters> </Predicate> <Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only."> <Parameters> <Parameter Id="RegularExpression">^[0-9]+$</Parameter> </Parameters> </Predicate> <Predicate Id="AllowedCharacters" Method="MatchesRegex" HelpText="An invalid character was provided."> <Parameters> <Parameter Id="RegularExpression">(^([0-9A-Za-z\d@#$%^&*\-_+=[\]{}|\\:',?/`~"();! ]|(\.(?!@)))+$)|(^$)</Parameter> </Parameters> </Predicate> <Predicate Id="DisallowedWhitespace" Method="MatchesRegex" HelpText="The password must not begin or end with a whitespace character."> <Parameters> <Parameter Id="RegularExpression">(^\S.*\S$)|(^\S+$)|(^$)</Parameter> </Parameters> </Predicate>
Zdefiniowaliśmy kilka reguł, które po połączeniu opisały akceptowalne hasło. Następnie możesz grupować predykaty, aby utworzyć zestaw zasad haseł, których można użyć w zasadach.
PredicateValidations
Dodaj element jako element podrzędnyBuildingBlocks
sekcji przy użyciu następującego kodu. Element należyPredicateValidations
dodać jako element podrzędnyBuildingBlocks
sekcji, ale poniżejPredicates
elementu:<PredicateValidations> </PredicateValidations>
Wewnątrz elementu zdefiniuj
PredicateValidations
predykatvalidations przy użyciu następującego kodu:<PredicateValidation Id="SimplePassword"> <PredicateGroups> <PredicateGroup Id="DisallowedWhitespaceGroup"> <PredicateReferences> <PredicateReference Id="DisallowedWhitespace"/> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="AllowedCharactersGroup"> <PredicateReferences> <PredicateReference Id="AllowedCharacters"/> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="LengthGroup"> <PredicateReferences> <PredicateReference Id="IsLengthBetween8And64"/> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation> <PredicateValidation Id="StrongPassword"> <PredicateGroups> <PredicateGroup Id="DisallowedWhitespaceGroup"> <PredicateReferences> <PredicateReference Id="DisallowedWhitespace"/> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="AllowedCharactersGroup"> <PredicateReferences> <PredicateReference Id="AllowedCharacters"/> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="LengthGroup"> <PredicateReferences> <PredicateReference Id="IsLengthBetween8And64"/> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="CharacterClasses"> <UserHelpText>The password must have at least 3 of the following:</UserHelpText> <PredicateReferences MatchAtLeast="3"> <PredicateReference Id="Lowercase"/> <PredicateReference Id="Uppercase"/> <PredicateReference Id="Number"/> <PredicateReference Id="Symbol"/> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation> <PredicateValidation Id="CustomPassword"> <PredicateGroups> <PredicateGroup Id="DisallowedWhitespaceGroup"> <PredicateReferences> <PredicateReference Id="DisallowedWhitespace"/> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="AllowedCharactersGroup"> <PredicateReferences> <PredicateReference Id="AllowedCharacters"/> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation>
Zdefiniowaliśmy trzy predykaty walidacji, StrongPassword, CustomPassword i SimplePassword. W zależności od właściwości hasła, które mają być wprowadzane przez użytkowników, można użyć dowolnego elementu w obszarze Walidacje predykatu. W tym artykule użyjemy silnego hasła.
Znajdź deklarację typu oświadczenia hasła i dodaj weryfikację predykatu StrongPassword tuż po deklaracji elementu UserInputType, która zawiera, używając następującego kodu:
<PredicateValidationReference Id="StrongPassword" />
Zlokalizuj profil
Id="UserInformationCollector"
techniczny za pomocą polecenia , dodaj oświadczenie hasła jako oświadczenie wyświetlane przy użyciu następującego kodu:<DisplayClaim ClaimTypeReferenceId="password" Required="true"/>
W profilu technicznym z elementem
Id="UserInformationCollector"
dodaj oświadczenie hasła jako oświadczenie wyjściowe przy użyciu następującego kodu:<OutputClaim ClaimTypeReferenceId="password"/>
Uwaga
Ze względów bezpieczeństwa nie dodamy hasła użytkowników jako oświadczenia w tokenie wygenerowanym przez zasady. Dlatego nie dodajemy oświadczenia hasła do elementu jednostki uzależnionej.
Krok 4. Weryfikowanie hasła i potwierdzanie hasła
Aby potwierdzić, że użytkownik zapamiętuje wprowadzone hasło, może wymagać od użytkowników wprowadzenia hasła dwa razy. W takim przypadku należy sprawdzić, czy wartości dwóch wpisów są zgodne. Zasady niestandardowe umożliwiają łatwe osiągnięcie tego wymagania. Typy oświadczeń hasła i reenterPassword są uważane za specjalne, więc gdy są używane do zbierania danych wejściowych użytkownika, interfejs użytkownika sprawdza, czy użytkownik poprawnie wprowadził swoje hasło.
Aby ponownie wprowadzić hasło w zasadach niestandardowych, wykonaj następujące kroki:
ClaimsSchema
W sekcji pliku zadeklaruj oświadczenie reenterPassword tuż po oświadczeniuContosoCustomPolicy.XML
hasła przy użyciu następującego kodu:<ClaimType Id="reenterPassword"> <DisplayName>Confirm new password</DisplayName> <DataType>string</DataType> <AdminHelpText>Confirm new password</AdminHelpText> <UserHelpText>Reenter password</UserHelpText> <UserInputType>Password</UserInputType> </ClaimType>
Aby zebrać dane wejściowe potwierdzenia hasła od użytkownika, znajdź
UserInformationCollector
własny profil techniczny, dodaj oświadczenie reenterPassword jako oświadczenie wyświetlane przy użyciu następującego kodu:<DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true"/>
ContosoCustomPolicy.XML
W pliku znajdźUserInformationCollector
własny profil techniczny, dodaj oświadczenie reenterPassword jako oświadczenie wyjściowe przy użyciu następującego kodu:<OutputClaim ClaimTypeReferenceId="reenterPassword"/>
Krok 5. Przekazywanie pliku zasad niestandardowych
W tym momencie utworzono zasady w celu rozwiązania pierwszych trzech podejść do weryfikacji danych wejściowych użytkownika.
Wykonaj kroki opisane w temacie Przekazywanie pliku zasad niestandardowych. Jeśli przekazujesz plik o tej samej nazwie co plik już w portalu, upewnij się, że wybierzesz pozycję Zastąp zasady niestandardowe, jeśli już istnieje.
Krok 6. Testowanie zasad niestandardowych
W obszarze Zasady niestandardowe wybierz pozycję B2C_1A_CONTOSOCUSTOMPOLICY.
W obszarze Wybierz aplikację na stronie przeglądu zasad niestandardowych wybierz aplikację internetową, taką jak aplikacja internetowa1 , która została wcześniej zarejestrowana. Upewnij się, że ustawiono
https://jwt.ms
wartość Wybierz adres URL odpowiedzi.Wybierz przycisk Uruchom teraz .
Wprowadź imię i nazwisko.
Wybierz pozycję Typ konta.
W polu Adres e-mail wprowadź wartość adresu e-mail, która nie jest dobrze sformatowana, na przykład maurice@contoso.
W polu Hasło wprowadź wartość hasła, która nie przestrzega wszystkich cech silnego hasła zgodnie z ustawionym ustawieniem.
Wybierz przycisk Kontynuuj . Zostanie wyświetlony ekran podobny do przedstawionego poniżej:
Zanim przejdziesz dalej, musisz poprawić swoje dane wejściowe.
Wprowadź poprawne wartości sugerowane przez komunikaty o błędach, a następnie ponownie wybierz przycisk Kontynuuj . Po zakończeniu wykonywania zasad nastąpi przekierowanie do
https://jwt.ms
elementu i zostanie wyświetlony zdekodowany token JWT. Token wygląda podobnie do następującego fragmentu kodu tokenu JWT:
{
"typ": "JWT",
"alg": "RS256",
"kid": "pxLOMWFg...."
}.{
...
"sub": "c7ae4515-f7a7....",
...
"acr": "b2c_1a_contosocustompolicy",
"accountType": "work",
...
"email": "maurice@contoso.com",
"name": "Maurice Paulet",
"message": "Hello Maurice Paulet"
}.[Signature]
Krok 7. Weryfikowanie danych wejściowych użytkownika przy użyciu profilów technicznych weryfikacji
Techniki walidacji, które zostały użyte w kroku 1, krok 2 i krok 3, nie mają zastosowania w przypadku wszystkich scenariuszy. Jeśli reguły biznesowe są złożone do zdefiniowania na poziomie deklaracji oświadczenia, można skonfigurować weryfikację techniczną, a następnie wywołać je z profilu technicznego asertywnego.
Uwaga
Tylko własne profile techniczne mogą używać profilów technicznych weryfikacji. Dowiedz się więcej o profilu technicznym weryfikacji
Omówienie scenariusza
Wymagamy, aby jeśli typ konta użytkownika to Konto pracownika firmy Contoso, musimy upewnić się, że domena poczty e-mail jest oparta na zestawie wstępnie zdefiniowanych domen. Te domeny są contoso.com, fabrikam.com i woodgrove.com. W przeciwnym razie pokazujemy użytkownikowi błąd, dopóki nie użyje prawidłowego konta pracownika firmy Contoso lub przełączy się na konto osobiste.
Wykonaj poniższe kroki, aby dowiedzieć się, jak zweryfikować dane wejściowe użytkownika przy użyciu profilów technicznych weryfikacji. Używasz profilu technicznego weryfikacji typu przekształcania oświadczeń, ale możesz również wywołać usługę interfejsu API REST, aby zweryfikować dane w dalszej części tej serii.
ClaimsSchema
W sekcjiContosoCustomPolicy.XML
pliku zadeklaruj oświadczenia domeny i domenyStatus przy użyciu następującego kodu:<ClaimType Id="domain"> <DataType>string</DataType> </ClaimType> <ClaimType Id="domainStatus"> <DataType>string</DataType> </ClaimType>
Znajdź sekcję
ClaimsTransformations
i skonfiguruj przekształcenia oświadczeń przy użyciu następującego kodu:<ClaimsTransformation Id="GetDomainFromEmail" TransformationMethod="ParseDomain"> <InputClaims> <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress"/> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="domain" TransformationClaimType="domain"/> </OutputClaims> </ClaimsTransformation> <ClaimsTransformation Id="LookupDomain" TransformationMethod="LookupValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="domain" TransformationClaimType="inputParameterId"/> </InputClaims> <InputParameters> <InputParameter Id="contoso.com" DataType="string" Value="valid"/> <InputParameter Id="fabrikam.com" DataType="string" Value="valid"/> <InputParameter Id="woodgrove.com" DataType="string" Value="valid"/> <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true"/> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="domainStatus" TransformationClaimType="outputClaim"/> </OutputClaims> </ClaimsTransformation>
Przekształcenie GetDomainFromEmail oświadczeń wyodrębnia domenę z poczty e-mail przy użyciu metody ParseDomain i przechowuje ją w oświadczeniu domeny . Przekształcenie oświadczeń LookupDomain używa wyodrębnionej domeny, aby sprawdzić, czy jest ona prawidłowa, wyszukując je w wstępnie zdefiniowanych domenach i przypisując prawidłowe do oświadczenia domainStatus.
Użyj następującego kodu, aby dodać profil techniczny u tego samego dostawcy oświadczeń co profil techniczny z usługą
Id=UserInformationCollector
:<TechnicalProfile Id="CheckCompanyDomain"> <DisplayName>Check Company validity </DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> <InputClaimsTransformations> <InputClaimsTransformation ReferenceId="GetDomainFromEmail"/> </InputClaimsTransformations> <OutputClaims> <OutputClaim ClaimTypeReferenceId="domain"/> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="LookupDomain"/> </OutputClaimsTransformations> </TechnicalProfile>
Zadeklarowaliśmy profil techniczny przekształcania oświadczeń, który wykonuje przekształcenia oświadczeń GetDomainFromEmail i LookupDomain oświadczenia przekształcenia.
Zlokalizuj profil techniczny z elementem
Id=UserInformationCollector
i tużValidationTechnicalProfile
po elemecieOutputClaims
, używając następującego kodu:<ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="CheckCompanyDomain"> <Preconditions> <Precondition Type="ClaimEquals" ExecuteActionsIf="false"> <Value>accountType</Value> <Value>work</Value> <Action>SkipThisValidationTechnicalProfile</Action> </Precondition> </Preconditions> </ValidationTechnicalProfile> </ValidationTechnicalProfiles>
Do profilu technicznego UserInformationCollector dodaliśmy profil techniczny weryfikacji. Profil techniczny jest pomijany tylko wtedy, gdy wartość accountType nie jest równa pracy. Jeśli profil techniczny zostanie wykonany, a domena poczty e-mail jest nieprawidłowa, zostanie zgłoszony błąd.
Znajdź profil techniczny za pomocą
Id=UserInformationCollector
polecenia i dodaj następujący kod wewnątrz tagumetadata
.<Item Key="LookupNotFound">The provided email address isn't a valid Contoso Employee email.</Item>
Skonfigurowaliśmy błąd niestandardowy w przypadku, gdy użytkownik nie używa prawidłowej wiadomości e-mail.
Postępuj zgodnie z instrukcjami w temacie Przekazywanie pliku zasad niestandardowych, aby przekazać plik zasad.
Postępuj zgodnie z instrukcjami w kroku 6 , aby przetestować zasady niestandardowe:
- W polu Typ konta wybierz pozycję Konto pracownika firmy Contoso
- W polu Adres e-mail wprowadź nieprawidłowy adres e-mail, taki jak maurice@fourthcoffee.com.
- Wprowadź pozostałe szczegóły zgodnie z wymaganiami i wybierz pozycję Kontynuuj
Ponieważ maurice@fourthcoffee.com nie jest to prawidłowa wiadomość e-mail, zobaczysz błąd podobny do tego, który pokazano na poniższym zrzucie ekranu. Aby pomyślnie uruchomić zasady niestandardowe i otrzymać token JWT, należy użyć prawidłowego adresu e-mail.
Następne kroki
Dowiedz się więcej o profilu technicznym weryfikacji.
Dowiedz się, jak warunkowo włączać lub wyłączać profile techniczne w zasadach niestandardowych usługi Azure AD B2C