Definování technického profilu Microsoft Entra 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.

Azure Active Directory B2C (Azure AD B2C) poskytuje podporu pro správu uživatelů Microsoft Entra. Tento článek popisuje specifika technického profilu pro interakci se zprostředkovatelem deklarací identity, který podporuje tento standardizovaný protokol.

Protokol

Atribut Name elementu Protocol musí být nastaven na Proprietary. Atribut obslužné rutiny musí obsahovat plně kvalifikovaný název sestavení Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullobslužné rutiny protokolu .

Následující technické profily microsoft Entra pro úvodní sadu vlastních zásad zahrnují technický profil AAD-Common . Technické profily Microsoft Entra nezadávají protokol, protože protokol je nakonfigurovaný v technickém profilu AAD Common :

  • AAD-UserReadUsingAlternativeSecurityId a AAD-UserReadUsingAlternativeSecurityId-NoError – Vyhledejte sociální účet v adresáři.
  • AAD-UserWriteUsingAlternativeSecurityId – Vytvořte nový účet sociální sítě.
  • AAD-UserReadUsingEmailAddress – Vyhledejte místní účet v adresáři.
  • AAD-UserWriteUsingLogonEmail – Vytvořte nový místní účet.
  • AAD-UserWritePasswordUsingObjectId – Aktualizuje heslo místního účtu.
  • AAD-UserWriteProfileUsingObjectId – Aktualizuje profil uživatele místního nebo sociálního účtu.
  • AAD-UserReadUsingObjectId – Přečtěte si profil uživatele místního nebo sociálního účtu.
  • AAD-UserWrite Telefon NumberUsingObjectId – Napište telefonní číslo MFA místního nebo sociálního účtu.

Následující příklad ukazuje technický profil AAD-Common :

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
  </CryptographicKeys>

  <!-- We need this here to suppress the SelfAsserted provider from invoking SSO on validation profiles. -->
  <IncludeInSso>false</IncludeInSso>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

InputClaims

Element InputClaims obsahuje deklaraci identity, která se používá k vyhledání účtu v adresáři nebo vytvoření nového. Ve vstupní kolekci deklarací identity musí být přesně jeden element InputClaim pro všechny technické profily Microsoft Entra. Možná budete muset namapovat název deklarace identity definované ve vaší zásadě na název definovaný v Microsoft Entra ID.

Pro čtení, aktualizaci nebo odstranění existujícího uživatelského účtu je vstupní deklarace identity klíčem, který jednoznačně identifikuje účet v adresáři Microsoft Entra. Například objectId, userPrincipalName, signInNames.emailAddress, signInNames.userNames nebo alternativeSecurityId.

Pokud chcete vytvořit nový uživatelský účet, vstupní deklarace identity je klíč, který jednoznačně identifikuje místní nebo federovaný účet. Například místní účet: signInNames.emailAddress nebo signInNames.userNames. Pro federovaný účet: alternativeSecurityId.

Element InputClaimsTransformations může obsahovat kolekci vstupních transformačních elementů deklarací, které se používají k úpravě vstupní deklarace identity nebo generování nové.

OutputClaims

OutputClaims element obsahuje seznam deklarací identity vrácených technickým profilem Microsoft Entra. Možná budete muset namapovat název deklarace identity definované ve vaší zásadě na název definovaný v Microsoft Entra ID. Můžete také zahrnout deklarace identity, které nevrací ID Microsoft Entra, pokud nastavíte DefaultValue atribut.

OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů, které slouží k úpravě výstupních deklarací identity nebo generování nových.

Technický profil AAD-UserWriteUsingLogonEmail například vytvoří místní účet a vrátí následující deklarace identity:

  • objectId, což je identifikátor nového účtu
  • newUser, který označuje, jestli je uživatel nový
  • authenticationSource, který nastaví ověřování na localAccountAuthentication
  • userPrincipalName, což je hlavní název uživatele nového účtu
  • signInNames.emailAddress, což je přihlašovací jméno účtu, podobně jako deklarace identity vstupu e-mailu
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="objectId" />
  <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
  <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
  <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>

Trvaléclaims

Element PersistedClaims obsahuje všechny hodnoty, které by měly být trvalé id Microsoft Entra s možnými mapovacími informacemi mezi typem deklarace identity již definovaným v části ClaimsSchema v zásadě a názvem atributu Microsoft Entra.

Technický profil AAD-UserWriteUsingLogonEmail , který vytvoří nový místní účet, zachová následující deklarace identity:

  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
    <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />

    <!-- Optional claims. -->
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>

Název deklarace identity je název atributu Microsoft Entra, pokud není zadán atribut PartnerClaimType , který obsahuje název atributu Microsoft Entra.

Požadavky operace

  • Pro všechny technické profily Microsoft Entra musí být v sáčku deklarací identity přesně jeden prvek InputClaim .
  • Článek o atributech profilů uživatelů popisuje podporované atributy profilu uživatele Azure AD B2C, které můžete použít ve vstupních deklaracích identity, výstupních deklaracích identity a trvalých deklaracích identity.
  • Pokud je Write operace nebo DeleteClaims, musí se také objevit v PersistedClaims elementu.
  • Hodnota deklarace identity userPrincipalName musí být ve formátu user@tenant.onmicrosoft.com.
  • Deklarace identity displayName je povinná a nemůže být prázdným řetězcem.

Operace technického profilu Microsoft Entra

Čtení

Operace čtení čte data o jednom uživatelském účtu. Následující technický profil čte data o uživatelském účtu pomocí ID objektu uživatele:

<TechnicalProfile Id="AAD-UserReadUsingObjectId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims>

    <!-- Required claims -->
    <OutputClaim ClaimTypeReferenceId="strongAuthenticationPhoneNumber" />

    <!-- Optional claims -->
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Zapsat

Operace zápisu vytvoří nebo aktualizuje jeden uživatelský účet. Následující technický profil vytvoří nový účet sociální sítě:

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Write</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />

    <!-- Optional claims -->
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

DeleteClaims

Operace DeleteClaims vymaže informace ze zadaného seznamu deklarací identity. Následující technický profil odstraní deklarace identity:

<TechnicalProfile Id="AAD-DeleteClaimsUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaims</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="objectId" />
    <PersistedClaim ClaimTypeReferenceId="Verified.strongAuthenticationPhoneNumber" PartnerClaimType="strongAuthenticationPhoneNumber" />
  </PersistedClaims>
  <OutputClaims />
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

DeleteClaimsPrincipal

Operace DeleteClaimsPrincipal odstraní z adresáře jeden uživatelský účet. Následující technický profil odstraní uživatelský účet z adresáře pomocí hlavního názvu uživatele:

<TechnicalProfile Id="AAD-DeleteUserUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Následující technický profil odstraní uživatelský účet sociální sítě pomocí alternativeSecurityId:

<TechnicalProfile Id="AAD-DeleteUserUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Metadata

Atribut Požadováno Popis
Operace Ano Operace, která se má provést. Možné hodnoty: Read, Write, DeleteClaimsnebo DeleteClaimsPrincipal.
RaiseErrorIfClaimsPrincipalDoesNotExist No Vyvolání chyby, pokud objekt uživatele v adresáři neexistuje. Možné hodnoty: true nebo false.
RaiseErrorIfClaimsPrincipalAlreadyExists No Vyvolání chyby, pokud objekt uživatele již existuje. Možné hodnoty: true nebo false. Tato metadata platí jenom pro operaci zápisu.
ApplicationObjectId No Identifikátor objektu aplikace pro atributy rozšíření. Hodnota: ObjectId aplikace. Další informace naleznete v tématu Použití vlastních atributů.
ClientId No Identifikátor klienta pro přístup k tenantovi jako třetí strana. Další informace najdete v tématu Použití vlastních atributů v zásadách úprav vlastního profilu.
IncludeClaimResolvingInClaimsHandling No U vstupních a výstupních deklarací identity určuje, jestli je řešení deklarací identity součástí technického profilu. Možné hodnoty: truenebo false (výchozí). Pokud chcete použít překladač deklarací identity v technickém profilu, nastavte ho na truehodnotu .

Prvky uživatelského rozhraní

Následující nastavení lze použít ke konfiguraci chybové zprávy zobrazené při selhání. Metadata by měla být nakonfigurovaná v technickém profilu s vlastním kontrolním výrazem . Chybové zprávy lze lokalizovat.

Atribut Požadováno Popis
UserMessageIfClaimsPrincipalAlreadyExists No Pokud má být vyvolána chyba (viz RaiseErrorIfClaimsPrincipalAlreadyExists popis atributu), zadejte zprávu, která se má zobrazit uživateli, pokud objekt uživatele již existuje.
UserMessageIfClaimsPrincipalDoesNotExist No Pokud je vyvolána chyba (viz Popis atributu RaiseErrorIfClaimsPrincipalDoesNotExist), zadejte zprávu, která se má uživateli zobrazit, pokud objekt uživatele neexistuje.

Další kroky

Podívejte se na následující článek, například použití technického profilu Microsoft Entra: