2015-03-14 22 views
44

, aşağıdaki gibi katman aracılığıyla OAth Yetkilendirme Sunucusu kurarak bir belirteç vermek için bir bitiş noktası oluşturmak edebilmek için kullanılan: BelkiOAuth Yetkilendirme Servisi Web API 2'de

//Set up our auth server options. 
var OAuthServerOptions = new OAuthAuthorizationServerOptions() 
      { 
       AllowInsecureHttp = true, 
       TokenEndpointPath = new PathString("/token"), 
       AccessTokenExpireTimeSpan = TimeSpan.FromDays(1), 
       Provider = new SimpleAuthorizationServerProvider() 
      }; 

// Sets up the token issue endpoint using the options above 
app.UseOAuthAuthorizationServer(OAuthServerOptions); 

Ben Onu özlüyorum, ancak ASP.NET Core'da bunu nasıl yapacağımı anlamaya çalışıyorum. Kaynağa baktım (https://github.com/aspnet/Security) ama gerçekten benzer bir şey görmüyorum. Bunu başarmanın yeni bir yolu var mı? Bir denetleyici oluşturup kendim mi yapmam gerekiyor?

OAuth Kimlik Doğrulama Middleware yoluyla kurulabilir nasıl görüyorum, ama bu benim API gelen iddialar sorunu yetkilendirme kısmını görüyor.

+0

belki bu yardımcı olabilir. o thinktecture kimlik sunucusuyla bir cevap var:, http://stackoverflow.com/questions/29360563/asp-net-5-oauth-bearer-token-authentication/29487480#29487480 –

+0

Teşekkür @CedricDumont, ben entegre bir şey arıyordu ama Thinktecture'u düşündüm. Günün sonu benimle birlikte olabilir. Çok sağlam. – swannee

cevap

56

ASP.NET Çekirdek bir OAuthAuthorizationServerMiddleware alternatif arayan zamanınızı boşa harcamayın, ASP.NET timi limana karar o: Ben AspNet.Security.OpenIdConnect için bir göz sahip öneririz https://github.com/aspnet/Security/issues/83

.Server, Katana 3 ile gelir OAuth2 yetkilendirme sunucusu katman gelişmiş bir çatal: bir Owin/Katana 3 versiyonu var ve tam NET framework ve .NET Çekirdek hem destekleyen bir ASP.NET Çekirdek sürümü.

https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server

ASP.NET Çekirdek 1.x:

app.UseOpenIdConnectServer(options => 
{ 
    options.AllowInsecureHttp = true; 
    options.TokenEndpointPath = new PathString("/token"); 
    options.AccessTokenLifetime = TimeSpan.FromDays(1); 
    options.TokenEndpointPath = "/token"; 
    options.Provider = new SimpleAuthorizationServerProvider(); 
}); 

ASP.NET Çekirdek 2.x:

services.AddAuthentication().AddOpenIdConnectServer(options => 
{ 
    options.AllowInsecureHttp = true; 
    options.TokenEndpointPath = new PathString("/token"); 
    options.AccessTokenLifetime = TimeSpan.FromDays(1); 
    options.TokenEndpointPath = "/token"; 
    options.Provider = new SimpleAuthorizationServerProvider(); 
}); 

Bu proje hakkında daha fazla bilgi edinmek için http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/'u okumanızı tavsiye ederim.

İyi şanslar! https://github.com/XacronDevelopment/oauth-aspnet

liman ASP.NET 4.x izin geriye dönük uyumluluk içerir: hala ASP.NET 5 orijinal OAuth Yetkilendirme Sunucusu arayan herkes için

+0

Bu diğer insanların bu projeyi bulmanıza yardımcı olacaktır için ... belki de bu soruya aradığı şeyi gerçekten. Bunun üzerinde çalışanlara teşekkürler! – swannee

+0

Rica ederim! Hala genç bir proje, ama yakında NuGet.org bir RC sürüm için umut (Ben de Owin/Katana 3 backport istiyorum o gerekebilir yüzden hala, vNext sürümünde birkaç kırılma dalları tanıtmak gerekiyor birkaç hafta daha fazla). – Pinpoint

+0

@Pinpoint, orada bazı etkileyici çalışmalar yaptık); GitHub'dan veya JabbR üzerinde Herhangi bir sorunuz varsa veya görüşlerinizi paylaşmak istiyorsanız, beni buraya ping tereddüt etmeyin!Ben varsayılan paketleri kullanarak bir belirteç sağlayıcı inşa başardı ve burada ayrıntılı: http://stackoverflow.com/a/29698502/195653, ama OpenIdConnect sunucu muhtemelen gitmek için daha iyi bir yol olduğunu hissediyorum! –

2

, kodu ve burada orijinal numune taşıdık Yetkilendirme sunucusu tarafından oluşturulan erişim belirteçlerini okumak için kaynak sunucuları.

Nuget paketleri

Buradasınız: https://www.nuget.org/packages/OAuth.AspNet.AuthServer https://www.nuget.org/packages/OAuth.AspNet.Tokens https://www.nuget.org/packages/OAuth.Owin.Tokens

+5

Katana'nın yetkilendirme sunucusunda hala Codeplex izleyicisinde listelenen çözülmemiş birçok hata vardı. Çatalına kısa bir bakış attım ve hiçbirini düzeltmedin. Hala "orijinal yetkilendirme sunucusu" arıyorsanız, 'AspNet.Security.OpenIdConnect.Server' bir göz atın, aynı deneyimi sunuyor ama Katana'nın sunucu vardı bilinen tüm hataları giderir. – Pinpoint

+0

Bir ASPNetCore OpenId Server sürümü var mı? –

İlgili konular