Aracılığıyla paylaş


Çoklu oturum kapatma

Güncelleştirme: 19 Haziran 2015

Şunlar için geçerlidir: Azure

Microsoft Azure Active Directory Access Control (Access Control Hizmeti veya ACS olarak da bilinir) artık çoklu oturum açmayı tamamlamak için isteğe bağlı bir çoklu oturum kapatma özelliği içerir. Sonuç, ACS ile tümleştirilmiş web tabanlı uygulamaların kullanıcıları için eksiksiz ve tutarlı bir oturum açma ve oturum kapatma deneyimidir.

Bir son kullanıcı çoklu oturum açmayı destekleyen bağlı olan taraf uygulamasının oturumunu kapattığında, ACS kullanıcıyı otomatik olarak kimlik sağlayıcısı sitesinde oturumu kapatabilir ve bu kimlik sağlayıcısını kullanarak oturum açtığı diğer tüm uygulamalardan oturumu kapatabilir. Benzer şekilde, müşteri kimlik sağlayıcısı web sitesinde oturumunu kapatıyorsa ACS, kimlik sağlayıcısını kullanarak oturum açtığı uygulamalardan müşteriyi otomatik olarak oturumu kapatabilir.

Bu konu başlığı altında, çoklu oturum kapatmanın nasıl çalıştığı ve bağlı olan taraf uygulamanız için çoklu oturumu kapatmanın nasıl uygulandığı açıklanmaktadır. Kod Örneği: ASP.NET Federasyon Oturumu Kapatma t ile MVC4'te ASP.NET MVC 4 uygulamasında federasyon çoklu oturumu kapatma uygulamak için örnek kodu gözden geçirmeyi unutmayın.

Sistem Gereksinimleri

Çoklu oturumu kapatmak için aşağıdaki araçlar ve hizmetler gereklidir.

  • Azure aboneliği

  • Visual Studio 2012

Tek Sign-Out hakkında

Her tarayıcı oturumunda müşteri bağlı olan taraf uygulamasında oturum açmak için bir federasyon kimlik sağlayıcısı seçebilir. Çoklu oturum kapatma ile, kullanıcı kimlik sağlayıcısının veya bağlı olan taraf uygulamasının oturumunu kapattığında, müşteri aynı kimlik sağlayıcısını kullanarak oturum açtığı tüm bağlı olan taraf uygulamalarından otomatik olarak oturumu kapatılır.

Örneğin müşteri, ACS ile tümleşik üç bağlı olan taraf uygulamasında oturum açmak için bir Microsoft hesabı (Windows Live ID) kullanır. Müşteri uygulamalardan herhangi birinin oturumunu kapattığında, microsoft hesabı otomatik olarak kapatılır ve diğer iki uygulamanın oturumunu kapatılır.

Özel WS-Federation ve ADFS kimlik sağlayıcıları için tam çoklu oturum kapatma desteği sağlanır. Facebook, Google, Microsoft hesabı ve Yahoo! kimlik sağlayıcıları. Bu kimlik sağlayıcıları çoklu oturum kapatma başlatamaz. Ancak, bağlı olan taraf bir uygulama çoklu oturum kapatmayı başlattığında, müşterinin bu kimlik sağlayıcılarının ve bu kimlik sağlayıcısını kullanarak oturum açtığı bağlı olan taraf uygulamalarının oturumu kapatılır.

Tek Sign-Out Nasıl Çalışır?

Çoklu oturum kapatma, kimlik sağlayıcısı veya bağlı olan taraf uygulaması tarafından başlatılabilir. Bu bölümde, bu oturum kapatma işlemlerinin her birini gözden geçirecek ve bağlı olan taraf uygulamanız için çoklu oturumu nasıl etkinleştirebileceğinizi açıklayacağız.

Bağlı Olan Taraf Uygulaması Sign-Out Başlatır

Kullanıcı bağlı olan taraf uygulamanızın oturumunu kapattığında çoklu oturum kapatmayı başlatmak için ACS WS-Federation uç noktasına aşağıdaki parametreleri içeren bir URL gönderin.

  • wa: wsignout1.0 olarak ayarlayın

  • wreply: Değeri oturum kapatma sayfasının URL'sine, yani oturumu kapatıldığında kullanıcının yeniden yönlendirildiği sayfaya ayarlayın. Bu değer RP etki alanı adının "https://RP.com/"

  • wtrealm: ACS Yönetim Portalı'nda bağlı olan taraf uygulamasının Realm özelliğinin değerine ayarlayın.

Aşağıda çoklu oturum kapatma için örnek bir URL verilmiştir.

https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=<YourAppRealm>&wreply=<YourAppRealmLogoutPage>

Örnek:

https://Fabrikam.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=" https://www.fabrikam.com/" &wreply= https://www.fabrikam.com/logout

Bağlı olan taraf tarafından başlatılan çoklu oturumu kapatmayı uygulayan örnek kod için bkz. Kod Örneği: Federasyon Oturumu Kapatma ile MVC 4 ASP.NET. Bu örnek, LogoutController.cs dosyasındaki, kötü ve kötü değerleri alan ve SignOutRequestMessage sınıfının bir örneğini oluşturan kodu içerir.

ACS, oturum kapatma URL'sini aldığında, ACS bir wsignout1.0 isteği göndererek müşterinin kimlik sağlayıcısıyla oturumunu sonlandırır. Ardından ACS, kullanıcının kimlik sağlayıcısını kullanarak oturum açtığı diğer bağlı olan taraf uygulamalarına wsignoutcleanup1.0 iletileri gönderir.

Kimlik Sağlayıcısı Sign-Out Başlatır

Kimlik sağlayıcısı tarafından başlatılan oturum kapatma yalnızca özel WS-Federation ve ADFS kimlik sağlayıcıları için desteklenir. Bu kimlik sağlayıcıları, kullanıcı oturumu kapattığında ACS'ye veya bağlı olan taraf uygulamasına bildirimde bulunmadığından Microsoft Hesabı (Live ID Windows, Google, Yahoo! ve Facebook kimlik sağlayıcıları için desteklenemez.

Kullanıcı bir WS-Federation veya ADFS kimlik sağlayıcısının oturumunu kapattığında, kimlik sağlayıcısı ACS'ye aşağıdaki biçimde bir wsignoutcleanup1.0 oturum kapatma temizleme isteği iletisi gönderir: https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignoutcleanup1.0

ACS bir wsignoutcleanup1.0 iletisi aldığında, iletinin HTTP üst bilgisinde başvuranı doğrulayarak isteğin oturum açma isteğiyle aynı uç noktadan kaynaklandığını doğrular: <Referrer>: https://CustomIDP Burada Başvuran> değeri <ACSSignOut tanımlama bilgisindeki oturum açma URL'sindeki başvuranın değeridir.

Ardından ACS, geçerli kullanıcının istemci tarayıcı oturumunda yer alan ve kimlik sağlayıcısıyla ilişkili tüm bağlı olan taraf uygulamalarına bir wsignoutcleanup1.0 iletisi gönderir. İşlem, "Bağlı Olan Taraf Uygulaması Oturumu Kapatmayı Başlatır" bölümünde açıklanan işleme benzer. Kimlik sağlayıcısı, tarayıcıyı, oturum kapatma işlemini tamamlamak için denetlediğinden bir oturum kapatma sayfasına yönlendirebilir.

Çoklu Oturum Kapatma İşlemi

Bu bölümde, çoklu oturum kapatma işlemindeki her adım açıklanmaktadır. ACS ayrıntıları sizin için işlediğinden, bu işlemi anlamanız gerekmez. Ancak, özelleştirme veya hata ayıklamada yararlı olabilir.

Adım Adım Tek Sign-Out

  1. ACS, WS-Federation uç noktasında bir signout1.0 isteği aldığında ACSSignOut tanımlama bilgisinde oturum kapatma isteği başlatıcısının kimlik sağlayıcısını arar.

    ACS, kimlik sağlayıcısını tanımlamak için aşağıdaki eşleştirme kurallarını kullanır.

    • Wtrealm parametresi oturum kapatma isteğinde belirtilirse, ACS her kimlik sağlayıcısı için bağlı olan taraflar listesinde wtrealm değerini arar.

    • wtrealm belirtilmezse ve ACSSignOut tanımlama bilgisinde yalnızca bir kimlik sağlayıcısı girişi varsa ACS, ACSSignOut tanımlama bilgisindeki kimlik sağlayıcısını kullanır.

    • Aksi takdirde ACS, wtrealm parametresi eksik olduğundan oturumu kapatma girişiminin başarısız olduğunu belirten bir hata sayfası görüntüler.

  2. ACS, satır içi çerçeve (<iframe>) öğesi içeren bir sayfa sunarak kimlik sağlayıcısına bir signout1.0 iletisi gönderir. ACS ayrıca SignOutCleanup1.0 iletisini içeren iframe> öğelerini başlatan taraf dışındaki tüm etkin WS-Federation bağlı olan tarafların sayfalarına ekler <ve ACS bağlı olan tarafları ACSSignOut tanımlama bilgisinden kaldırır.

  3. Bağlı olan taraf oturum kapatma durumunu görüntüleyen sayfa ayrıca belirtilen süre boyunca çalışan ve ardından tarayıcıyı yeniden yönlendiren JavaScript'i içerir. ACSSignOut tanımlama bilgisinde kötü bir parametre belirtildiyse, JavaScript oturumu kapatma işlemini tamamlamak için kötü değerle belirtilen adrese yönlendirilir. Aksi takdirde, JavaScript ACS Yönetim Portalı'nda belirtildiği gibi bağlı olan tarafın Dönüş URL'sine yönlendirilir.

ACS, uygulamada kullanıcının kimliğini doğrulayan kimlik sağlayıcısını kaydetmek için ACSSignOut adlı bir oturum tanımlama bilgisi kullanır. Tanımlama bilgisini oturum izlemelerinde görüntüleyebilirsiniz. Oturum tanımlama bilgisi şu ad biçimine sahiptir: ACSSignOut.<YourACSNamespace>.

ACSSignOut tanımlama bilgisi, bağlı olan taraf uygulamasını ve kullanıcının kimliğini doğrulayan kimlik sağlayıcısını tanımlar. ACS, doğru kimlik sağlayıcısının oturumunun kapatılmasını ve kullanıcının kimlik sağlayıcısını kullanarak oturum açtığı diğer bağlı olan taraf uygulamalarının oturumunun kapatılmasını sağlamak için çoklu oturum kapatma sırasında tanımlama bilgisini kullanır.

Tek Sign-Out Sınırlamaları

Çoklu oturum kapatma kullanırken aşağıdaki sınırlamalara dikkat edin.

  • Yalnızca özel WS-Federation kimlik sağlayıcıları ve ADFS kimlik sağlayıcıları çoklu oturumu kapatmayı başlatabilir. Yahoo, Google, Microsoft Hesabı (Windows Live ID) ve Facebook gibi sosyal kimlik sağlayıcıları, müşteri kimlik sağlayıcısı web sitesinin oturumunu kapattığında ACS'yi veya bağlı olan taraf uygulamasını bilgilendirmez. Bu nedenle, bu kimlik sağlayıcısını kullanan bağlı olan taraf uygulamalarının kullanıcıları, oturum kapatma kimlik sağlayıcısı sitesinden geldiğinde otomatik olarak oturumu kapatılmaz.

  • Çoklu oturum kapatma tüm ortamlarda etkili olmayabilir. ACS, bağlı olan taraf uygulamasından tek bir oturum kapatma iletisi aldığında, kimlik sağlayıcısına bir wsignout1.0 isteği ve diğer bağlı olan taraf uygulamalarının her birine bir wsignoutcleanup1.0 iletisi gönderir. ACS, tanımlayıcı bir sağlayıcıdan wsignoutcleanup1.0 istek iletisi aldığında, bağlı olan taraf uygulamalarının her birine bir wsignoutcleanup1.0 iletisi gönderir. Ancak ACS, sağlayıcıyı veya bağlı olan taraf uygulamalarını tanımlamanın kullanıcıyı oturumu kapatarak uygun şekilde yanıt vereceğini garanti edemez.

  • Kullanıcılar Internet Explorer'da Google kimlik sağlayıcısının oturumunu kapattığında tarayıcıda "Yalnızca güvenli içerik görüntüleniyor" istemi görüntülenir. Oturumu kapatma işlemini tamamlamak için kullanıcıların "Tüm içeriği göster"e tıklaması gerekir. Oturumu kapatma işlemi tamamlandığında tarayıcı, kötü parametrenin değeri tarafından belirtilen URL'ye yönlendirilir.

    Internet Explorer 9 ve internet explorer'ın sonraki sürümleri, güvenli olmayan bir sunucudan kaynaklanan görüntüler veya betikler gibi güvenli olmayan bir sayfada güvenli olmayan içerikle karşılaştığında güvenli içerik bildirimini görüntüler. Bu durumda, kimlik sağlayıcısından güvenli (HTTPS/SSL) ACS içeriğine ve güvenli olmayan (HTTP) içeriğe tepki gösterir. ACS bu davranışı değiştiremez veya gizleyemez.

    Kullanıcılar, Internet Explorer 9 veya sonraki sürümlerde "Yalnızca güvenli içerik görüntüleniyor" bildiriminde açıklandığı gibi bildirimi gizleyebilir. Ancak, bu ayar tüm web siteleri için geçerli olduğundan ve kullanıcının bilgisayarı kötü amaçlı içeriğe karşı savunmasız hale getirebileceğinden, güvenli olmayan (HTTP) içeriği engelleyen varsayılan ayar önerilir.

Son kullanıcıların çoklu oturum kapatmayı başlatmasına yardımcı olmak için, bağlı olan taraf uygulamasının oturum kapatma sayfası kullanıcılara tarayıcıyı kapatmalarını veya diğer bağlı olan taraf uygulamalarıyla kimlik sağlayıcısı web sitesinin oturumunu kapatmalarını bildirmelidir. Tarayıcı sekmesini, penceresini veya sayfasını kapatmak yeterli değildir. Bilgisayar paylaşılıyorsa veya bilgi noktası bilgisayarı gibi ortak bir yerdeyse, kullanıcıların tarayıcıyı kapatmadan önce tarayıcı geçmişini temizlemesi gerekir.

Ayrıca Bkz.

Kavramlar

Kod Örneği: Federasyon Oturumu Kapatma ile MVC 4 ASP.NET

Diğer Kaynaklar

WIF'de ASP.NET için Pasif Kimlik Doğrulaması