Udostępnij za pośrednictwem


Definiowanie profilu technicznego weryfikacji w zasadach niestandardowych usługi Azure Active Directory B2C

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Profil techniczny weryfikacji to zwykły profil techniczny z dowolnego protokołu, takiego jak Microsoft Entra ID lub interfejs API REST. Profil techniczny weryfikacji zwraca oświadczenia wyjściowe lub zwraca kod stanu HTTP 4xx z następującymi danymi. Aby uzyskać więcej informacji, zobacz zwracanie komunikatu o błędzie

{
    "version": "1.0.0",
    "status": 409,
    "userMessage": "Your error message"
}

Zakres oświadczeń wyjściowych profilu technicznego weryfikacji jest ograniczony do samodzielnie asertywnego profilu technicznego, który wywołuje profil techniczny weryfikacji i jego profilów technicznych weryfikacji. Jeśli chcesz użyć oświadczeń wyjściowych w następnym kroku aranżacji, dodaj oświadczenia wyjściowe do własnego profilu technicznego, który wywołuje profil techniczny weryfikacji.

Profile techniczne weryfikacji są wykonywane w sekwencji, która jest wyświetlana w elemecie ValidationTechnicalProfiles . W profilu technicznym weryfikacji można skonfigurować, czy wykonywanie jakichkolwiek kolejnych profilów technicznych weryfikacji powinno być kontynuowane, jeśli profil techniczny weryfikacji zgłasza błąd lub zakończy się pomyślnie.

Profil techniczny weryfikacji można wykonać warunkowo na podstawie warunków wstępnych zdefiniowanych w elemecie ValidationTechnicalProfile . Możesz na przykład sprawdzić, czy istnieje określone oświadczenie, czy oświadczenie jest równe, czy też nie do określonej wartości.

Własny profil techniczny może zdefiniować profil techniczny weryfikacji, który ma być używany do weryfikowania niektórych lub wszystkich oświadczeń wyjściowych. Wszystkie oświadczenia wejściowe przywołytowanego profilu technicznego muszą pojawić się w oświadczeniach wyjściowych odnoszącego się do profilu technicznego weryfikacji.

Uwaga

Tylko własne profile techniczne mogą używać profilów technicznych weryfikacji. Jeśli musisz zweryfikować oświadczenia wyjściowe z profilów technicznych innych niż własne, rozważ użycie dodatkowego kroku aranżacji w podróży użytkownika, aby uwzględnić profil techniczny odpowiedzialny za walidację.

ValidationTechnicalProfiles

Element ValidationTechnicalProfiles zawiera następujące elementy:

Element Wystąpień opis
ValidationTechnicalProfile 1:n Profil techniczny, który ma być używany do weryfikowania niektórych lub wszystkich oświadczeń wyjściowych odnoszącego się do profilu technicznego.

Element ValidationTechnicalProfile zawiera następujący atrybut:

Atrybut Wymagania opis
Identyfikator odwołania Tak Identyfikator profilu technicznego już zdefiniowany w zasadach lub zasadach nadrzędnych.
Continueonerror Nie. Wskazuje, czy walidacja jakichkolwiek kolejnych profilów technicznych weryfikacji powinna być kontynuowana, jeśli ten profil techniczny weryfikacji zgłasza błąd. Możliwe wartości: true lub false (domyślnie przetwarzanie dalszych profilów walidacji zostanie zatrzymane i zwrócony błąd).
ContinueOnSuccess Nie. Wskazuje, czy walidacja jakichkolwiek kolejnych profilów weryfikacji powinna być kontynuowana, jeśli ten profil techniczny weryfikacji zakończy się pomyślnie. Możliwe wartości: true lub false. Wartość domyślna to true, co oznacza, że przetwarzanie dalszych profilów walidacji będzie kontynuowane.

Uwaga

Obecnie jeśli ustawisz wartość ContinueOnError na wartość false dla profilu technicznego weryfikacji typu ClaimsTransformation, profil techniczny nie uwzględnia ustawienia. Aby rozwiązać ten problem, należy zamiast tego użyć warunków wstępnych.

Element ValidationTechnicalProfile zawiera następujący element:

Element Wystąpień opis
Warunki wstępne 0:1 Lista warunków wstępnych, które muszą zostać spełnione, aby profil techniczny weryfikacji został wykonany.

Element Warunek wstępny zawiera następujący atrybut:

Atrybut Wymagania opis
Type Tak Typ sprawdzania lub zapytania do wykonania dla warunku wstępnego. ClaimsExist Jest określony, aby upewnić się, że akcje powinny być wykonywane, jeśli określone oświadczenia istnieją w bieżącym zestawie oświadczeń użytkownika, lub ClaimEquals określono, że akcje powinny być wykonywane, jeśli określone oświadczenie istnieje, a jego wartość jest równa określonej wartości.
ExecuteActionsIf Tak Wskazuje, czy akcje w warunku wstępnym powinny być wykonywane, jeśli test ma wartość true lub false.

Element Warunek wstępny zawiera następujące elementy:

Element Wystąpień Opis
Wartość 1:n Dane używane przez kontrolę. Jeśli typ tego sprawdzania to ClaimsExist, to pole określa wartość ClaimTypeReferenceId do utworzenia zapytania. Jeśli typ sprawdzania to ClaimEquals, to pole określa wartość ClaimTypeReferenceId do utworzenia zapytania. Podczas gdy inny element wartości zawiera wartość do sprawdzenia.
Akcja 1:1 Działanie, które należy podjąć, jeśli sprawdzenie warunków wstępnych w ramach kroku aranżacji jest prawdziwe. Wartość akcji jest ustawiona na SkipThisValidationTechnicalProfilewartość . Określa, że skojarzony profil techniczny weryfikacji nie powinien być wykonywany.

Przykład

W poniższym przykładzie użyto tych profilów technicznych weryfikacji:

  1. Pierwszy profil techniczny weryfikacji sprawdza poświadczenia użytkownika i nie będzie kontynuowany w przypadku wystąpienia błędu, takiego jak nieprawidłowa nazwa użytkownika lub nieprawidłowe hasło.
  2. Następny profil techniczny weryfikacji nie jest wykonywany, jeśli oświadczenie userType nie istnieje lub jeśli wartość userType to Partner. Profil techniczny weryfikacji próbuje odczytać profil użytkownika z wewnętrznej bazy danych klienta i kontynuować, jeśli wystąpi błąd, taki jak usługa interfejsu API REST, lub jakikolwiek błąd wewnętrzny.
  3. Ostatni profil techniczny weryfikacji nie jest wykonywany, jeśli oświadczenie userType nie istniało lub jeśli wartość userType to Customer. Profil techniczny weryfikacji próbuje odczytać profil użytkownika z wewnętrznej bazy danych partnera i będzie kontynuowany w przypadku wystąpienia błędu, takiego jak usługa interfejsu API REST, lub błąd wewnętrzny.
<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="login-NonInteractive" ContinueOnError="false" />
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromCustomersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Partner</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromPartnersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Customer</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
</ValidationTechnicalProfiles>