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 jednotlivého technického profilu v rámci vlastních zásad.

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

Poskytovatele relací můžete použít u dvou toků:

  • Nové přihlášení
    • Když se uživatel poprvé přihlásí, není k dispozici žádná relace. Všechny technické profily, které používají poskytovatele relací, 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 kontejneru deklarací identity.
    • Deklarace identity, které jsou součástí souboru cookie relace, nelze aktualizovat.
    • Poskytovatel relace může do kontejneru deklarací identity vystavovat další deklarace identity, což znamená, že se tento technický profil spustil za podmínek jednotného přihlašování.
    • Technický profil je možné 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í zprostředkovatelů relací:

  • Zabránění nebo vynucení přerušení uživatelského rozhraní během následných přihlášení (SSO)
  • Při další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, abyste mohli provést odhlášení zprostředkovatele identity.
  • Sledujte přihlášené aplikace předávající strany pro jednotné odhlášení.

Poskytovatelé relací

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

V následující tabulce je uvedeno, jakého poskytovatele relací 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 vícefaktorové ověřování, transformace deklarací identity Přeskočí provádění technického profilu. Yes Yes
ExternalLoginSSOSessionProvider Zprostředkovatel identity OAuth1, zprostředkovatel identity OAuth2, zprostředkovatel identity OpenID Connect, zprostředkovatel identity SAML Akcelerujte stránku výběru zprostředkovatele identity. Provedení jednorázového odhlášení. Yes Yes
OAuthSSOSessionProvider Vydavatel tokenu JWT Spravuje relaci mezi předávající stranou OAuth2 nebo OpenId Connect a Azure AD B2C. Provede jednorázové odhlášení. No No
SamlSSOSessionProvider Vydavatel tokenu SAML Spravuje relaci mezi předávající stranou SAML a Azure AD B2C. Provede jednorázové odhlášení. No No
NoopSSOSessionProvider Všechny Potlačit jakýkoli technický profil, aby byl součástí relace. No No

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

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

Odkazování na poskytovatele relací

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

  1. Vytvořte příslušný technický profil správy relací. Mějte na paměti, že úvodní sada Azure AD B2C obsahuje nejběžnější technické profily pro správu relací. V případě potřeby 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 typu 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 svého technického profilu. Tímto způsobem řídíte chování tohoto technického profilu během následných přihlášení (SSO).

    Pokud chcete odkazovat na technický profil správy relací z technického UseTechnicalProfileForSessionManagement profilu, přidejte element . Následující příklad ukazuje použití technického SM-AAD profilu správy relací. Změňte na ReferenceId ID vašeho 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 zprostředkovatel relace DefaultSSOSessionProvider , což může způsobit neočekávané chování.

Poznámka

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

Správa deklarací identity relací

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

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

  • Trvalé deklarace identity – deklarace identity, které se dají zapsat do souboru cookie relace.
    • Aby se deklarace identity zapsala do souboru cookie relace, musí být součástí aktuálního kontejneru pro deklarace identity.
    • Všechny zapsané deklarace identity se automaticky 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 – dodatečné deklarace identity, které lze vyčíst do kontejneru deklarací identity během následných přihlášení (jednotné přihlašování). Vzhledem k tomu, že se výstupní deklarace identity nevrací 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>

Zprostředkovatelé DefaultSSOSessionProvider správy relací a ExternalLoginSSOSessionProvider je možné nakonfigurovat pro správu deklarací identity, například během následujících období:

  • Nové přihlášení
    • Element PersistedClaims zapíše deklarace identity do souboru cookie relace. Trvalé deklarace identity není možné přepsat.
  • Další přihlášení
    • Každá deklarace identity zapsaná do souboru cookie relace se vypíše do kontejneru deklarací identity, který bude možné použít v dalším kroku orchestrace.
    • Element OutputClaims bude výstupem statických deklarací identity do kontejneru deklarací identity. Pomocí atributu DefaultValue nastavte hodnotu výstupní deklarace identity.

DefaultSSOSessionProvider

Poskytovatele DefaultSSOSessionProvider relací je možné nakonfigurovat tak, aby spravoval deklarace identity během následných přihlášení (jednotné přihlašování) a umožňoval přeskočení technických profilů. Hodnota DefaultSSOSessionProvider by se měla používat k zachování a vydávání deklarací identity, které jsou potřeba v následných krocích orchestrace , které se jinak nezískají během následných přihlášení (jednotné přihlašování). Například deklarace identity, které lze získat čtením objektu uživatele z adresáře.

Následující SM-AAD technický profil je typ poskytovatele DefaultSSOSessionProvider relace. Technický SM-AAD profil najdete v úvodním balíčku 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>

Například SM-AADtechnický profil správy relací používá poskytovatele DefaultSSOSessionProvider relací. Při použití na SelfAsserted-LocalAccountSignin-Email technický profil z vlastního balíčku zásad se bude chovat takto:

  • Nové přihlášení
    • signInName se zapíše do souboru cookie relace, protože technický profil správy relací (SM-AAD) je nakonfigurovaný tak signInName , aby se zachoval, a technický profil odkazující na SM-AAD obsahuje OutputClaim pro 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živateli se nezobrazí přihlašovací stránka.
    • Kontejner deklarací identity bude obsahovat signInName hodnotu ze souboru cookie relace, která se zachovala při novém přihlášení, a všechny další deklarace identity, které splňovaly vzor, které se mají zachovat v souboru cookie relace.
    • Technický profil správy relací vrátí objectIdFromSession deklaraci identity, protože Output deklarace identity zprostředkovatele relace se zpracovávají během následných přihlášení (jednotné přihlašování). V tomto případě deklarace identity přítomná objectIdFromSession v kontejneru deklarací identity značí, že deklarace identity uživatele pocházejí ze souboru cookie relace kvůli jednotnému přihlašování.

ExternalLoginSSOSessionProvider

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

  • Nové přihlášení
    • Element PersistedClaims zapíše deklarace identity do souboru cookie relace. Trvalé deklarace identity není možné přepsat.
  • Další přihlášení
    • Každá deklarace identity zapsaná do souboru cookie relace se vypíše do kontejneru deklarací identity, který bude možné použít v dalším kroku orchestrace.
    • Element OutputClaims bude výstupem statických deklarací identity do kontejneru deklarací identity. Pomocí atributu DefaultValue nastavte hodnotu deklarace identity.
    • Pokud technický profil, který odkazuje na technický profil správy relací, obsahuje OutputClaim, který byl uložen v souboru cookie relace, bude tento technický profil vynechán.

Následující SM-SocialLogin technický profil je typ poskytovatele ExternalLoginSSOSessionProvider relace. Technický SM-SocialLogin profil najdete v úvodním balíčku 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 identity se AlternativeSecurityId vygeneruje, když se uživatel přihlásí pomocí externího zprostředkovatele identity. Představuje jedinečný identifikátor uživatele externího zprostředkovatele identity. Deklarace AlternativeSecurityId identity je zachovaná tak, aby na cestách s jednotným přihlašováním bylo možné číst profil uživatele z adresáře bez jakékoli interakce s zprostředkovatelem federované identity.

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

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

OAuthSSOSessionProvider

Zprostředkovatel OAuthSSOSessionProvider relace slouží 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é odhlašování, označované také jako SLO (Single Log-Out). Když se uživatel odhlásí prostřednictvím koncového bodu pro 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 poskytovatele relací umožňuje Azure AD B2C sledovat všechny aplikace OAuth2 nebo OpenId Connect, ke kterému se uživatel přihlásil. Během odhlašování 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á v zprostředkovateli relací. Nejsou k dispozici žádné trvalé nebo výstupní deklarace identity, které by bylo možné nakonfigurovat. Následující SM-jwt-issuer technický profil je typ poskytovatele OAuthSSOSessionProvider relace.

<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

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

Správa relací zprostředkovatele identity SAML

Když odkazujete na zprostředkovatele SamlSSOSessionProvider relací z relace zprostředkovatele identity SAML, musí být nastavená RegisterServiceProviders na falsehodnotu .

Následující SM-Saml-idp technický profil je typ poskytovatele SamlSSOSessionProvider 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-SAML2identity 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žby SAML

Při odkazování SamlSSOSessionProvider na poskytovatele relace za účelem správy relace předávající strany SAML musí být nastavena RegisterServiceProviders na truehodnotu . Odhlášení z relace SAML vyžaduje SessionIndex dokončení a NameID .

Následující SM-Saml-issuer technický profil je typ poskytovatele SamlSSOSessionProvider 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 Povinné Popis
IncludeSessionIndex No Aktuálně se nepoužívá, můžete ho ignorovat.
RegisterServiceProviders No Určuje, že poskytovatel by měl zaregistrovat všechny poskytovatele služeb SAML, kteří vydali kontrolní výraz. Možné hodnoty: true (výchozí) nebo false.

NoopSSOSessionProvider

Zprostředkovatel NoopSSOSessionProvider 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čítá aktualizovaná data ze služby Restful při každém spuštění zásady. Můžete také volat Restful pro rozšířené protokolování a auditování.
  • Self-asserted – Vynutí, 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řístupovým kódem nebo požádat o souhlas uživatele.
  • Phonefactor – Vynutí, aby uživatel provedl vícefaktorové ověřování v rámci "krokového ověřování" i během následných přihlášení (jednotné přihlašování).

Tento typ poskytovatele relací neuchovává deklarace identity souboru cookie relace uživatele. Následující SM-Noop technický profil je typ poskytovatele NoopSSOSessionProvider relace. Technický SM-Noop profil najdete v úvodním balíčku 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>

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

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

Další kroky

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