Azure Active Directory B2C'de çoklu oturum açma oturumu sağlayıcıları
Azure Active Directory B2C'de oturum davranışını yapılandırma makalesinde, Azure AD B2C özel ilkeniz için oturum yönetimini açıklıyoruz. Bu makalede, özel ilkenizdeki tek tek teknik profillerin çoklu oturum açma (SSO) davranışının nasıl yapılandırıldığı açıklanır.
Örneğin, ilkenizi kiracı genelinde SSO için yapılandırabilirsiniz, ancak etkin bir SSO oturumundan bağımsız olarak her zaman çok faktörlü adımı gerçekleştirmek istersiniz. Çok faktörlü teknik profilin oturum sağlayıcısını yapılandırarak bu davranışı elde edebilirsiniz.
Oturum sağlayıcılarını iki akışa uygulayabilirsiniz:
- Yeni oturum açma
- Kullanıcı ilk kez oturum açtığında oturum yoktur. Oturum sağlayıcısı kullanan tüm teknik profiller oturum katılımcısı olur.
- Oturum sağlayıcısı, oturum tanımlama bilgisine talep yazabilir.
- Sonraki oturum açma işlemleri
- Kullanıcının etkin bir oturumu olduğunda, oturum tanımlama bilgisinin parçası olan talepler talep paketine okunur.
- Oturum tanımlama bilgisinin parçası olan talepler güncelleştirilemez.
- Oturum sağlayıcısı, talep çantasına bu teknik profilin SSO koşulları altında yürütüldüğünü belirten ek talepler verebilir.
- Teknik profil atlanabilir.
Belirli bir teknik profil için seçilen oturum yönetimi sağlayıcısına bağlı olarak oturum davranışı etkin veya gizlenebilir. Aşağıdaki listede oturum sağlayıcılarını kullanan birçok olası örnek verilmiştir:
- Sonraki oturum açmalar (SSO) sırasında kullanıcı arabirimi kesintilerini önleme veya zorlama.
- Sonraki oturum açmalar (SSO) sırasında seçilen kimlik sağlayıcısını unutmayın.
- Sonraki oturum açmalar (SSO) sırasında dizindeki okuma işlemlerinin sayısını azaltın.
- Kimlik sağlayıcısı oturumu kapatma işlemini gerçekleştirmek için sosyal kimlik sağlayıcısı oturumlarını izleyin.
- Çoklu oturum kapatma için bağlı olan taraf uygulamalarında oturum açmayı izleyin.
Oturum sağlayıcıları
Bir teknik profilin SSO oturumunu nasıl işlediğini yönetmek için beş oturum sağlayıcısı vardır. Teknik profilinizi yapılandırırken en uygun oturum sağlayıcısını seçmeniz gerekir.
Aşağıdaki tabloda, yönetmek istediğiniz teknik profilin türüne bağlı olarak hangi oturum sağlayıcısının kullanılacağı gösterilmektedir. Bazı oturum sağlayıcıları, oturum tanımlama bilgisinin okunmasına ve yazmasına izin verir.
Oturum sağlayıcısı | Geçerli teknik profil türleri | Amaç | Talep yazma | Talepleri okuma |
---|---|---|---|---|
DefaultSSOSessionProvider | Kendi kendine onaylanan, Microsoft Entra kimliği, Microsoft Entra çok faktörlü kimlik doğrulaması, Talep dönüştürme | Teknik profil yürütmeyi atlar. | Yes | Yes |
ExternalLoginSSOSessionProvider | OAuth1 kimlik sağlayıcısı, Oauth2 kimlik sağlayıcısı, OpenID Connect kimlik sağlayıcısı, SAML kimlik sağlayıcısı | Kimlik sağlayıcısı seçim sayfasını hızlandırın. Tek oturum kapatma gerçekleştirme. | Yes | Yes |
OAuthSSOSessionProvider | JWT belirtecini veren | OAuth2 veya OpenId Connect bağlı olan taraf ile Azure AD B2C arasındaki oturumu yönetir. Tek oturum kapatma gerçekleştirir. | Hayır | Hayır |
SamlSSOSessionProvider | SAML belirtecini veren | SAML bağlı olan taraf ile Azure AD B2C arasındaki oturumu yönetir. Tek oturum kapatma gerçekleştirir. | Hayır | Hayır |
NoopSSOSessionProvider | Herhangi biri | Herhangi bir teknik profilin oturuma katılmasını engelleyin. | Hayır | Hayır |
Aşağıdaki diyagramda Azure AD B2C tarafından kullanılan oturum türleri gösterilmektedir.
Oturum sağlayıcısına başvurma
Teknik profilinizde oturum sağlayıcısı kullanmak için:
Uygun bir oturum yönetimi teknik profili oluşturun. Azure AD B2C başlangıç paketi en yaygın oturum yönetimi teknik profillerini içerir. Varsa mevcut bir oturum yönetimi teknik profiline başvurabilirsiniz.
Aşağıdaki XML kod parçacığı, başlangıç paketinin
SM-AAD
oturum yönetimi teknik profilini gösterir. Oturum sağlama türüdürDefaultSSOSessionProvider
.<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>
Teknik profilinizdeki oturum yönetimi teknik profiline başvurun. Bunu yaparak, sonraki oturum açmalar (SSO) sırasında bu teknik profilin davranışını denetleyebilirsiniz.
Teknik profilinizden bir oturum yönetimi teknik profiline başvurmak
UseTechnicalProfileForSessionManagement
için öğesini ekleyin. Aşağıdaki örnekte oturum yönetimi teknik profilininSM-AAD
kullanımı gösterilmektedir.ReferenceId
öğesini oturum yönetimi teknik profilinizin kimliğine değiştirin.<TechnicalProfile Id="{Technical-profile-ID}"> ... <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> </TechnicalProfile>
Önemli
Bir teknik profil hiçbir oturum yönetim sağlayıcısına başvurmadığında DefaultSSOSessionProvider oturum sağlayıcısı uygulanır ve bu da beklenmeyen davranışlara neden olabilir.
Not
Yenileme belirteci akışı sırasında oturum yönetimi sağlayıcıları çağrılmıyor. Yeni erişim belirteci verme girişimleri, verilen özgün taleplerin bir kopyasıdır.
Oturum taleplerini yönetme
Oturum yönetimi teknik profilleri, özel ilke yürütme sırasında hangi taleplerin okunabileceğini, yazılabileceğini veya çıkış alınabileceğini denetler.
Oturum yönetimi teknik profilinde talepleri yönetmek için ve OutputClaims
öğelerini kullanınPersistedClaims
.
- Kalıcı talepler - Oturum tanımlama bilgisine yazılabilir talepler.
- Bir talebin oturum tanımlama bilgisine yazılması için geçerli talep çantasının bir parçası olması gerekir.
- Yazılan tüm talepler sonraki oturum açmalar (çoklu oturum açma) sırasında otomatik olarak döndürülmektedir. Çıkış taleplerini belirtmeniz gerekmez.
- Çıkış talepleri - Sonraki oturum açmalar (çoklu oturum açma) sırasında talep çantasına çıkış olabilecek ek talepler. Çıkış talepleri oturumdan döndürülmezse, varsayılan bir değer ayarlamanız gerekir.
Kalıcı ve çıktı talep öğeleri aşağıdaki XML kod parçacığında gösterilmiştir:
<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>
DefaultSSOSessionProvider
ve ExternalLoginSSOSessionProvider
oturum yönetimi sağlayıcıları, talepleri yönetmek için yapılandırılabilir, örneğin:
- Yeni oturum açma
PersistedClaims
öğesi, oturum tanımlama bilgisine talep yazar. Kalıcı talepler yeniden yazılamaz.
- Sonraki oturum açma işlemleri
- Oturum tanımlama bilgisine yazılan her talep, bir sonraki düzenleme adımında kullanılabilecek talep paketine eklenir.
- öğesi,
OutputClaims
talep çantasına statik talepler oluşturur.DefaultValue
Çıkış talebi değerini ayarlamak için özniteliğini kullanın.
DefaultSSOSessionProvider
Oturum DefaultSSOSessionProvider
sağlayıcısı, sonraki oturum açma işlemleri sırasında talepleri yönetmek (çoklu oturum açma) ve teknik profillerin atlanması için yapılandırılabilir. sonraki DefaultSSOSessionProvider
oturum açmalar (çoklu oturum açma) sırasında elde edilmeyecek sonraki düzenleme adımlarının gerektirdiği talepleri kalıcı hale getirmek ve vermek için kullanılmalıdır. Örneğin, dizinden kullanıcı nesnesini okuyarak elde edilebilecek talepler.
Aşağıdaki SM-AAD
teknik profil, oturum sağlayıcısının türüdür DefaultSSOSessionProvider
. Teknik SM-AAD
profil , özel ilke başlangıç paketinde bulunabilir.
<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>
Örneğin, SM-AAD
oturum yönetimi teknik profili oturum sağlayıcısını DefaultSSOSessionProvider
kullanır. Özel ilke başlangıç paketinden teknik profile uygulandığında SelfAsserted-LocalAccountSignin-Email
aşağıdaki gibi davranır:
- Yeni oturum açma
signInName
oturum yönetimi teknik profili (SM-AAD) ile kalıcı olacak şekilde yapılandırıldığındansignInName
ve SM-AAD'ye başvuran teknik profil içinsignInName
birOutputClaim
içerdiğinden oturum tanımlama bilgisine yazılır. Bu davranış, bu desene uyan tüm talepler için geçerlidir.
- Sonraki oturum açma işlemleri
- Teknik profil atlanır ve kullanıcı oturum açma sayfasını görmez.
- Talep paketi, yeni oturum açma sırasında kalıcı olan oturum tanımlama bilgisinden gelen değeri ve oturum tanımlama bilgisinde kalıcı hale getirilecek desene sahip diğer talepleri içerir
signInName
. - Oturum sağlayıcısının
objectIdFromSession
talepleri sonraki oturum açmalar (çoklu oturum açma) sırasında işlendiği içinOutput
oturum yönetimi teknik profili talebi döndürür. Bu durumda,objectIdFromSession
talep çantasında bulunan talep, kullanıcının taleplerinin çoklu oturum açma nedeniyle oturum tanımlama bilgisinden geldiğini gösterir.
ExternalLoginSSOSessionProvider
Oturum ExternalLoginSSOSessionProvider
sağlayıcısı, "kimlik sağlayıcısı seçimi" ekranını atlamak ve federasyon kimlik sağlayıcısından oturumu kapatmak için kullanılır. Genellikle Facebook veya Microsoft Entra kimliği gibi bir federasyon kimlik sağlayıcısı için yapılandırılmış teknik profilde başvurulur.
- Yeni oturum açma
PersistedClaims
öğesi, oturum tanımlama bilgisine talep yazar. Kalıcı talepler yeniden yazılamaz.
- Sonraki oturum açma işlemleri
- Oturum tanımlama bilgisine yazılan her talep, bir sonraki düzenleme adımında kullanılmak üzere talep paketine eklenir.
- öğesi,
OutputClaims
talep çantasına statik talepler oluşturur. özniteliğiniDefaultValue
kullanarak talebin değerini ayarlayın. - Oturum yönetimi teknik profiline başvuran bir teknik profil, oturum tanımlama bilgisinde kalıcı hale getirilmiş bir
OutputClaim
içerdiğinde, bu teknik profil atlanır.
Aşağıdaki SM-SocialLogin
teknik profil, oturum sağlayıcısının türüdür ExternalLoginSSOSessionProvider
. Teknik SM-SocialLogin
profil , özel ilke başlangıç paketinde bulunabilir.
<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>
Talep AlternativeSecurityId
, kullanıcı bir dış kimlik sağlayıcısıyla oturum açtığında oluşturulur. Dış kimlik sağlayıcısı kullanıcısının benzersiz tanımlayıcısını temsil eden. Talep AlternativeSecurityId
, tek oturum açma yolculuklarında federasyon kimlik sağlayıcısıyla herhangi bir etkileşim olmadan dizinden okunabilecek şekilde kalıcı hale geldi.
Dış oturum sağlayıcısını yapılandırmak için OAuth1, OAuth2 veya OpenID Connect teknik profillerinizden öğesine bir başvuru SM-SocialLogin
ekleyin. Örneğin, Facebook-OAUTH
oturum yönetimi teknik profilini kullanır SM-SocialLogin
. Daha fazla bilgi için bkz. özel ilke başlangıç paketi.
<TechnicalProfile Id="Facebook-OAUTH">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
OAuthSSOSessionProvider
Oturum OAuthSSOSessionProvider
sağlayıcısı, OAuth2 veya OpenId Connect bağlı olan taraf ile Azure AD B2C arasında Azure AD B2C oturumlarını yönetmek için kullanılır. Azure AD B2C, Tekli Log-Out (SLO) olarak da bilinen Çoklu oturumu kapatmayı destekler. Bir kullanıcı Azure AD B2C oturum kapatma uç noktasında oturumu kapattığında, Azure AD B2C kullanıcının oturum tanımlama bilgisini tarayıcıdan temizler. Ancak, kullanıcı kimlik doğrulaması için Azure AD B2C kullanan diğer uygulamalarda oturum açmış olabilir.
Bu tür bir oturum sağlayıcısı, Azure AD B2C'nin kullanıcının oturum açtığı tüm OAuth2 veya OpenId Connect uygulamalarını izlemesine olanak tanır. Bir uygulamanın oturumu kapatılırken Azure AD B2C, bilinen tüm oturum açmış uygulamaların uç noktalarını çağırmaya logout
çalışır. Bu işlev oturum sağlayıcısında yerleşik olarak bulunur. Yapılandırılacak kalıcı veya çıkış talebi yok. Aşağıdaki SM-jwt-issuer
teknik profil, oturum sağlayıcısının türüdür OAuthSSOSessionProvider
.
<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>
SM-jwt-issuer
Teknik profile teknik profilden JwtIssuer
başvurulur:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
Oturum SamlSSOSessionProvider
sağlayıcısı, federasyon SAML kimlik sağlayıcıları veya SAML bağlı olan taraf uygulamaları ve Azure AD B2C ile oturum davranışını yönetmek için kullanılır.
SAML kimlik sağlayıcısı oturum yönetimi
SAML kimlik sağlayıcısı oturumundan bir SamlSSOSessionProvider
oturum sağlayıcısına başvurduğunda, öğesinin RegisterServiceProviders
olarak false
ayarlanması gerekir.
Aşağıdaki SM-Saml-idp
teknik profil, oturum sağlayıcısının SamlSSOSessionProvider
türüdür:
<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>
Oturum yönetimi teknik profilini kullanmak SM-Saml-idp
için SAML kimlik sağlayıcısı teknik profilinize bir başvuru ekleyin. Örneğin, AD-FS SAML kimlik sağlayıcısıContoso-SAML2
oturum yönetimi teknik profilini kullanır SM-Saml-idp
.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
SAML hizmet sağlayıcısı oturum yönetimi
SAML bağlı olan taraf oturumunu yönetmek için bir SamlSSOSessionProvider
oturum sağlayıcısına başvururken, öğesinin RegisterServiceProviders
olarak true
ayarlanması gerekir. SAML oturumunu kapatma işlemi ve'nin SessionIndex
NameID
tamamlanmasını gerektirir.
Aşağıdaki SM-Saml-issuer
teknik profil, oturum sağlayıcısının SamlSSOSessionProvider
türüdür:
<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>
Oturum yönetimi teknik profilini kullanmak SM-Saml-issuer
için SAML belirteci veren teknik profilinize bir başvuru ekleyin. Örneğin, Saml2AssertionIssuer
teknik profil oturum yönetimi teknik profilini kullanır SM-Saml-issuer
.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Meta veri
Öznitelik | Gerekli | Açıklama |
---|---|---|
IncludeSessionIndex | No | Şu anda kullanılmıyor, yoksayılabilir. |
RegisterServiceProviders | No | Sağlayıcının onay verilen tüm SAML hizmet sağlayıcılarını kaydetmesi gerektiğini gösterir. Olası değerler: true (varsayılan) veya false . |
NoopSSOSessionProvider
Oturum NoopSSOSessionProvider
sağlayıcısı çoklu oturum açma davranışını engellemek için kullanılır. Bu tür bir oturum sağlayıcısını kullanan teknik profiller, kullanıcının etkin bir oturumu olsa bile her zaman işlenir. Bu tür bir oturum sağlayıcısı, belirli teknik profilleri her zaman çalışmaya zorlamak için yararlı olabilir, örneğin:
- Talep dönüştürme - Daha sonra hangi düzenleme adımlarının işleneceğini veya atlandığını belirlemek için kullanılan talepleri oluşturmak veya dönüştürmek için.
- Restful - İlke her çalıştığında Restful hizmetinden güncelleştirilmiş verileri getirin. Genişletilmiş günlük kaydı ve denetim için restful da çağırabilirsiniz.
- Kendi kendine onaylanan - İlke her çalıştığında kullanıcıyı veri sağlamaya zorlar. Örneğin, e-postaları tek seferlik geçiş koduyla doğrulayın veya kullanıcının onayını isteyin.
- Phonefactor - Kullanıcıyı sonraki oturum açmalar (çoklu oturum açma) sırasında bile "kimlik doğrulamasını artırma" işleminin bir parçası olarak çok faktörlü kimlik doğrulaması gerçekleştirmeye zorlayın.
Bu tür bir oturum sağlayıcısı talepleri kullanıcının oturum tanımlama bilgisinde kalıcı yapmaz. Aşağıdaki SM-Noop
teknik profil, oturum sağlayıcısının türüdür NoopSSOSessionProvider
. Teknik SM-Noop
profil , özel ilke başlangıç paketinde bulunabilir.
<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>
Bir teknik profilin çoklu oturum açma davranışını engellemek için SM-Noop
, teknik profile bir başvuru ekleyin. Örneğin, AAD-Common
oturum yönetimi teknik profilini kullanır SM-Noop
. Daha fazla bilgi için bkz. özel ilke başlangıç paketi.
<TechnicalProfile Id="AAD-Common">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Sonraki adımlar
Oturum davranışını yapılandırmayı öğrenin.