2

sabitlemek için, ben Owin kullanarak çalışan bir ASP.NET 4 Web App (ve Modern Authentication with Azure Active Directory for Web Applications yardım bir sürü OpenIdConnect var.HTTP 500 ASP.NET 5 Web API içerik için

I şimdi ayrı bir ASP.NET 5 Web API projesini güvence altına almak (Azure'da aynı AD kiracısında bir microservice olarak barındırılmak üzere) Visual Studio'da oluşturulan basit ASP.NET 5 WebApi ile başladım ve Configure'a aşağıdakileri ekledim:

app.UseOAuthAuthentication(new OAuthOptions() 
{ 
    ClientId = "71d33a1c-505c-4815-a790-8494dd2bb430", 
    ClientSecret = "LajQFbf1/Nyt/6zCP5vE5YWj5VC4aNaC3i/SRtEj2sI=", 
    TokenEndpoint = "https://login.microsoftonline.com/7058f4f0-619f-4c16-ac31-9e209d70ff23/oauth2/token", 
    AuthorizationEndpoint = "https://login.microsoftonline.com/7058f4f0-619f-4c16-ac31-9e209d70ff23/oauth2/authorize", 
    AuthenticationScheme = "OAuth2Bearer", 
    CallbackPath = "/api/values" 
}); 

Bu bana SignInScheme p olmalıdır belirten bir hata veriyor: Startup.cs içinde (boru hattının başında) rovided, ama bu değerin ne olması gerektiği konusunda net değilim. Bir dize eklediğimde, "OAuth2Bearer" diyelim, daha da fazlasını alıyorum, ancak yine de istekte 500 hata olsun, ancak API uygulamasında hiçbir istisna söz konusu değil veya API denetleyicinin ilk satırındaki kesme noktası da yok. vurul.

Neyi eksik? İdeal olarak, OpenIdConnect ve SecurityTokenValidated bildirimi ile yaptığım şeye benzer bir özel talep eklemek için OAuthOptions Olaylarını genişletmek istiyorum.

+0

Elbette, ya sahte bir müşteri sırrı kullandınız ya da şimdi döndürdünüz, değil mi? – blowdart

+0

Evet, tost ... Sorunumu çözmek için insanları ikna etmeye açık olmasına rağmen –

cevap

2

OAuth2 taban ara katman yazılımı, yetkilendirme kodu akışı gibi etkileşimli akışları işlemek için tasarlanmış bir OAuth2 istemci ara katman yazılımı olduğu için jeton doğrulaması için kullanılamaz. Mevcut tüm OAuth2 sosyal sağlayıcıları (ör. Facebook veya Google) bu ara yazılımdan devralır.

Aslında JWT hamiline katman aradığınız:

app.UseJwtBearerAuthentication(options => { 
    options.AutomaticAuthenticate = true; 
    options.AutomaticChallenge = true; 

    options.Authority = "[address of your OIDC server]"; 
    options.Audience = "[audience of the access tokens issued by the OIDC server]"; 
}); 

, ASP.NET Çekirdek farklı OAuth2/OIDC katman hakkında daha fazla bilgi edinmek için bu diğer SO sonrası kaçırmayın: Configure the authorization server endpoint.