Definování technického profilu ověřování ve vlastních zásadách Azure Active Directory B2C

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

Technický profil ověření je běžný technický profil z libovolného protokolu, jako je NAPŘÍKLAD MICROSOFT Entra ID nebo REST API. Technický profil ověření vrátí výstupní deklarace identity nebo vrátí stavový kód HTTP 4xx s následujícími daty. Další informace najdete v tématu vrácení chybové zprávy.

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

Rozsah výstupních deklarací identity technického profilu ověření je omezen na technický profil , který se sám uplatňuje, který vyvolá technický profil ověření a jeho ověřovací technické profily. Pokud chcete použít výstupní deklarace identity v dalším kroku orchestrace, přidejte výstupní deklarace identity do technického profilu s vlastním potvrzením, který vyvolá technický profil ověření.

Technické profily ověřování se spouštějí v posloupnosti, která se zobrazí v elementu ValidationTechnicalProfiles . V technickém profilu ověření můžete nakonfigurovat, jestli má provádění jakýchkoli následných ověřovacích technických profilů pokračovat, pokud technický profil ověření vyvolá chybu nebo je úspěšný.

Technický profil ověření lze podmíněně provést na základě předpokladů definovaných v elementu ValidationTechnicalProfile . Můžete například zkontrolovat, jestli určitá deklarace identity existuje, nebo jestli je deklarace identity rovna zadané hodnotě nebo ne.

Technický profil s vlastním uplatněním může definovat technický profil ověření, který se má použít k ověření některých nebo všech jeho výstupních deklarací identity. Všechny vstupní deklarace identity odkazovaného technického profilu musí být uvedeny ve výstupních deklarací identity referenčního technického profilu ověření.

Poznámka:

Technické profily s vlastním kontrolním výrazem můžou používat ověřovací technické profily. Pokud potřebujete ověřit výstupní deklarace identity z technických profilů, které nejsou samoobslužné, zvažte použití dalšího kroku orchestrace na cestě uživatele k přizpůsobení technického profilu, který je zodpovědný za ověření.

Ověřovacíprofiles

Element ValidationTechnicalProfiles obsahuje následující prvky:

Element (Prvek) Výskyty Popis
ValidationTechnicalProfile 1:n Technický profil, který se má použít k ověření některých nebo všech výstupních deklarací identity odkazujícího technického profilu.

Element ValidationTechnicalProfile obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor technického profilu, který už je definován v zásadách nebo nadřazených zásadách.
ContinueOnError No Označuje, zda by ověření jakýchkoli následných technických profilů ověření mělo pokračovat, pokud tento technický profil ověření vyvolá chybu. Možné hodnoty: true nebo false (výchozí, zpracování dalších ověřovacích profilů se zastaví a vrátí se chyba).
ContinueOnSuccess No Určuje, zda má ověřování jakýchkoli následných ověřovacích profilů pokračovat, pokud bude tento technický profil ověření úspěšný. Možné hodnoty: true nebo false. Výchozí hodnota je true, což znamená, že zpracování dalších ověřovacích profilů bude pokračovat.

Poznámka:

Pokud v současné době nastavíte ContinueOnError na false pro technický profil ověření typu ClaimsTransformation, technický profil nebude respektovat nastavení. Pokud chcete tento problém překonat, použijte místo toho předběžné podmínky.

Element ValidationTechnicalProfile obsahuje následující prvek:

Element (Prvek) Výskyty Popis
Předpoklady 0:1 Seznam předpokladů, které musí být splněny pro provedení technického profilu ověření.

Element Předběžné podmínky obsahuje následující atribut:

Atribut Požadováno Popis
Type Ano Typ kontroly nebo dotazu, který se má provést pro předběžnou podmínku. Buď ClaimsExist je zadán, aby se zajistilo, že se mají provést akce, pokud zadané deklarace identity existují v aktuální sadě deklarací identity uživatele, nebo ClaimEquals je zadáno, že akce by se měly provést, pokud zadaná deklarace existuje a její hodnota se rovná zadané hodnotě.
ExecuteActionsIf Ano Určuje, zda se mají provést akce v předpokladu, pokud je test pravdivý nebo nepravdivý.

Předběžný prvek obsahuje následující prvky:

Element (Prvek) Výskyty Popis
Hodnota 1:n Data používaná kontrolou. Pokud je ClaimsExisttyp této kontroly, toto pole určuje ClaimTypeReferenceId, pro který se má dotazovat. Pokud je ClaimEqualstyp kontroly, toto pole určuje ClaimTypeReferenceId, pro který se má dotazovat. Zatímco jiný prvek hodnoty obsahuje hodnotu, kterou chcete zkontrolovat.
Akce 1:1 Akce, která by se měla provést, pokud je splněna předběžná kontrola v rámci kroku orchestrace. Hodnota akce je nastavena na SkipThisValidationTechnicalProfilehodnotu . Určuje, že by se neměl provést přidružený technický profil ověření.

Příklad

Následující příklad používá tyto technické profily ověřování:

  1. První ověřovací technický profil zkontroluje přihlašovací údaje uživatele a nepokračuje, pokud dojde k chybě, například neplatné uživatelské jméno nebo chybné heslo.
  2. Další technický profil ověření se nespustí, pokud deklarace identity userType neexistuje nebo pokud je Partnerhodnota userType . Technický profil ověření se pokusí přečíst profil uživatele z interní databáze zákazníka a pokračovat v případě, že dojde k chybě, jako je například služba REST API není k dispozici nebo jakákoli vnitřní chyba.
  3. Poslední technický profil ověření se nespustí, pokud deklarace identity userType neexistuje nebo pokud je Customerhodnota userType . Technický profil ověření se pokusí přečíst profil uživatele z interní partnerské databáze a pokračuje v případě, že dojde k chybě, jako je například služba REST API není k dispozici nebo vnitřní chyba.
<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>