Aracılığıyla paylaş


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 herhangi bir teknik profilin çoklu oturum açma (SSO) davranışının nasıl daha fazla 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 çantasında okunur.
    • Oturum tanımlama bilgisinin parçası olan talepler güncelleştirilemez.
    • Oturum sağlayıcısı talep çantasına ek talepler verebilir ve bu teknik profilin SSO koşulları altında yürütüldüğünü gösterir.
    • 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 önleyin veya uygulayın.
  • Sonraki oturum açmalar (SSO) sırasında seçilen kimlik sağlayıcısını anımsayın.
  • Sonraki oturum açmalar (SSO) sırasında dizinde 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ını 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 bilgisinde taleplerin okunmasına ve yazmasına izin verir.

Oturum sağlayıcısı Geçerli teknik profil türleri Purpose Talep yazma Talepleri okuma
DefaultSSOSessionProvider Kendi kendine onaylanan, Microsoft Entra Id, 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 belirteci 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 belirteci 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 Tümü Herhangi bir teknik profilin oturumun parçası olmasına engel olun. Hayır Hayır

Aşağıdaki diyagramda Azure AD B2C tarafından kullanılan oturum türleri gösterilmektedir.

Azure AD B2C oturum sağlayıcısı türlerini gösteren diyagram.

Oturum sağlayıcısına başvurma

Teknik profilinizde oturum sağlayıcısı kullanmak için:

  1. 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ür 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. Teknik profilinizdeki oturum yönetimi teknik profiline başvurun. Bunu yaptığınızda, 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 profilinin kullanımı gösterilmektedir SM-AAD . ReferenceId öğesini oturum yönetimi teknik profilinizin kimliğiyle değiştirin.

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

Önemli

Teknik bir profil hiçbir oturum yönetimi 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 çıktı 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 geri döner. Çıkış taleplerini belirtmeniz gerekmez.
  • Çıkış talepleri - Sonraki oturum açma işlemleri sırasında talep çantasına çıkış olabilecek ek talepler (çoklu oturum açma). Çı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önetecek şekilde yapılandırılabilir, örneğin:

  • Yeni oturum açma
    • PersistedClaims öğesi, talepleri oturum tanımlama bilgisine 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 aktarılır.
    • öğesi, OutputClaims talep paketine statik talepler oluşturur. DefaultValue Çıkış talebi değerini ayarlamak için özniteliğini kullanın.

DefaultSSOSessionProvider

Oturum sağlayıcısı, DefaultSSOSessionProvider sonraki oturum açma işlemleri sırasında talepleri yönetecek (çoklu oturum açma) ve teknik profillerin atlanması için yapılandırılabilir. , DefaultSSOSessionProvider sonraki 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ı nesnesi okunarak 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-AADoturum 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
    • signInNameoturum yönetimi teknik profili (SM-AAD) ile kalıcı olacak şekilde yapılandırıldığından signInName ve SM-AAD'ye başvuran teknik profil için signInNamebir OutputClaim 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 çantası, 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 deseni karşılayan 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çin Output 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 Id gibi bir federasyon kimlik sağlayıcısı için yapılandırılmış bir teknik profilde başvurulur.

  • Yeni oturum açma
    • PersistedClaims öğesi, talepleri oturum tanımlama bilgisine 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 çantasına aktarılır.
    • öğesi, OutputClaims talep paketine statik talepler oluşturur. talebin DefaultValue değerini ayarlama özniteliğini kullanın.
    • Oturum yönetimi teknik profiline başvuran bir teknik profil, oturum tanımlama bilgisinde kalıcı olan bir OutputClaimiç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 kullanıcının profilinin federasyon kimlik sağlayıcısıyla herhangi bir etkileşim olmadan dizinden okunabilmesi için 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 özel ilke başlangıç paketine bakın.

<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, Çoklu Oturum Kapatma (SLO) olarak da bilinen Çoklu oturumu kapatmayı destekler. Bir kullanıcı Azure AD B2C oturum kapatma uç noktası üzerinden oturumunu 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. Azure AD B2C, bir uygulamanın oturumu kapatılırken bilinen diğer 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 RegisterServiceProviders başvurduğunda, olarak ayarlanmalıdır false.

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ınızın teknik profiline 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 trueayarlanması gerekir. SAML oturumunun oturumunu kapatma, 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 Zorunlu Açıklama
IncludeSessionIndex Hayır Şu anda kullanılmaz, yoksayılabilir.
RegisterServiceProviders Hayır 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ı 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 atleneceğini 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. Ayrıca, genişletilmiş günlük kaydı ve denetim için Restful'u ç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 özel ilke başlangıç paketine bakın.

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

Sonraki adımlar

Oturum davranışını yapılandırmayı öğrenin.