Poskytovatelé relací jednotného přihlašování v Azure Active Directory B2C

V článku Konfigurace chování relace v Azure Active Directory B2C popisujeme správu relací pro vlastní zásady Azure AD B2C. Tento článek popisuje, jak dále nakonfigurovat chování jednotného přihlašování (SSO) libovolného technického profilu v rámci vlastních zásad.

Například nakonfigurujete zásady pro jednotné přihlašování pro celého tenanta, ale chcete vždy provést vícefaktorový krok bez ohledu na aktivní relaci jednotného přihlašování. Toto chování můžete dosáhnout konfigurací poskytovatele relace vícefaktorového technického profilu.

Poskytovatele relací můžete použít na dva toky:

  • Nové přihlášení
    • Když se uživatel poprvé přihlásí, neexistuje žádná relace. Všechny technické profily, které používají zprostředkovatele relace, se stanou účastníkem relace.
    • Zprostředkovatel relace může zapisovat deklarace identity do souboru cookie relace.
  • Další přihlášení
    • Když má uživatel aktivní relaci, deklarace identity, které jsou součástí souboru cookie relace, se načtou do tašky deklarací identity.
    • Deklarace identity, které jsou součástí souboru cookie relace, nelze aktualizovat.
    • Poskytovatel relace může vydávat další deklarace identity do tašky deklarací identity, což znamená, že tento technický profil byl proveden za podmínek jednotného přihlašování.
    • Technický profil lze přeskočit.

V závislosti na poskytovateli správy relací zvoleném pro daný technický profil může být chování relace aktivní nebo potlačené. Následující seznam obsahuje některé z mnoha možných příkladů použití poskytovatelů relací:

  • Zabránit nebo vynutit přerušení uživatelského rozhraní během následných přihlášení (SSO).
  • Při následných přihlášeních si zapamatujte zvoleného zprostředkovatele identity.
  • Snižte počet operací čtení do adresáře během následných přihlášení (SSO).
  • Sledujte relace zprostředkovatele sociálních identit a proveďte odhlášení zprostředkovatele identity.
  • Sledujte protokolované aplikace předávající strany pro jednotné odhlášení.

Zprostředkovatelé relací

Ke správě způsobu, jakým technický profil zpracovává relaci jednotného přihlašování, je k dispozici pět poskytovatelů relací. Při konfiguraci technického profilu musíte zvolit nejvhodnějšího poskytovatele relací.

Následující tabulka ukazuje, který poskytovatel relací se má použít v závislosti na typu technického profilu, který chcete spravovat. Někteří poskytovatelé relací umožňují čtení a zápis deklarací identity do souboru cookie relace.

Poskytovatel relací Použitelné typy technických profilů Účel Zápis deklarací identity Čtení deklarací identity
DefaultSSOSessionProvider Self-asserted, Microsoft Entra ID, Microsoft Entra multifactor authentication, Claims transformation Přeskočí provádění technického profilu. Ano Yes
ExternalLoginSSOSessionProvider Zprostředkovatel identity OAuth1, zprostředkovatel identity Oauth2, zprostředkovatel identity OpenID Connect, zprostředkovatel identity SAML Urychlete stránku výběru zprostředkovatele identity. Provedení jednorázového odhlášení Ano Yes
OAuthSSOSessionProvider Vystavitel tokenu JWT Spravuje relaci mezi předávající stranou OAuth2 nebo OpenId Connect a Azure AD B2C. Provede jednoúčelový odhlášení. No Ne
SamlSSOSessionProvider Vystavitel tokenu SAML Spravuje relaci mezi předávající stranou SAML a Azure AD B2C. Provede jednoúčelový odhlášení. No Ne
NoopSSOSessionProvider Všechny Potlačit jakýkoli technický profil, aby byl součástí relace. No Ne

Následující diagram znázorňuje typy relací používaných Službou Azure AD B2C.

Diagram znázorňující typy poskytovatelů relací Azure AD B2C

Odkazování na zprostředkovatele relace

Použití poskytovatele relací ve vašem technickém profilu:

  1. Vytvořte technický profil správy relací odpovídajícího profilu. Mějte na paměti, že úvodní sada Azure AD B2C obsahuje nejběžnější technické profily správy relací. Pokud je to možné, můžete odkazovat na existující technický profil správy relací.

    Následující fragment kódu XML ukazuje technický profil správy relací úvodní sady SM-AAD . Poskytnutí relace je typ DefaultSSOSessionProvider.

    <TechnicalProfile Id="SM-AAD">
      <DisplayName>Session Mananagement Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <PersistedClaims>
        <PersistedClaim ClaimTypeReferenceId="objectId" />
        <PersistedClaim ClaimTypeReferenceId="signInName" />
        <PersistedClaim ClaimTypeReferenceId="authenticationSource" />
        <PersistedClaim ClaimTypeReferenceId="identityProvider" />
        <PersistedClaim ClaimTypeReferenceId="newUser" />
        <PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" />
      </PersistedClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true" />
      </OutputClaims>
    </TechnicalProfile>
    
  2. Odkazujte na technický profil správy relací v rámci vašeho technického profilu. Tímto způsobem řídíte chování tohoto technického profilu při následných přihlášeních (SSO).

    Pokud chcete odkazovat na technický profil správy relací z technického UseTechnicalProfileForSessionManagement profilu, přidejte tento prvek. Následující příklad ukazuje použití technického SM-AAD profilu správy relací. ReferenceId Změňte ID technického profilu správy relací.

    <TechnicalProfile Id="{Technical-profile-ID}">
      ...
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
    </TechnicalProfile>
    

Důležité

Pokud technický profil neodkazuje na žádného zprostředkovatele správy relací, použije se poskytovatel relace DefaultSSOSessionProvider , což může způsobit neočekávané chování.

Poznámka:

Během toku obnovovacího tokenu se zprostředkovatelé správy relací nevyvolávají. Všechny pokusy o vydání nového přístupového tokenu jsou kopií původních vydaných deklarací identity.

Správa deklarací identity relací

Technické profily správy relací určují, které deklarace identity je možné číst, zapisovat nebo vypisovat během provádění vlastních zásad.

V rámci technického profilu správy relací používejte PersistedClaims a OutputClaims prvky ke správě deklarací identity.

  • Trvalé deklarace identity – deklarace identity , které lze zapisovat do souboru cookie relace.
    • Aby se deklarace identity zapsala do souboru cookie relace, musí být součástí aktuálního balíčku deklarací identity.
    • Všechny deklarace identity, které se zapisují automaticky, se vrátí při následných přihlášeních (jednotné přihlašování). Nemusíte zadávat výstupní deklarace identity.
  • Výstupní deklarace identity – další deklarace identity, které můžou být výstupem do tašky deklarací identity při následných přihlášeních (jednotné přihlašování). Vzhledem k tomu, že se výstupní deklarace identity nevrátí z relace, musíte nastavit výchozí hodnotu.

Trvalé a výstupní elementy deklarací identity jsou demonstrovány v následujícím fragmentu kódu XML:

<TechnicalProfile Id="SM-AAD">
  <DisplayName>Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="objectId" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
  </OutputClaims>
</TechnicalProfile>

ExternalLoginSSOSessionProvider Zprostředkovatelé DefaultSSOSessionProvider správy relací je možné nakonfigurovat tak, aby spravovaly deklarace identity, například během:

  • Nové přihlášení
    • Element PersistedClaims zapíše deklarace identity do souboru cookie relace. Trvalé deklarace identity nelze přepsat.
  • Další přihlášení
    • Každá deklarace identity, která je zapsána do souboru cookie relace, bude výstupem do balíčku deklarací identity, který je k dispozici v dalším kroku orchestrace.
    • Element OutputClaims vypíše statické deklarace identity do tašky deklarací identity. Pomocí atributu DefaultValue nastavte hodnotu výstupní deklarace identity.

DefaultSSOSessionProvider

Zprostředkovatel DefaultSSOSessionProvider relace je možné nakonfigurovat tak, aby spravoval deklarace identity během následných přihlášení (jednotného přihlašování) a umožnil vynechání technických profilů. Měla DefaultSSOSessionProvider by se použít k zachování a vydávání deklarací identity, které jsou potřeba následnými kroky orchestrace, které se jinak nezískaly při následných přihlášeních (jednotné přihlašování). Deklarace identity, které mohou být získány ze čtení objektu uživatele z adresáře.

Následující SM-AAD technický profil je typem DefaultSSOSessionProvider poskytovatele relací. SM-AAD Technický profil najdete v úvodní sadě vlastních zásad.

<TechnicalProfile Id="SM-AAD">
  <DisplayName>Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="objectId" />
    <PersistedClaim ClaimTypeReferenceId="signInName" />
    <PersistedClaim ClaimTypeReferenceId="authenticationSource" />
    <PersistedClaim ClaimTypeReferenceId="identityProvider" />
    <PersistedClaim ClaimTypeReferenceId="newUser" />
    <PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
  </OutputClaims>
</TechnicalProfile>

Technický profil správy relací například SM-AADpoužívá DefaultSSOSessionProvider poskytovatele relací. Při použití na technickém SelfAsserted-LocalAccountSignin-Email profilu z vlastního počátečního balíčku zásad se bude chovat následovně:

  • Nové přihlášení
    • signInName se zapíše do souboru cookie relace, protože technický profil správy relací (SM-AAD) je nakonfigurovaný signInName tak, aby byl zachován, a technický profil odkazující na SM-AAD obsahuje hodnotu OutputClaim for signInName. Toto chování se vztahuje na všechny deklarace identity, které splňují tento vzor.
  • Další přihlášení
    • Technický profil se přeskočí a uživatel neuvidí přihlašovací stránku.
    • Taška deklarace identity bude obsahovat signInName hodnotu ze souboru cookie relace, který byl zachován při čerstvém přihlášení, a všechny další deklarace identity, které splňovaly vzor, aby se zachovaly do souboru cookie relace.
    • Technický profil správy relací vrátí objectIdFromSession deklaraci identity, protože Output deklarace identity zprostředkovatele relace se zpracovávají při následných přihlášeních (jednotné přihlašování). V tomto případě deklarace identity, objectIdFromSession která se nachází v pytli deklarace identity, značí, že deklarace identity uživatele pocházejí z souboru cookie relace kvůli jednotnému přihlašování.

ExternalLoginSSOSessionProvider

ExternalLoginSSOSessionProvider Zprostředkovatel relace se používá k přeskočení obrazovky Výběru zprostředkovatele identity a odhlášení od zprostředkovatele federované identity. Obvykle se na něj odkazuje v technickém profilu nakonfigurovaného pro federovaného zprostředkovatele identity, jako je Facebook nebo Microsoft Entra ID.

  • Nové přihlášení
    • Element PersistedClaims zapíše deklarace identity do souboru cookie relace. Trvalé deklarace identity nelze přepsat.
  • Další přihlášení
    • Každá deklarace identity zapsaná do souboru cookie relace bude výstupem do tašky deklarací identity, která bude k dispozici v dalším kroku orchestrace.
    • Element OutputClaims vypíše statické deklarace identity do tašky deklarací identity. DefaultValue Použijte atribut nastavenou hodnotu deklarace identity.
    • Pokud technický profil, který odkazuje na technický profil správy relací, obsahuje OutputClaimsoubor cookie relace, který byl zachován do souboru cookie relace, bude tento technický profil vynechán.

Následující SM-SocialLogin technický profil je typem ExternalLoginSSOSessionProvider poskytovatele relací. SM-SocialLogin Technický profil najdete v úvodní sadě vlastních zásad.

<TechnicalProfile Id="SM-SocialLogin">
  <DisplayName>Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.ExternalLoginSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="AlternativeSecurityId" />
  </PersistedClaims>
</TechnicalProfile>

Deklarace AlternativeSecurityId identity se vygeneruje, když se uživatel přihlásí pomocí externího zprostředkovatele identity. Představuje jedinečný identifikátor uživatele zprostředkovatele externí identity. Deklarace AlternativeSecurityId identity je trvalá tak, aby při jednotném přihlašování na cestách bylo možné profil uživatele číst z adresáře bez jakékoli interakce s zprostředkovatelem federované identity.

Pokud chcete nakonfigurovat externího zprostředkovatele relací, přidejte odkaz na SM-SocialLogin technické profily OAuth1, OAuth2 nebo OpenID Connect . Facebook-OAUTH Například používá SM-SocialLogin technický profil správy relací. Další informace najdete v úvodní sadě vlastních zásad.

<TechnicalProfile Id="Facebook-OAUTH">
  ...
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>

OAuthSSOSessionProvider

OAuthSSOSessionProvider Zprostředkovatel relace se používá ke správě relací Azure AD B2C mezi předávající stranou OAuth2 nebo OpenId Connect a Azure AD B2C. Azure AD B2C podporuje jednotné přihlašování, označované také jako SLO (Single Log-Out). Když se uživatel odhlásí přes koncový bod odhlášení Azure AD B2C, Azure AD B2C vymaže soubor cookie relace uživatele z prohlížeče. Uživatel ale může být stále přihlášený k jiným aplikacím, které k ověřování používají Azure AD B2C.

Tento typ zprostředkovatele relací umožňuje službě Azure AD B2C sledovat všechny aplikace OAuth2 nebo OpenId Connect, ke které se uživatel přihlásil. Během odhlášení z jedné aplikace se Azure AD B2C pokusí volat logout koncové body všech ostatních známých přihlášených aplikací. Tato funkce je integrovaná pro poskytovatele relací. Nejsou k dispozici žádné trvalé ani výstupní deklarace identity, které je možné konfigurovat. Následující SM-jwt-issuer technický profil je typem OAuthSSOSessionProvider poskytovatele relací.

<TechnicalProfile Id="SM-jwt-issuer">
  <DisplayName>Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.OAuthSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>

Na SM-jwt-issuer technický profil se odkazuje z technického JwtIssuer profilu:

<TechnicalProfile Id="JwtIssuer">
  ...
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>

SamlSSOSessionProvider

SamlSSOSessionProvider Zprostředkovatel relace se používá ke správě chování relace pomocí federovaných zprostředkovatelů identity SAML nebo aplikací předávající strany SAML a Azure AD B2C.

Správa relací zprostředkovatele identity SAML

Pokud odkazujete na SamlSSOSessionProvider zprostředkovatele relace z relace zprostředkovatele identity SAML, musí být nastavena RegisterServiceProviders na falsehodnotu .

Následující SM-Saml-idp technický profil je typem SamlSSOSessionProvider poskytovatele relací:

<TechnicalProfile Id="SM-Saml-idp">
  <DisplayName>Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="RegisterServiceProviders">false</Item>
  </Metadata>
</TechnicalProfile>

Pokud chcete použít SM-Saml-idp technický profil správy relací, přidejte odkaz na technický profil zprostředkovatele identity SAML. Například zprostředkovatel Contoso-SAML2 identity SAML služby AD-FS používá SM-Saml-idp technický profil správy relací.

<TechnicalProfile Id="Contoso-SAML2">
  ...
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>

Správa relací poskytovatele služeb SAML

Při odkazování SamlSSOSessionProvider na zprostředkovatele relace ke správě relace předávající strany SAML musí být nastavena RegisterServiceProviders na truehodnotu . Odhlášení relace SAML vyžaduje dokončení SessionIndex a NameID dokončení.

Následující SM-Saml-issuer technický profil je typem SamlSSOSessionProvider poskytovatele relací:

<TechnicalProfile Id="SM-Saml-issuer">
  <DisplayName>Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</TechnicalProfile>

Pokud chcete použít SM-Saml-issuer technický profil správy relací, přidejte odkaz na technický profil vystavitele tokenu SAML. Technický profil například Saml2AssertionIssuer používá SM-Saml-issuer technický profil správy relací.

<TechnicalProfile Id="Saml2AssertionIssuer">
  ...
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>

Metadata

Atribut Požadováno Popis
IncludeSessionIndex No Aktuálně se nepoužívá, je možné ho ignorovat.
RegisterServiceProviders No Označuje, že poskytovatel by měl zaregistrovat všechny poskytovatele služeb SAML, kteří byli vystaveni kontrolní výraz. Možné hodnoty: true (výchozí) nebo false.

NoopSSOSessionProvider

NoopSSOSessionProvider Zprostředkovatel relace se používá k potlačení chování jednotného přihlašování. Technické profily, které používají tento typ poskytovatele relací, budou vždy zpracovány, i když má uživatel aktivní relaci. Tento typ poskytovatele relací může být užitečný k vynucení vždy spuštěných konkrétních technických profilů, například:

  • Transformace deklarací identity – Vytvoření nebo transformace deklarací identity, které se později použijí k určení kroků orchestrace, které se mají zpracovat nebo přeskočit.
  • Restful – Načtení aktualizovaných dat ze služby Restful při každém spuštění zásad Můžete také volat Restful pro rozšířené protokolování a auditování.
  • Self-asserted – Vynutit , aby uživatel zadal data při každém spuštění zásady. Můžete například ověřit e-maily s jednorázovým předáním kódu nebo požádat uživatele o souhlas.
  • Phonefactor – Vynutit, aby uživatel provedl vícefaktorové ověřování jako součást "krokování ověřování" i během následných přihlášení (jednotné přihlašování).

Tento typ zprostředkovatele relace neuchovává deklarace identity do souboru cookie relace uživatele. Následující SM-Noop technický profil je typem NoopSSOSessionProvider poskytovatele relací. SM-Noop Technický profil najdete v úvodní sadě vlastních zásad.

<TechnicalProfile Id="SM-Noop">
  <DisplayName>Noop Session Management Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.NoopSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>

Pokud chcete potlačit chování jednotného přihlašování technického profilu, přidejte odkaz na SM-Noop technický profil. AAD-Common Například používá SM-Noop technický profil správy relací. Další informace najdete v úvodní sadě vlastních zásad.

<TechnicalProfile Id="AAD-Common">
  ...
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Další kroky

Zjistěte, jak nakonfigurovat chování relace.