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.
Odkazování na poskytovatele relací
Použití poskytovatele relací ve vašem technickém profilu:
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 typuDefaultSSOSessionProvider
.<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 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éhoSM-AAD
profilu správy relací. Změňte naReferenceId
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.
- Element
- 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í atributuDefaultValue
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-AAD
technický 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ý taksignInName
, aby se zachoval, a technický profil odkazující na SM-AAD obsahujeOutputClaim
prosignInName
. 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žeOutput
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.
- Element
- 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í atributuDefaultValue
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 false
hodnotu .
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-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ž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 true
hodnotu . 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.