Amacım, Windows auth kullanılarak kimliği doğrulanmış uygulama/web hizmeti kullanıcıları ile bir web servisi tüketen bir Açısal uygulama. Kullanıcılar, Windows etki alanımızdaki bir makineye giriş yapabilmeli, bir tarayıcı açmalı ve tekrar oturum açmadan Angular uygulamasını kullanabilmelidir.Windows auth'ı Identity Server 3 ile nasıl kullanırım?
Araştırma
ben En basit OAuth2 Walkthrough numune içinden çalıştı https://github.com/IdentityServer/IdentityServer3.Samples/
gelen tüm kaynak kod örnekleri indirildi. Sorun yok.
Web Ana Bilgisayarı (Windows Auth All-In-One) örneğini açtım. Ben (ilgili olmayan Muhtemelen. 'AllowAccessTokensViaBrowser = false' ayarı Clients.cs hatları 313.359.) geri ve sorunlar neden olduğunu iki kod satırları yorum sonra, projeyi inşa edebileceğini
uygulama çalıştırıldı, 44333 localhost'ta IdentityServer3 açılış sayfası'u görebiliyordum. Harika.
Yerel ana bilgisayarda Windows kimlik doğrulama hizmeti meta verileri (A SAML belgesi) 44333/windows'u da görebiliyordum. Ayrıca, harika.Sorun şu ki, sonra ne yapacağımı bilmiyorum.
http://github.com/IdentityServer/IdentityServer3/issues/1463
bu doğru yaklaşım mı: Bu belge bir sonraki adım, bir jetonu almak üzere Windows kimlik doğrulaması hizmetine bir çağrı yapan bir müşteri yazma ilgili olduğunu açıkça göstermektedir görünüyor? Kod örneğini çalışamıyorum. OAuth2Client
'u doğru yere işaret ettiğimden bile emin değilim. Birisi bu süreci açıklayabilir mi, yoksa çalışan bir müşteriyle bana bir örnek gösterebilir mi? yardım :) Biraz daha fazla araştırma yapıyor
DÜZENLEME için şimdiden teşekkür ederiz. Kimlik doğrulama sunucusunun günlüklerini denetledikten sonra WS-Federation bitiş noktası ekleme işleminin yapılandırma sırasında tamamlandığından emin olmak için. Öyle. github.com/IdentityServer/IdentityServer3/issues/2318
Thinktecture.IdentityModel.Client, ben değiştirerek ithal olması: Burada önerildiği gibi
Sonra, Windows kimlik doğrulaması hizmetini çağırmak için basit konsol uygulaması oluşturulur o sayfadaki kod ben bu ile sona erdi vb benim noktası numaralarını sığdırmak için:var handler = new HttpClientHandler
{
UseDefaultCredentials = true
};
var oauthClient = new OAuth2Client(
new Uri("https://localhost:44333/windows/token"),
handler);
var result = oauthClient.RequestCustomGrantAsync("windows").Result;
benim sonuç nesne hala beni üzüyor NotFound bir HttpErrorStatusCode vardır.
Branimir tarafından aşağıda önerilen gibi ben Kimlik sunucu uç noktada müşteri işaret çalıştı
BAŞKA DÜZENLEME.Bu yüzden kodum şu an okur:
var oauthClient = new OAuth2Client(
new Uri("https://localhost:44333/connect/token"),
handler);
Bu, ya da çalışmıyor. Bu Kimlik sunucusu günlükleri demek budur:
Start token request
iisexpress.exe Information: 0 : 04/27/2016 20:35:23 +01:00 [Information] (IdentityServer3.Core.Validation.SecretParser)
Parser found no secret
iisexpress.exe Information: 0 : 04/27/2016 20:35:23 +01:00 [Information] (IdentityServer3.Core.Validation.ClientSecretValidator)
No client secret found
iisexpress.exe Information: 0 : 04/27/2016 20:35:23 +01:00 [Information] (IdentityServer3.Core.Endpoints.TokenEndpointController)
End token request
iisexpress.exe Information: 0 : 04/27/2016 20:35:23 +01:00 [Information] (IdentityServer3.Core.Results.TokenErrorResult)
Returning error: invalid_client
yüzden başka ileriye değilim.
URL'yi kontrol ettiniz mi? Aynı kodu indirdim ve son nokta https: // localhost: 44333/connect/token gibi görünüyor, ama yine de nasıl kullanacağımı bilmiyorum. – Branimir
Teşekkürler Branimir, Ben sadece bu URL'yi kullanmayı denedim ve benim için işe yaramadı, bu soruya değinmek için sorumu düzenledim. Herhangi bir ilerleme kaydederseniz, lütfen bana bildirin. –