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ılarının Azure AD B2C 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 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 profilinin SM-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-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 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ç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 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ğini DefaultValue 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 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 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 falseayarlanması 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 trueayarlanması gerekir. SAML oturumunu kapatma işlemi ve'nin SessionIndexNameID 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.