Aracılığıyla paylaş


Azure Active Directory B2C'de oturum davranışını yapılandırma

Başlamadan önce, ayarlamakta olduğunuz ilke türünü seçmek için bu sayfanın üst kısmındaki İlke türü seç seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gerekli adımlar her yöntem için farklıdır.

Çoklu oturum açma (SSO), kullanıcılar Azure Active Directory B2C'de (Azure AD B2C) uygulamalar arasında oturum açarken güvenlik ve kolaylık sağlar. Bu makalede Azure AD B2C'de kullanılan çoklu oturum açma yöntemleri açıklanır ve ilkenizi yapılandırırken en uygun SSO yöntemini seçmenize yardımcı olur.

Çoklu oturum açma ile kullanıcılar tek bir hesapla bir kez oturum açar ve birden çok uygulamaya erişim elde edersiniz. Uygulama, platform veya etki alanı adından bağımsız olarak web, mobil veya tek sayfalı bir uygulama olabilir.

Kullanıcı bir uygulamada ilk kez oturum açtığında, Azure AD B2C tanımlama bilgisi tabanlı bir oturumda kalır. Sonraki kimlik doğrulama isteklerinde, Azure AD B2C tanımlama bilgisi tabanlı oturumu okur ve doğrular ve kullanıcıdan yeniden oturum açmasını istemeden bir erişim belirteci gönderir. Tanımlama bilgisi tabanlı oturumun süresi dolarsa veya geçersiz olursa, kullanıcıdan yeniden oturum açması istenir.

Uyarı

Kullanıcı üçüncü taraf tanımlama bilgilerini engelleyen bir tarayıcı kullanıyorsa, tanımlama bilgisi tabanlı oturuma sınırlı erişim nedeniyle SSO ile ilgili sınırlamalar vardır. Kullanıcı tarafından görülebilen en büyük etki, oturum açmak için daha fazla etkileşim gerektirebilir olmasıdır. Ayrıca, ön kanal oturumu kapatma, federasyon uygulamalarından kimlik doğrulama durumunu hemen temizlemez. Tarayıcılarda üçüncü taraf tanımlama bilgisi engellemeyi işleme hakkında önerilen yollarımızı gözden geçirin.

Önkoşullar

Azure AD B2C oturumuna genel bakış

Azure AD B2C ile tümleştirme üç tür SSO oturumu içerir:

  • Azure AD B2C - Azure AD B2C tarafından yönetilen oturum
  • Federasyon kimlik sağlayıcısı - Facebook, Salesforce veya Microsoft hesabı gibi kimlik sağlayıcısı tarafından yönetilen oturum
  • Uygulama - Web, mobil veya tek sayfalı uygulama tarafından yönetilen oturum

SSO oturumu

Azure AD B2C oturumu

Bir kullanıcı yerel veya sosyal bir hesapla başarıyla kimlik doğrulaması yaptığında, Azure AD B2C, kullanıcının tarayıcısında çerez tabanlı bir oturum depolar. Tanımlama bilgisi, https://contoso.b2clogin.com gibi Azure AD B2C kiracı etki alanı adı altında depolanır.

Kullanıcı federasyon hesabıyla oturum açtığında, yaşam süresi (TTL) olarak da bilinen bir oturum süresi penceresi başlar. Kullanıcı bu TTL içinde aynı veya farklı bir uygulamada oturum açarsa, Azure AD B2C federasyon kimlik sağlayıcısından yeni bir erişim belirteci almayı dener. Federasyon kimlik sağlayıcısı oturumunun süresi dolduysa veya geçersizse, federasyon kimlik sağlayıcısı kullanıcıdan kimlik bilgilerini ister. Kullanıcının oturumu devam ediyorsa veya kullanıcı federasyon hesabı yerine yerel bir hesap kullanarak oturum açtıysa, Azure AD B2C kullanıcıyı yetkilendir ve başka istemleri önler.

TTL oturumu ve Azure AD B2C'nin ilkeler ve uygulamalar arasında oturumu nasıl paylaştığı dahil olmak üzere oturum davranışını yapılandırabilirsiniz.

Federasyon kimlik sağlayıcısı oturumu

Bir sosyal veya kurumsal kimlik sağlayıcısı kendi oturumunu yönetir. Tanımlama bilgisi, kimlik sağlayıcısının etki alanı adı altında, örneğin https://login.salesforce.com, depolanır. Azure AD B2C, federasyon kimlik sağlayıcısı oturumunu denetlemez. Bunun yerine, oturum davranışı federasyon kimlik sağlayıcısı tarafından belirlenir.

Aşağıdaki senaryoyu göz önünde bulundurun:

  1. Bir kullanıcı, akışını denetlemek için Facebook'ta oturum açar.
  2. Daha sonra kullanıcı uygulamanızı açar ve oturum açma işlemini başlatır. Uygulama, oturum açma işlemini tamamlamak için kullanıcıyı Azure AD B2C'ye yönlendirir.
  3. Azure AD B2C'ye kaydolma veya oturum açma sayfasında, kullanıcı Facebook hesabıyla oturum açmayı seçer. Kullanıcı Facebook'a yönlendirilir. Facebook'ta etkin bir oturum varsa, kullanıcıdan kimlik bilgilerini sağlaması istenmez ve bir Facebook belirteci ile hemen Azure AD B2C'ye yönlendirilir.

Uygulama oturumu

OAuth2 erişim belirteci, kimlik belirteci veya SAML belirteci bir web, mobil veya tek sayfalı uygulamayı koruyabilir. Kullanıcı uygulamadaki korumalı bir kaynağa erişmeye çalıştığında, uygulama tarafında etkin bir oturum olup olmadığını denetler. Uygulama oturumu yoksa veya oturumun süresi dolarsa, uygulama kullanıcıyı Azure AD B2C oturum açma sayfasına yönlendirir.

Uygulama oturumu, https://contoso.com gibi uygulama etki alanı adı altında depolanan tanımlama bilgisi tabanlı bir oturum olabilir. Mobil uygulamalar oturumu farklı bir şekilde depolayabilir ancak benzer bir yaklaşım kullanabilir.

Azure AD B2C oturum davranışını yapılandırma

Aşağıdakiler dahil olmak üzere Azure AD B2C oturum davranışını yapılandırabilirsiniz:

  • Web uygulaması oturum ömrü (dakika) - Başarılı kimlik doğrulamasından sonra Azure AD B2C oturum tanımlama bilgisinin kullanıcının tarayıcınızda depolandığı süre. Oturum ömrünü 24 saate kadar ayarlayabilirsiniz.

  • Web uygulaması oturumu zaman aşımı - Oturumun oturum ömrü ayarı veya Oturumumu açık tutma (KMSI) ayarıyla nasıl uzatıldığını gösterir.

    • Rolling - Kullanıcı her cookie tabanlı kimlik doğrulaması yaptığında (varsayılan), oturumun genişletildiğini gösterir.
    • Mutlak - Kullanıcının belirtilen süre sonunda yeniden kimlik doğrulaması yapmaya zorlandığını gösterir.
  • Çoklu oturum açma yapılandırması - Azure AD B2C oturumu aşağıdaki kapsamlarla yapılandırılabilir:

    • Kiracı - Bu ayar varsayılan ayardır. Bu ayarın kullanılması, B2C kiracınızdaki birden çok uygulamanın ve kullanıcı akışının aynı kullanıcı oturumunu paylaşmasına olanak tanır. Örneğin, bir kullanıcı bir uygulamada oturum açtığında, kullanıcı uygulamaya eriştiğinde başka bir uygulamada da sorunsuz bir şekilde oturum açabilir.
    • Uygulama - Bu ayar, diğer uygulamalardan bağımsız olarak yalnızca bir uygulama için kullanıcı oturumunun bakımını yapmanızı sağlar. Örneğin, kullanıcının Contoso Market'te oturum açıp açmadığına bakılmaksızın Contoso Eczanesi'nde oturum açmasını istiyorsanız bu ayarı kullanabilirsiniz.
    • Politika - Bu ayar, kullanan uygulamalardan bağımsız olarak yalnızca bir kullanıcı akışına ait bir kullanıcı oturumu tutmanızı sağlar. Örneğin Azure AD B2C, kullanıcı zaten oturum açmış ve çok faktörlü kimlik doğrulaması (MFA) adımını tamamlamışsa, kullanıcıya birden çok uygulamanın daha yüksek güvenlikli bölümlerine erişim verir. Kullanıcı akışıyla ilişkili oturum etkin kaldığı sürece bu erişim devam eder.
    • Gizlendi - Bu ayar, kullanıcıyı ilkenin her yürütmesinde kullanıcı akışının tamamında çalışmaya zorlar.

Kullanıcı akışını yapılandırma

Kullanıcı akışınızda oturum davranışını yapılandırmak için şu adımları izleyin:

  1. Azure portalınaoturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Kullanıcı akışları'ı seçin.
  5. Daha önce oluşturduğunuz kullanıcı akışını açın.
  6. Özellikleröğesini seçin.
  7. Gerektiğinde Web uygulaması oturum ömrü (dakika), Web uygulaması oturum zaman aşımı, Çoklu oturum açma yapılandırması ve Oturum kapatma isteklerinde Kimlik Belirteci gerektir'i yapılandırın.
  8. Kaydetseçeneğini seçin.

Özel ilkeyi yapılandırın

Özel ilkenizde oturum davranışını yapılandırmak için şu adımları izleyin:

  1. Bağlı olan taraf (RP) dosyasını açın, örneğin SignUpOrSignin.xml

  2. Henüz yoksa, aşağıdaki <UserJourneyBehaviors> öğesini <RelyingParty> öğesine ekleyin. hemen sonrasında <DefaultUserJourney ReferenceId="UserJourney Id"/> bulunmalıdır.

    <UserJourneyBehaviors>
      <SingleSignOn Scope="Application" />
      <SessionExpiryType>Absolute</SessionExpiryType>
      <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
    </UserJourneyBehaviors>
    

    Kullanıcı yolculuğu davranışı öğelerini ekledikten sonra, RelyingParty öğesi aşağıdaki örnekteki gibi görünmelidir:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <UserJourneyBehaviors>
        <SingleSignOn Scope="Application" />
        <SessionExpiryType>Absolute</SessionExpiryType>
        <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
      </UserJourneyBehaviors>
      <TechnicalProfile Id="PolicyProfile">
        <DisplayName>PolicyProfile</DisplayName>
        <Protocol Name="OpenIdConnect" />
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="displayName" />
          <OutputClaim ClaimTypeReferenceId="givenName" />
          ...
        </OutputClaims>
        <SubjectNamingInfo ClaimType="sub" />
      </TechnicalProfile>
    </RelyingParty>
    
  3. özniteliğinin Scope değerini olası değerlerden biriyle değiştirin: Suppressed, Tenant, Applicationveya Policy. Daha fazla bilgi için RelyingParty başvuru makalesine bakın.

  4. SessionExpiryType öğesini Rolling veya Absolute olarak ayarlayın. Daha fazla bilgi için RelyingParty başvuru makalesine bakın.

  5. SessionExpiryInSeconds öğesini 900 saniye (15 dakika) ile 86.400 saniye (24 saat) arasında bir sayısal değere ayarlayın. Daha fazla bilgi için RelyingParty başvuru makalesine bakın.

Oturumumu açık bırak'ı etkinleştir (KMSI)

Azure AD B2C dizininizde yerel hesapları olan web ve yerel uygulama kullanıcıları için KMSI özelliğini etkinleştirebilirsiniz. Özelliği etkinleştirdiğinizde, kullanıcılar oturumlarının açık kalmasını tercih edebilir, böylece tarayıcıyı kapatsalar bile oturum etkin kalır. Oturum, kalıcı bir tanımlama bilgisi ayarlamak suretiyle korunur. KMSI'yi seçen kullanıcılar, kullanıcı adlarını ve parolalarını yeniden girmeleri istenmeden tarayıcıyı yeniden açabilir. Kullanıcı oturumu kapattığında bu erişim (kalıcı çerez) iptal edilir. Daha fazla bilgi için Canlı demoya göz atın.

Oturumumu açık bırak onay kutusunu gösteren örnek kaydolma oturum açma sayfası

KMSI, bireysel kullanıcı akışı düzeyinde yapılandırılabilir. Kullanıcı akışlarınız için KMSI'yi etkinleştirmeden önce aşağıdakileri göz önünde bulundurun:

  • KMSI yalnızca kaydolma ve oturum açma (SUSI), oturum açma ve profil düzenleme kullanıcı akışlarının Önerilen sürümleri için desteklenir. Şu anda bu kullanıcı akışlarının Standart (Eski) veya Eski önizleme - v2 sürümlerine sahipseniz ve KMSI'yi etkinleştirmek istiyorsanız, bu kullanıcı akışlarının yeni, Önerilen sürümlerini oluşturmanız gerekir.
  • KMSI, parola sıfırlama veya kaydolma kullanıcı akışlarıyla desteklenmez.
  • Kiracınızdaki tüm uygulamalar için KMSI'yi etkinleştirmek istiyorsanız, kiracınızdaki tüm kullanıcı akışları için KMSI'yi etkinleştirmenizi öneririz. Bir kullanıcıya oturum sırasında birden çok ilke sunulabildiğinden, KMSI etkinleştirilmemiş bir ilkeyle karşılaşabilir ve bu da KMSI tanımlama bilgisini oturumdan kaldırır.
  • KMSI ortak bilgisayarlarda etkinleştirilmemelidir.

Kullanıcı akışı için KMSI'yi yapılandırma

Kullanıcı akışınızda KMSI'yi etkinleştirmek için:

  1. Azure portalınaoturum açın.

  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.

  3. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.

  4. Kullanıcı akışları (ilkeler) öğesini seçin.

  5. Daha önce oluşturduğunuz kullanıcı akışını açın.

  6. Özellikleröğesini seçin.

  7. Oturum davranışı altında Oturumumu açık tut özelliğini etkinleştir seçin. Oturumumu açık tut (gün) seçeneğinin yanında, oturumun açık kalabileceği gün sayısını belirtmek için 1 ile 90 arasını girin.

    Oturumumu açık tutmayı etkinleştir

Kullanıcılar bu seçeneği ortak bilgisayarlarda etkinleştirmemelidir.

Sayfa tanımlayıcısını yapılandırma

KMSI'yi etkinleştirmek için içerik tanımı DataUri öğesini sayfa tanımlayıcısıunifiedssp ve sayfa sürümü1.1.0 veya üzeri olarak ayarlayın.

  1. İlkenizin uzantı dosyasını açın. Örneğin, SocialAndLocalAccounts/TrustFrameworkExtensions.xml. Bu uzantı dosyası, özel ilke başlangıç paketinde yer alan ve özel ilkeleri kullanmaya başlama önkoşulunda edindiğiniz ilke dosyalarından biridir.

  2. BuildingBlocks öğesini arayın. Öğesi yoksa ekleyin.

  3. contentDefinitions öğesini ilkenin BuildingBlocks öğesine ekleyin.

    Özel ilkeniz aşağıdaki kod parçacığı gibi görünmelidir:

    <BuildingBlocks>
      <ContentDefinitions>
        <ContentDefinition Id="api.signuporsignin">
          <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0</DataUri>
        </ContentDefinition>
      </ContentDefinitions>
    </BuildingBlocks>
    

Meta verilerini kendini beyan eden teknik profile ekleyin

Kaydolma ve oturum açma sayfasına KMSI onay kutusunu eklemek için meta verileri true olarak ayarlayın setting.enableRememberMe . Uzantı dosyasındaki SelfAsserted-LocalAccountSignin-Email teknik profillerini geçersiz kılın.

  1. ClaimsProviders öğesini bulun. Öğesi yoksa ekleyin.

  2. ClaimsProviders öğesine aşağıdaki talep sağlayıcısını ekleyin:

    <ClaimsProvider>
      <DisplayName>Local Account</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
          <Metadata>
            <Item Key="setting.enableRememberMe">True</Item>
          </Metadata>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Uzantılar dosyasını kaydedin.

Güvenilen taraf dosyasını konfigüre et.

Oluşturduğunuz kullanıcı yolculuğunu başlatan bağlı taraf (RP) dosyasını güncelleştirin. parametresi, keepAliveInDays oturumumu açık tutma (KMSI) oturum tanımlama bilgisinin ne kadar süreyle kalıcı olması gerektiğini yapılandırmanıza olanak tanır. Örneğin, değeri 30 olarak ayarlarsanız KMSI oturum tanımlama bilgisi 30 gün boyunca kalır. Değerin aralığı 1 ile 90 gün arasındadır. Değeri 0 olarak ayarlamak KMSI işlevini kapatır.

  1. Özel ilke dosyanızı açın. Örneğin, SignUpOrSignin.xml.

  2. Henüz yoksa, <RelyingParty> düğümüne bir <UserJourneyBehaviors> alt düğüm ekleyin. hemen sonra <DefaultUserJourney ReferenceId="User journey Id" />bulunmalıdır, örneğin: <DefaultUserJourney ReferenceId="SignUpOrSignIn" />.

  3. <UserJourneyBehaviors> öğesinin altına aşağıdaki düğümü ekleyin.

    <UserJourneyBehaviors>
      <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
      <SessionExpiryType>Absolute</SessionExpiryType>
      <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
    </UserJourneyBehaviors>
    

Hem KeepAliveInDays hem de SessionExpiryInSeconds ayarlanınca, oturum açma sırasında eğer kullanıcı KMSI'yi etkinleştirirse çerezleri ayarlamak için KeepAliveInDays kullanılır; aksi takdirde, SessionExpiryInSeconds parametresinde belirtilen değer kullanılır. Aşağıdaki örnekte gösterildiği gibi SessionExpiryInSeconds değerini kısa bir süre (1200 saniye) olarak ayarlamanızı, KeepAliveInDays değerini ise görece uzun bir süreye (30 gün) ayarlamanızı öneririz:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <UserJourneyBehaviors>
    <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
    <SessionExpiryType>Absolute</SessionExpiryType>
    <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
  </UserJourneyBehaviors>
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
      <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

Oturumu kapat

Kullanıcının uygulama oturumunu kapatmak istediğinizde, uygulamanın tanımlama bilgilerini temizlemek veya kullanıcıyla oturumu başka bir şekilde sonlandırmak yeterli değildir. Oturumu kapatmak için kullanıcıyı Azure AD B2C'ye yeniden yönlendirmeniz gerekir. Aksi takdirde kullanıcı, kimlik bilgilerini yeniden girmeden uygulamalarınıza yeniden kimlik doğrulaması yapabilir.

Oturum kapatma isteği üzerine Azure AD B2C:

  1. Azure AD B2C tanımlama bilgisi tabanlı oturumu geçersiz kılar.
  2. Birleşik kimlik sağlayıcılarının oturumunu kapatmaya çalışır.
  1. Azure AD B2C tanımlama bilgisi tabanlı oturumu geçersiz kılar.
  2. Federasyon kimlik sağlayıcılarından çıkış yapma girişimleri:
    • OpenId Connect - Kimlik sağlayıcısının genel olarak bilinen yapılandırma uç noktası bir end_session_endpoint konum belirtirse. Oturum kapatma isteği, id_token_hint parametresini iletmiyor. Federasyon kimlik sağlayıcısı bu parametreyi gerektiriyorsa, oturum kapatma isteği başarısız olur.
    • OAuth2 - eğer kimlik sağlayıcısı meta verileriend_session_endpoint konumunu içeriyorsa.
    • SAML - Eğer kimlik sağlayıcısının meta verileriSingleLogoutService konumunu içeriyorsa.
  3. Diğer uygulamalardan isteğe bağlı olarak oturum kapatın. Daha fazla bilgi için Çoklu oturum kapatma bölümüne bakın.

Uyarı

Kimlik sağlayıcısı teknik profil meta verilerini SingleLogoutEnabledfalseolarak ayarlayarak federasyon kimlik sağlayıcılarının oturumunu kapatmayı devre dışı bırakabilirsiniz.

Oturum kapatma, kullanıcının Azure AD B2C ile çoklu oturum açma durumunu temizler, ancak kullanıcının sosyal kimlik sağlayıcısı oturumunu kapatmayabilir. Kullanıcı bir sonraki oturum açma sırasında aynı kimlik sağlayıcısını seçerse, kimlik bilgilerini girmeden yeniden kimlik doğrulamasından geçer. Bir kullanıcı uygulamanın oturumunu kapatmak istiyorsa bu, Facebook hesabında oturumunu kapatmak istediği anlamına gelmez. Ancak, yerel hesaplar kullanılırsa kullanıcının oturumu düzgün bir şekilde sona erer.

Tek oturum kapatma

Kullanıcıyı Azure AD B2C oturum kapatma uç noktasına (hem OAuth2 hem de OpenID Connect için) yeniden yönlendirdiğinizde veya bir LogoutRequest (SAML için) gönderdiğinizde, Azure AD B2C kullanıcının oturumunu tarayıcıdan temizler. Ancak, kullanıcı kimlik doğrulaması için Azure AD B2C kullanan diğer uygulamalarda oturum açmış olabilir. Etkin oturumu olan tüm uygulamalarda kullanıcıyı oturumu kapatmak için Azure AD B2C, Tek Log-Out (SLO) olarak da bilinen çoklu oturumu kapatmayı destekler.

Oturum kapatma sırasında Azure AD B2C aynı anda kullanıcının oturum açtığı tüm uygulamaların kayıtlı oturum kapatma URL'sine bir HTTP isteği gönderir.

Özel ilkenizi yapılandırma

Tekli oturumu kapatmayı desteklemek için, hem JWT hem de SAML için belirteç veren teknik profiller şunları belirtmelidir:

  • Protokol adı, örneğin <Protocol Name="OpenIdConnect" />
  • Oturum teknik profiline atıf, örneğin UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />.

Aşağıdaki örnek, tekli oturum kapatma ile JWT ve SAML belirteci vericilerini göstermektedir.

<ClaimsProvider>
  <DisplayName>Local Account SignIn</DisplayName>
  <TechnicalProfiles>
    <!-- JWT Issuer -->
    <TechnicalProfile Id="JwtIssuer">
      <DisplayName>JWT Issuer</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputTokenFormat>JWT</OutputTokenFormat>
      ...    
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
    </TechnicalProfile>

    <!-- Session management technical profile for OIDC based tokens -->
    <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>

    <!--SAML token issuer-->
    <TechnicalProfile Id="Saml2AssertionIssuer">
      <DisplayName>SAML token issuer</DisplayName>
      <Protocol Name="SAML2" />
      <OutputTokenFormat>SAML2</OutputTokenFormat>
      ...
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
    </TechnicalProfile>

    <!-- Session management technical profile for SAML based tokens -->
    <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>
  </TechnicalProfiles>
</ClaimsProvider>

Uygulamanızı yapılandırma

Bir uygulamanın çoklu oturum kapatmaya katılması için:

  • SAML hizmet sağlayıcıları için, uygulamayı SAML meta veri belgesinde SingleLogoutService konumuyla yapılandırın. Uygulama kaydını logoutUrl yapılandırabilirsiniz. Daha fazla bilgi için bkz. Oturumu kapatma URL'sini ayarlama.
  • OpenID Connect veya OAuth2 uygulamaları için uygulama kayıt bildiriminizin özniteliğini ayarlayın logoutUrl . Oturumu kapatma URL'sini yapılandırmak için:
    1. Azure AD B2C menüsünden Uygulama kayıtları'nı seçin.
    2. Uygulama kaydınızı seçin.
    3. Yönet'in altında Kimlik Doğrulama'yı seçin.
    4. Ön kanal oturumu kapatma URL'si altında, oturum kapatma URL'nizi yapılandırın.

Çoklu oturum kapatma isteklerini işleme

Azure AD B2C oturumu kapatma isteğini aldığında, kullanıcının halihazırda oturum açmış olduğu her katılımcı uygulamanın kayıtlı oturum kapatma URL'sine bir HTTP isteği göndermek için ön kanal üzerinden bir HTML iframe kullanır. Oturumu kapatma isteğini tetikleyen uygulamanın bu oturumu kapatma iletisini aldığını unutmayın. Uygulamalarınız, kullanıcıyı tanımlayan uygulama oturumunu temizleyerek oturum kapatma isteğine yanıt vermelidir.

  • OpenID Connect ve OAuth2 uygulamaları için Azure AD B2C, kayıtlı oturum kapatma URL'sine bir HTTP GET isteği gönderir.
  • SAML uygulamaları için Azure AD B2C, kayıtlı oturum kapatma URL'sine bir SAML oturumu kapatma isteği gönderir.

Azure AD B2C tüm uygulamalara oturum kapatmayı bildirdiğinde, aşağıdakilerden birini gerçekleştirir:

  • OpenID Connect veya OAuth2 uygulamaları için kullanıcıyı, ilk istekte belirtilen (isteğe bağlı) state parametresi dahil olmak üzere istenene post_logout_redirect_uri yönlendirir. Örneğin https://contoso.com/logout?state=foo.
  • SAML uygulamaları için, başlangıçta oturum kapatma isteğini gönderen uygulamaya HTTP POST aracılığıyla bir SAML oturumu kapatma yanıtı gönderir.

Oturumu kapatma yeniden yönlendirmesini güvenli hale getirin

Oturum kapatıldıktan sonra kullanıcı, uygulama için belirttiğiniz yanıt URL'lerinden bağımsız olarak parametresinde post_logout_redirect_uri belirtilen URI'ye yönlendirilir. Ancak geçerli id_token_hint bir ileti geçirilirse ve oturum kapatma isteklerinde Kimlik Belirteci Gerektir seçeneği açıksa Azure AD B2C, yeniden yönlendirmeyi gerçekleştirmeden önce değerinin post_logout_redirect_uri uygulamanın yapılandırılmış yeniden yönlendirme URI'lerinden biriyle eşleşip eşleşmediğini doğrular. Uygulama için eşleşen yanıt URL'si yapılandırılmadıysa, bir hata iletisi görüntülenir ve kullanıcı yeniden yönlendirilmiyor.

Oturum kapatma isteklerinde kimlik belirteci gerektirmek için:

  1. Azure portalınaoturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Kullanıcı akışları'ı seçin.
  5. Daha önce oluşturduğunuz kullanıcı akışını açın.
  6. Özellikleröğesini seçin.
  7. Oturum kapatma isteklerinde Kimlik Belirteci Gerektir seçeneğini etkinleştirin.

Oturumu kapatma isteklerinde kimlik belirteci gerektirmek için RelyingParty öğesinin içine bir UserJourneyBehaviors öğesi ekleyin. Ardından SingleSignOn öğesinin EnforceIdTokenHintOnLogout değerini olarak trueayarlayın. Daha fazla bilgi için Canlı tanıtıma göz atın. UserJourneyBehaviors öğeniz şu örnekteki gibi görünmelidir:

<UserJourneyBehaviors>
  <SingleSignOn Scope="Tenant" EnforceIdTokenHintOnLogout="true"/>
</UserJourneyBehaviors>

Uygulamanızın Oturum Kapatma URL'sini yapılandırmak için:

  1. Uygulama kayıtları öğesini seçin, ardından uygulamanızı seçin.
  2. Kimlik doğrulaması'nı seçin.
  3. Oturumu Kapatma URL'si metin kutusuna oturum kapatma sonrası yeniden yönlendirme URI'nizi yazın ve Kaydet'i seçin.