Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft Windows HTTP Hizmetleri (WinHTTP), Microsoft Passport kimlik doğrulama protokolünün istemci tarafı kullanımını tam olarak destekler. Bu konu başlığında Passport kimlik doğrulamasında yer alan işlemlere ve bunların nasıl işleneceğini gösteren bir genel bakış sağlanır.
Not
WinHTTP 5.1'de Passport kimlik doğrulaması varsayılan olarak devre dışıdır.
Pasaport 1.4
Passport, Microsoft .NET yapı taşı hizmetlerinin temel bileşenlerindendir. İşletmelerin çok çeşitli uygulamalar genelinde dağıtılmış Web hizmetleri geliştirmesine ve sunmasına olanak tanır ve üyelerinin tüm katılan Web sitelerinde bir oturum açma adı ve parolası kullanmasına olanak tanır.
WinHTTP, Passport 1.4 kimlik doğrulaması için istemci tarafı protokolü uygulayarak Microsoft Passport 1.4 için platform desteği sağlar. Uygulamaları Passport altyapısı ve Windows XP'de Depolanan Kullanıcı Adları ve Parolaları ile etkileşime ilişkin ayrıntılardan kurtarır. Bu soyutlama, Passport'un kullanılmasını geliştirici açısından Temel veya Özet gibi geleneksel kimlik doğrulama düzenlerini kullanmaktan farklı yapmaz.
Windows XP:HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Passport\NumRegistrationRuns kayıt defteri anahtarı, PassPort kimlik doğrulaması gerektiğinde Passport Kimlik Doğrulama Sihirbazı'nın görüntülenme sayısını tanımlar. Bu anahtarın değeri 5'ten büyük bir sayıya ayarlanırsa sihirbaz görüntülenmez.
Aşağıdaki bölümlerde, bir istemci uygulaması açısından Passport kimlik doğrulamasında yer alan işlemler açıklanmaktadır. Sunucu tarafı Passport geliştirmesi için bkz. Passport SDK Belgelerine Genel Bakış.
İlk İstek
İstemci Passport kimlik doğrulaması gerektiren bir sunucuda kaynak istediğinde, sunucubiletleri olup olmadığını denetler. İstekle birlikte geçerli bir bileti gönderilirse, sunucu istenen kaynakla yanıt verir. bileti istemcide yoksa, sunucu 302 durum koduyla yanıt verir. Yanıt, "WWW-Authenticate: Passport1.4" sınama üst bilgisini içerir. Passport kullanmayan istemciler Passport oturum açma sunucusuna yeniden yönlendirmeyi izleyebilir. Daha gelişmiş istemciler genellikle Passport oturum açma sunucusunun konumunu belirlemek için Passport nexus ile iletişim kurar.
Not
Microsoft Passport ağının merkezinde Passport Nexusbulunur. Bu, her sitenin ağ yapılandırması ve diğer sorunlarla ilgili en son ayrıntılara sahip olduğundan emin olmak için Passport katılımcı sitelerinin eşitlenmesini kolaylaştırır. Her Passport bileşeni (Passport Manager, Oturum açma sunucuları, Güncelleştirme sunucuları vb.), Passport ağındaki diğer bileşenleri bulmak ve düzgün bir şekilde iletişim kurmak için ihtiyaç duyduğu bilgileri almak için Nexus ile düzenli aralıklarla iletişim kurar. Bu bilgiler, Bileşen Yapılandırma Belgesi veya CCD adlı bir XML belgesi olarak alınır.
Aşağıdaki görüntüde passport bağlı kuruluşunun ilk isteği gösterilmektedir.
Passport Oturum Açma Sunucusu
Passport oturum açma sunucusu, passportetki alanı yetkilisindeki herhangi bir kaynak içintümbilet isteklerini işler. Bir isteğin kimlik doğrulamasının Passport kullanılarak yapılabilmesi için istemci uygulamasının uygunbiletlerini almak için oturum açma sunucusuna başvurması gerekir.
İstemci passport oturum açma sunucusundanbilet istediğinde, kullanıcı kimlik bilgilerinin sağlanması gerektiğini belirtmek için oturum açma sunucusu genellikle 401 durum koduyla yanıt verir. Bu kimlik bilgileri sağlandığında, oturum açma sunucusu başlangıçta istenen kaynağı içeren sunucuda belirtilen kaynağa erişmek için gereken biletleriyle yanıt verir. Oturum açma sunucusu, istemciyi istenen kaynağı sağlayabilecek başka bir sunucuya da yönlendirebilir.
Kimliği Doğrulanmış İstek
İstemci belirli bir sunucuya karşılık gelen bilet sahip olduğunda, bu biletler bu sunucuya yönelik tüm isteklere eklenir. biletler Passport oturum açma sunucusundan alındıktan sonra değiştirilmediyse ve biletler kaynak sunucusu için geçerliyse, kaynak sunucusu hem istenen kaynağı hem de kullanıcının gelecekteki istekler için kimliğinin doğrulandığını belirten tanımlama bilgilerini içeren bir yanıt gönderir.
Yanıttaki ek tanımlama bilgileri, kimlik doğrulama işlemini hızlandırmaya yöneliktir. Aynı Passport Etki Alanı Yetkilisi'ndeki sunuculardaki kaynaklar için aynı oturumdaki ek isteklerin tümü bu ek tanımlama bilgilerini içerir. Tanımlama bilgilerinin süresi dolana kadar kimlik bilgilerinin yeniden oturum açma sunucusuna gönderilmesi gerekmez.
Winhttp'da Passport kullanma
WinHTTP'da Passport kimlik doğrulaması, diğer kimlik doğrulama düzenlerine çok benzer. WinHTTP'de kimlik doğrulamasına genel bakış için bkz. Winhttp Kimlik DoğrulamasıHTTP.
WinHTTP 5.1'de Passport kimlik doğrulaması varsayılan olarak devre dışıdır ve kullanılmadan önce WinHttpSetOption açıkça etkinleştirilmelidir.
WinHTTP, Passport kimlik doğrulaması için işlem ayrıntılarının çoğunu dahili olarak işler. İlk istek sırasında, kimlik doğrulaması gerektiğinde sunucu 302 durum koduyla yanıt verir. 302 durum kodu aslında bir yeniden yönlendirmeyi gösterir ve geriye dönük uyumluluk için Passport protokolünün bir parçasıdır. WinHTTP, 302 durum kodunu gizler ve Passport nexus ile ve ardından oturum açma sunucusuyla iletişim kurar. WinHTTP uygulamasına, kullanıcı kimlik bilgilerini istemek için oturum açma sunucusu tarafından gönderilen 401 durum kodu bildirilir. Ancak uygulamada, 401 durumu kaynağın istendiği sunucudan geliyormuş gibi görünür. Bu şekilde, WinHTTP uygulaması diğer sunucularla etkileşimlerin farkında değildir ve Passport kimlik doğrulamasını diğer kimlik doğrulama düzenlerini işleyen aynı kodla işleyebilir.
WinHTTP uygulaması genellikle kimlik doğrulaması kimlik bilgilerini sağlayarak 401 durum koduna yanıt verir. Kimlik bilgileri, passport kimlik doğrulaması için WinHttpSetCredentials veya SetCredentials sağlandığında, kimlik bilgileri istekte belirtilen sunucuya değil oturum açma sunucusuna gönderilir.
Ancak, 407 durum koduna yanıt verirken, WinHTTP uygulamasınınWinHttpSetCredentialsyerine ara sunucu kimlik bilgilerini sağlamak için WinHttpSetOptionkullanması gerekir. WinHttpSetOption kimlik bilgilerini sağlamanın daha az güvenli bir yolu olduğundan, normalde bundan kaçınılmalıdır.
biletler alındıktan sonra dahili olarak yönetilir ve gelecekteki isteklerde geçerli sunuculara otomatik olarak gönderilir.
Not
WinHTTP, WINHTTP_OPTION_DISABLE_FEATURE bayrağı için WinHttpSetOption işlevini çağırarak ve WINHTTP_DISABLE_REDIRECTSdeğerini belirterek otomatik yeniden yönlendirmeyi devre dışı bırakmanızı sağlar. Yeniden yönlendirmenin devre dışı bırakılması, WinHTTP'nin Passport işlemleri için dahili olarak işlediği yeniden yönlendirmeyi engellemez.
Uygulama otomatik yeniden yönlendirmeyi devre dışı bıraksa bile WinHTTP Passport kimlik doğrulamasını başarıyla tamamlayabilir. Ancak, Passport kimlik doğrulaması tamamlandıktan sonra Passport oturum açma sunucusu URL'sinden özgün URL'ye örtük bir yeniden yönlendirme yapılmalıdır. Bu yeniden yönlendirme 302 HTTP yanıtı tarafından tetiklenmez, ancak Passport protokolünde örtük olarak kullanılır.
WinHTTP bu örtük yeniden yönlendirmeyi özel olarak işler. Bir uygulama otomatik yeniden yönlendirmeyi devre dışı bırakmışsa WinHTTP, uygulamanın bu özel durumda otomatik olarak yeniden yönlendirmek için WinHTTP "izni" vermesini gerektirir.
Kimlik doğrulamasından sonra WinHTTP'nin özgün URL'ye yeniden yönlendirilebilmesi için, uygulamanın WinHttpSetStatusCallbackkullanarak bir geri çağırma işlevi kaydetmesi gerekir. WinHTTP daha sonra uygulamanın yeniden yönlendirmeyi iptal etmesini sağlayan bir WINHTTP_CALLBACK_STATUS_REDIRECT geri çağırma ile uygulamayı bilgilendirebilir. Bir uygulamanın geri çağırma işlevinde herhangi bir işlev sağlaması gerekmez; geri arama kaydı, WinHTTP'nin bu özel durum yeniden yönlendirmesini izlemesini sağlamak için yeterlidir.
Uygulama tarafından bir geri çağırma işlevi ayarlanmadıysa ERROR_WINHTTP_LOGIN_FAILURE iletisi oluşturulur.
Passport Cobranding
WinHTTP tarafından desteklenen geleneksel kimlik doğrulama düzenlerinden farklı olarak Passport,kapsamlı bir şekilde birlikte değiştirilebilir. Bir sınamayı gösteren bir 401 durum kodu aldıktan sonra, uygulama grafiğini ve metnini alabilir. WINHTTP_OPTION_PASSPORT_COBRANDING_URL bayrağıyla WinHttpQueryOption çağırarak cobranding grafiğinin URL'sini alın. WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT bayrağıyla WinHttpQueryOption çağırarak cobranding metnini alın. Bu öğeler, kimlik bilgisi toplama iletişim kutusunu özelleştirmek için kullanılabilir.
Depolanan Kullanıcı Adları ve Parolalar
Windows XP, Depolanan Kullanıcı Adları ve Parolalar kavramını kullanıma sunulmuştur. Kullanıcının Passport kimlik bilgileri Passport Kayıt Sihirbazı veya standart Kimlik Bilgisi İletişim Kutusuaracılığıyla kaydedilirse, bu kimlik bilgileri Depolanan Kullanıcı Adları ve Parolalar bölümüne kaydedilir. Windows XP veya sonraki sürümlerde WinHTTP kullanırken, kimlik bilgileri açıkça ayarlanmadıysa WinHTTP, Depolanan Kullanıcı Adları ve Parolalar'daki kimlik bilgilerini otomatik olarak kullanır. Bu, NTLM/Kerberos için varsayılan oturum açma kimlik bilgilerinin desteğine benzer. Ancak, varsayılan Passport kimlik bilgilerinin kullanımı otomatik oturum açma ilkesi ayarlarına tabi değildir.
Passport Kimlik Doğrulamasını Devre Dışı Bırakma
Bazı uygulamalar Passport kimlik doğrulamasını devre dışı bırakma özelliğini gerektirebilir. Örneğin, bir Passport bağlı kuruluşu ilk 302 durum koduyla yanıtladığında, WinHTTP'nin kimlik doğrulamasını dahili olarak işlemesine izin vermek yerine belirtilen yeniden yönlendirmeyi izlemeniz ve HTML Passport kimlik doğrulama sayfasını işlemeniz tercih edilebilir. Passport kimlik doğrulaması WinHTTP'da WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH seçeneğiyle WinHttpSetOption işlevi çağrılarak ve WINHTTP_DISABLE_PASSPORT_AUTH değeri geçirilerek devre dışı bırakılır. Daha sonra WINHTTP_ENABLE_PASSPORT_AUTH ile yeniden etkinleştirilebilir.
WinHttpRequest nesnesi kullanılırken Passport kimlik doğrulaması devre dışı bırakılamaz.
Bu bölümde daha önce belirtildiği gibi, Passport kimlik doğrulaması WinHTTP 5.1'de varsayılan olarak devre dışıdır ve kullanımdan önce WinHttpSetOption açıkça etkinleştirilmelidir.
Test için Kullanılan Passport Yapılandırması Geçersiz Kılmaları
WinHTTP, Passport 1.4 kimlik doğrulamasını desteklemek için passport nexus sunucusundan indirmiş olduğu yapılandırma bilgilerine dayanır. Varsayılan olarak bu güvenli (SSL) sunucu nexus.passport.com ve yapılandırma kaynağı rdr/pprdr.asp'dir ve bu da "canlı" passport yapılandırması olarak bilinir. Bilgilerin biçimi özel bir HTTP üst bilgisi "PassportURLs" ve ardından virgülle ayrılmış öznitelik-değer çiftleridir.
Örneğin, "https://nexus.passport.com/rdr/pprdr.asp" aşağıdaki yapılandırma bilgilerini döndürür:
PassportURLs: DARealm=Passport.net,
DALogin=login.passport.com/login2.asp,
DAReg=https://register.passport.com/defaultwiz.asp,
Properties=https://memberservices.passport.com/ppsecure/MSRV_EditProfile.asp,
Privacy=https://www.passport.com/consumer/privacypolicy.asp,
GeneralRedir=https://nexusrdr.passport.com/redir.asp,
Help=https://memberservices.passport.com/UI/MSRV_UI_Help.asp,
ConfigVersion=2
\r\n
WinHTTP ile ilgili bölümler DARealm, DALogin ve ConfigVersion'dır. Performans nedenleriyle, bir WinHTTP oturumunun ömrü boyunca önbelleğe alınırlar. Bu üç değer, altında uygun kayıt defteri ayarları değiştirilerek "canlı" üretim kurulumu dışında başka bir passport altyapısıyla çalışması gereken uygulamalar tarafından geçersiz kılınabilir
HKEY_LOCAL_MACHINE
SOFTWARE
Microsoft
Windows
CurrentVersion
Internet Settings
WinHttp
Passport Test
LoginServerRealm (REG_SZ) For example: abc.net
LoginServerUrl (REG_SZ) For example: https://private-login.passport.com/login2.asp
ConfigVersion (REG_DWORD) For example: 10
Kayıt defterinde LoginServerUrl varsa, WinHTTP diğer yapılandırma değerleri için nexus sunucusuna başvurmaz. Bu durumda, LoginServerRealm ve ConfigVersion değerleri düzeltmek için kayıt defteri aracılığıyla da ayarlanmalıdır.
Bir uygulama, test amacıyla özel bir nexus sunucusundan passport yapılandırmasını indirmek için gerekli olabilir. Bu işlem aşağıdaki iki kayıt defteri değerini geçersiz kılarak yapılabilir:
HKEY_LOCAL_MACHINE
SOFTWARE
Microsoft
Windows
CurrentVersion
Internet Settings
WinHttp
Passport Test
NexusHost (REG_SZ) e.g. private-nexus.passport.com
NexusObj(REG_SZ) e.g. config/passport.asp
İlgili konular