Microsoft Edge ile Kerberos kısıtlanmamış çift atlamalı kimlik doğrulaması (Chromium)
Şunlar için geçerlidir: Internet Information Services
Giriş
Kerberos kimlik doğrulama protokolüne dayalı Olarak Windows Kimlik Doğrulaması'nın ayarlanması, özellikle iis ve ASP.NET bağlamında bir ön uç sitesinden arka uç hizmetine kimlik temsilcisi seçme gibi senaryolarla ilgilenirken karmaşık bir çaba olabilir. Kimlik doğrulama biletlerinin temsilci seçmesini ayarlamak ve hizmetleri Microsoft Edge sürüm 87 veya üzeri gibi modern bir tarayıcıyla kullanmak için bu makalenin adımlarını izleyin.
Bu makalede, aşağıdaki diyagramda gösterilene benzer bir mimari ayarladığınız varsayılır:
- Workstation-Client1 bilgisayarı, Birincil-IIS-SRV ve Backend-Web-SRV adlı arka uç web sunucusu olarak adlandırılan birincil Web-Server ile aynı active directory'nin bir parçasıdır.
- Workstation-Client1 bilgisayarının kullanıcıları Windows Active Directory hesabını kullanarak makinede oturum açar.
- Ardından bir tarayıcı (Microsoft Edge) başlatır, Primary-IIS-SRV için kullanılan diğer ad olan Web-Server'da bulunan bir web sitesine gider ve Kerberos kullanarak tümleşik Windows kimlik doğrulaması aracılığıyla kimlik doğrulaması yapar.
- Web-Server'de bulunan web sitesi, Kerberos kimlik bilgisi temsilcisi kullanarak kullanıcılar adına uygulama verilerini almak üzere API-Server ( Backend-Web-SRV'nin diğer adıdır) için kimliği doğrulanmış kullanıcının kimlik bilgilerini kullanarak HTTP çağrıları yapar.
Aşağıdaki adımlar bu senaryoyla ilgili sorunları gidermenize yardımcı olur: Kurulum Internet Explorer ile çalışır, ancak kullanıcılar Microsoft Edge'i benimsediğinde kimlik bilgisi temsilcisi özelliğini artık kullanamaz. Kerberos kimlik bilgisi temsilcisini kullanmak için öncelikle Internet Explorer'da Kerberos hatalarını giderme bölümüne bakın.
Kısıtlanmış veya kısıtlanmamış temsil
Yukarıdaki senaryoda, her iki yapılandırma da kullanıcıların ön uç Web-Sunucusu üzerinden bağlanırken machine Workstation-Client1'deki kullanıcı oturumlarından arka uç API sunucusuna kimlik bilgileri atamasına olanak tanır.
Kısıtlanmamış bir Kerberos temsil yapılandırmasında, uygulama havuzu kimliği Web-Server üzerinde çalışır ve Active Directory'de herhangi bir hizmete temsilci seçme için güvenilecek şekilde yapılandırılır. Web-Server üzerinde çalışan uygulama havuzunun hesabı, bu sunucuda barındırılan web sitesinin kimliği doğrulanmış kullanıcılarının kimlik bilgilerini Active Directory'deki diğer hizmetlere devredebilir. Örneğin, SMTP sunucusu, dosya sunucusu, veritabanı sunucusu, başka bir web sunucusu vb. Uygulama havuzu hesabının kimlik bilgilerini ilgili herhangi bir hizmete devretme izni olduğundan (kısıtlanmamış olduğundan) bu, kısıtlanmamış temsil olarak adlandırılır.
Kısıtlanmış temsil yapılandırmasında, uygulama havuzu kimliği olarak kullanılan Active Directory hesabı, kimliği doğrulanmış kullanıcıların kimlik bilgilerini yalnızca temsilci seçme yetkisi olan hizmetlerin listesine atayabilir. Web-Server adlı sunucuda bulunan web uygulamasının da bir veritabanına başvurması ve kullanıcı adına kimlik doğrulaması yapması gerekiyorsa, bu hizmet asıl adı (SPN) yetkili hizmetler listesine eklenmelidir.
Kısıtlanmış temsil, en az ayrıcalık ilkesine bağlı olarak kısıtlanmamış temsilden daha güvenlidir. Uygulamaya çalışması için gereken haklar verilir ve başka bir şey verilmezken, kısıtlanmamış temsil, bir uygulamanın kullanıcı adına iletişim kurmaması gereken kaynaklara başvurmasına izin verir.
Web-Server göndermek üzere istemcide alınan Kerberos anahtarının kısıtlanmış veya kısıtlanmamış temsil kullanıp kullanmadığını nasıl anlarız?
İstemci makinesinden Kerberos biletlerinin önbelleğini listelemek için Windows'ta bulunan klist komut aracını kullanın (yukarıdaki diyagramda workstation-client1 ). HTTP/<Web-Server> Adı adlı bir bilet arayın. Not: <Web-Server> adı, Kerberos aracılığıyla iletişim kurmak ve kimlik doğrulaması yapmak istediğiniz hizmetin SPN'dir. Bilet ayrıca birkaç bayrak içerir. bunlardan ikisi ilgi çekicidir: forwardable
ve ok_as_delegate
.
İlk bayrağı,
forwardable
KDC'nin (anahtar dağıtım merkezi) gerekirse yeni bir ağ maskesiyle yeni bir bilet düzenleyebileceğini gösterir. Bu, kullanıcının uzak sistemde oturum açmasına ve uzak sistemin kullanıcı adına yeni bir anahtar almasına olanak tanır ve kullanıcı, uzak sistemde yerel olarak oturum açmış gibi başka bir arka uç sisteminde oturum açar.İkinci bayrak,
ok_as_delegate
kullanıcının kimlik doğrulaması yapmaya çalıştığı hizmetin hizmet hesabına (yukarıdaki diyagramda, web uygulamasını barındıran IIS uygulama havuzunun uygulama havuzu hesabına) kısıtlanmamış temsil için güvenilir olduğunu gösterir.
Bu hizmetler kısıtlanmamış temsil kullanıyorsa istemci makinesindeki biletler ve forwardable
bayraklarını içerirok_as_delegate
. Çoğu durumda, kısıtlanmış temsil yapılandırıldığında biletler bayrağı içermez ok_as_delegate
ancak bayrağı içerir forwardable
.
Kısıtlanmamış temsilci seçme neden Microsoft Edge'de değil de Internet Explorer'da çalışıyor?
Kerberos tabanlı kimlik doğrulaması kullanarak bir web sitesinde kimlik doğrulaması yapmaya çalışıldığında, tarayıcı kimlik doğrulama bağlamını ayarlamak için bir Windows API'sini çağırır. Söz konusu API'dir InitializeSecurityContext
. Bu API, tarayıcının kullanıcının aldığı bilete izin verip vermediğini delegatable
belirten bir dizi bayrak alabilir. Kullanıcının kimlik doğrulaması yapmaya çalıştığı hizmetin kimlik bilgilerini kısıtlanmamış bir şekilde temsilci seçme hakkına sahip olması nedeniyle bilet olarak delegatable
işaretlenir. Ancak bu, kimlik doğrulaması yapmaya çalışan uygulamanın (bu durumda tarayıcı) bu kapasiteyi kullanması gerektiği anlamına gelmez.
Varsayılan olarak, Internet Explorer bayrağını InitializeSecurityContext
adresine geçirir ve bilet temsilci seçilebiliyorsa bunun olması gerektiğini belirtir. Sürüm 87 ve üzerindeki Microsoft Edge, yalnızca bilet bayrakla işaretlendiğinden bayrağı InitializeSecurityContext
geçirmez ok_as_delegate
. Uygulamalara gerekenden daha fazla ayrıcalık sağladığından, uygulamalarda kısıtlanmamış temsil kullanılmasını önermiyoruz. Uygulamalar, kullanıcının kimliğini etki alanındaki diğer herhangi bir hizmete devredebilir ve kullanıcı olarak kimlik doğrulaması yapabilir. Bu, kimlik bilgisi temsilcisi kullanan çoğu uygulama için gerekli değildir. Uygulamalar yalnızca kısıtlanmış temsil ayarlanırken belirtilen listedeki hizmetlere başvurmalıdır.
Microsoft Edge varsayılan olarak, aşağıda listelenen Active Directory'den uygulama havuzu kimlik hesabı yapılandırmasında gösterildiği gibi, Web-Server üzerinde çalışan IIS web sitesinin yalnızca API-Server'da barındırılan arka uç API sitesine başvurma hakkına sahip olduğu kısıtlanmış temsilciyle çalışır:
Active Directory'de Edge-Chromium kısıtlanmamış temsilciyle çalışmasını sağlama
Uyumluluk amacıyla, Kerberos aracılığıyla kısıtlanmamış temsil kullanarak bir uygulamanın bakımını yapmak zorundaysanız, Microsoft Edge'i bilet temsilcisine izin verecek şekilde etkinleştirin. Aşağıdaki adımlar bu makalenin aşağıdaki bölümlerinde ayrıntılı olarak verilmiştir:
- Active Directory'de grup ilkesi Central Store için Yönetim Şablonları'nı yükleyin (henüz yoksa) .
- Microsoft Edge Yönetim şablonlarını yükleyin.
- Yeni bir grup ilkesi nesnesi oluşturun.
- Sunucularda kimlik doğrulaması yaparken kısıtlanmamış temsile izin vermek için grup ilkesi yapılandırmasını düzenleyin.
- (İsteğe bağlı) Microsoft Edge'in doğru temsilci bayraklarını kullanıp kullanmadiğini denetleyin.
1. Adım: Active Directory için Yönetim Şablonlarını Yükleme
Yönetim Şablonları 'ndan (.admx) şablonları indirin (Windows Server 2019 için).
Yükleyiciyi indirin ve içeriği istediğiniz bir klasöre ayıklayın. Bunu, paketin varsayılan belirtilen konumuna ayıklayabilirsiniz; C:\Program Files (x86)\Microsoft grup ilkesi\Windows 10 Ekim 2018 Güncelleştirmesi (1809) v2\PolicyDefinitions.
Paketin sıkıştırması açıldığında, etki alanı denetleyicinizde Sysvol klasörünü bulun. Klasörün yolu C:\Windows\SYSVOL\sysvol\ şeklindedir. Sysvol klasörünün içinde Active Directory adınızla aynı ada sahip bir klasör bulunur (buradaki örnekte Oddessy.local). Buradan İlkeler klasörüne gidin. Yoksa, aşağıda gösterildiği gibi İlke Tanımları adlı bir klasör oluşturun:
Etki alanı denetleyicisindeki sysvol klasöründe etki alanınızın içinde oluşturduğunuz PolicyDefinitions klasörünün içeriğini (yükleyiciden PolicyDefinitions klasörüne ayıklandı) kopyalayın.
Not
Yükleyici tarafından ayıklanan dosyalar da yerelleştirilmiş içerik içerir. Alandan tasarruf etmek için, yerelleştirilmiş dosyaları yalnızca istenen diller için aktarın. Örneğin fr-FR adlı klasör Fransızca tüm yerelleştirilmiş içeriği içerir.
Aktarım tamamlandığında, şablonların Active Directory'de kullanılabilir olduğunu doğrulayın. Bunu yapmak için Microsoft Yönetim Konsolu'nun grup ilkesi Yönetim ek bileşenini açın (başlatmak için Windows+R tuşlarına basın ve ardından gpmc.msc yazın). grup ilkesi Yönetimi'nin içinde bir grup ilkesi nesnesi bulun ve düzenleyin.
Yukarıdaki ekran görüntüsünde gösterildiği gibi , Bilgisayar Yapılandırması düğümü altında bir İlkeler düğümü ve Yönetim şablonları düğümü bulunur.
2. Adım: Microsoft Edge Yönetim şablonlarını yükleme
Başlangıç olarak etki alanı denetleyicisinde İlke Yönetim Şablonları'na sahip olabilirsiniz ancak bu tarayıcı üzerinden iki atlamalı kısıtlanmamış temsili etkinleştirmeyi amaçlayan ilkeye erişebilmek için Microsoft Edge İlkesi dosyalarını yüklemeniz gerekir. Microsoft Edge İlkesi dosyalarını yüklemek için aşağıdaki adımları izleyin:
İş için Microsoft Edge indirme sitesine gidin.
Kanal/sürüm açılan listesinden indirmek istediğiniz sürümü seçin. En son kararlı sürüm önerilir.
Derleme açılan listesinden istediğiniz derlemeyi ve son olarak platform açılan listesinden hedef işletim sistemini seçin. Seçim yapıldıktan sonra iki düğme daha (bir düğme ve bağlantı) görüntülenir.
İlkE DOSYALARINI AL'a tıklayın ve MicrosoftEdgePolicyTemplates.cabadlı dosyayı indirmek için lisans sözleşmesini kabul edin. Bu dosya, Microsoft Edge için ilke tanımı dosyalarını içerir.
İçeriği (aynı ada sahip bir zip arşivi) keşfetmek için dosyaya çift tıklayın.
Zip arşivinin içeriğini yerel diskinizde bir klasöre ayıklayın. Ayıklanan içerik, Içinde Admx adlı bir alt klasör bulabileceğiniz Windows adlı bir klasör içerir. Bu, yönetim şablonlarının yanı sıra yerelleştirilmiş sürümlerini de içerir (İngilizce dışında bir dilde kullanmanız gerekir).
.admx dosyalarını, önceki Yönetim Şablonlarının aktarıldığı Sysvol dizinindeki aynı klasöre aktarın (yukarıdaki örnekte: C:\Windows\SYSVOL\sysvol\odessy.local\Policies\PolicyDefinitions).
Active Directory grup ilkesi Düzenleyici açın ve yeni aktarılan Microsoft Edge şablonlarının varlığını denetlemek için düzenlemek üzere mevcut bir grup ilkesi nesnesini seçin. Bunlar, ağaç görünümünde yönetim şablonları klasörünün altında bulunan Microsoft Edge adlı bir klasörde bulunur:
3. Adım: Yeni bir grup ilkesi nesnesi oluşturma
Active Directory grup ilkesi Manager MMC ek bileşenini kullanarak yeni bir grup ilkesi nesnesi şu şekilde oluşturulur:
- Etki alanı denetleyicinizde Çalıştır menüsünü açmak için Windows+R tuşlarına basın.
- Microsoft Yönetim Konsolu'nu açmak ve Active Directory grup ilkesi Yöneticisi ek bileşenini yüklemek için Gpmc.msc yazın.
- konsolunun ağaç görünümünde grup ilkesi Nesneleri düğümünü bulun ve bağlam menüsünü açmak için düğüme sağ tıklayın.
- Yeni menü öğesini seçin, oluşturmak istediğiniz grup ilkesinin adını doldurun ve tamam'a tıklayın.
4. Adım: Sunucularda kimlik doğrulaması yaparken kısıtlanmamış temsile izin vermek için grup ilkesi yapılandırmasını düzenleyin
Son adım, Windows Tümleşik bir web sitesine Kerberos kullanarak kimlik doğrulaması gerçekleştirirken Microsoft Edge tarayıcısının ok_as_delegate
InitializeSecurityContext
bayrağı api çağrısına geçirmesine izin veren ilkeyi etkinleştirmektir. Microsoft Edge tarayıcınızın NTLM'de değil kimlik doğrulaması için Kerberos kullanıp kullanmadığını bilmiyorsanız , Internet Explorer'da Kerberos hatalarını giderme konusuna bakın.
Active Directory grup ilkesi Düzenleyici, son kullanıcıların Kerberos kimlik doğrulaması aracılığıyla kimlik doğrulaması gerçekleştirmesine ve kimlik bilgilerinin kısıtlanmamış temsil yoluyla arka uç hizmetlerine temsilci olarak atanmasına izin vermek istediğiniz Active Directory'nizin içindeki bilgisayarlara uygulanacak grup ilkesi nesnesini seçin. Microsoft Edge'den kısıtlanmamış temsili etkinleştirecek ilke, aşağıda gösterildiği gibi Microsoft Edge şablonlarının Http kimlik doğrulama klasörünün altında bulunur:
Kerberos biletlerinin temsiline izin verilen sunucuların listesini yapılandırmak için bu ayarı kullanın.
Not
Sunucuların listesi sağlanmalıdır. Bu makalenin başında kullanılan örnekte, ön uç Web-Server web uygulamasının kimlik bilgilerini arka uç API-Server'a devretmesine izin vermek için Web-Server sunucu adını listeye eklemeniz gerekir.
Yeni düzenleme grup ilkesi nesnesi etki alanı içindeki istemci bilgisayarlara uygulandıktan sonra , Windows Tümleşik Kimlik Doğrulaması Sorunlarını Giderme için Tanılama sayfalarında test kimlik doğrulaması sayfasına gidin ve GitHub'daki ASP.net Örnek Deposu'ndan whoami.aspx sayfasını indirin. Kimlik bilgilerinin temsilci seçmesine izin verileceğini belirten Kimliğe Bürün yerine Temsilcinin ImpersonationLevel ayarını verir.
İlkenin istemci iş istasyonunda doğru uygulanıp uygulanmadığını test etmek için yeni bir Microsoft Edge sekmesi açın ve edge://policy yazın.
İlke, Microsoft Edge'in AuthNegotiateDelegateAllowlist
Kerberos biletlerinin temsilini gerçekleştirmesine izin verilen sunucu adlarının değerlerini gösterecek şekilde ayarlanmalıdır. İlke listede görünmüyorsa, dağıtılmamıştır veya yanlış bilgisayarlara dağıtılmamıştır.
5. Adım (İsteğe bağlı): Microsoft Edge'in doğru temsilci bayraklarını kullanıp kullanmadiğini denetleyin
Sorun giderme/isteğe bağlı denetim adımı aşağıdadır.
İlke yapılandırılıp dağıtıldıktan sonra, Microsoft Edge'in doğru temsilci bayraklarını IntializeSecurityContext
'a geçirip geçirmediğini doğrulamak için aşağıdaki adımların izlenmesi gerekir. Bu adımlarda, Microsoft Edge'de yerleşik olarak bulunan veya çevrimiçi hizmetler olarak kullanılabilen araçlar kullanılır.
Web sitesi isteğinde bulunurken tarayıcının ne yaptığını günlüğe kaydetmek için Microsoft Edge'de bulunan günlük özelliğini kullanın. Günlüğü etkinleştirmek için:
Yeni bir Microsoft Edge penceresi açın ve edge://net-export/ yazın.
İzleme sırasında Tanımlama bilgilerini ve kimlik bilgilerini dahil et seçeneğini kullanın. Bu seçenek olmadan kimlik doğrulaması izleme düzeyi verileri atlanır.
Diskte Günlüğe Kaydetmeyi Başlat düğmesine tıklayın ve izlemeyi kaydetmek istediğiniz dosya adını belirtin.
Başka bir Microsoft Edge sekmesi açın, Microsoft Edge kullanarak tümleşik Windows kimlik doğrulaması gerçekleştirmek istediğiniz web sitesine gidin.
Kimlik doğrulamayı denedikten sonra, izlemenin etkinleştirildiği önceki sekmeye dönün ve Günlüğü Durdur düğmesine tıklayın. İzleme arabirimi, izlemeyi içeren dosyanın nereye yazıldığını gösterir.
Tarayıcının kimlik doğrulamayı denerken işleve hangi parametreleri geçtiğini görmek için
InitializeSecurityContext
izlemeyi içeren JSON dosyasını kullanın. İzlemeyi analiz etmek için netlog_viewer kullanın.Ayrıştırılmış izlemenin içinde aşağıdakine benzer bir olay günlüğü vardır:
t=3076 [st=12] +AUTH_LIBRARY_INIT_SEC_CTX [dt=3] --> flags = {"delegated":false,"mutual":false,"value":"0x00000000"} --> spn = "HTTP/web-server.odessy.local"
Bu günlük şunları gösterir:
AUTH_LIBRARY_INIT_SEC_CTX
tarayıcının işlevi çağıranInitializeSecurityContext
olduğu anlamına gelir."delegated":false
, bilet olarak işaretlenmiş olsa bile biletin temsilci olarakdelegatable
atanmaması gerektiği anlamına gelir."mutual":false
, istemcinin (tarayıcı) sunucunun istemcide kimlik doğrulaması ve kimliğini kanıtlamasını gerektirmediği anlamına gelir. Kimliğini kanıtlamak için yalnızca istemcinin sunucuda kimlik doğrulaması yapması gerekir.HTTP/web-server.odessy.local
, kimlik doğrulama çağrısı yaparken tarayıcı tarafından kullanılan SPN'dir.
Daha fazla bilgi
Windows Tümleşik Kimlik Doğrulaması için tanılama sayfaları sorunlarını giderme
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin