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.
Odkazování na zprostředkovatele relace
Použití poskytovatele relací ve vašem technickém profilu:
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 typDefaultSSOSessionProvider
.<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>
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éhoSM-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.
- Element
- 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í atributuDefaultValue
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-AAD
použí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 hodnotuOutputClaim
forsignInName
. 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žeOutput
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.
- Element
- 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
OutputClaim
soubor 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 false
hodnotu .
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 true
hodnotu . 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.