Próba użycia uwierzytelniania opartego na torze na okaziciela w prostym projekcie .NET Core Web API. Oto moja Startup.cs
Uwierzytelnianie tokenów na okaziciela w środowisku ASP.NET Core
app.UseMvc();
//---
const string secretKey = "mysupersecret_secretkey!123";
SymmetricSecurityKey signingKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey));
SigningCredentials signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
//---
const string audience = "Audience";
const string issuer = "Issuer";
//---
TokenValidationParameters tokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = signingKey,
ValidateIssuer = false,
ValidIssuer = issuer,
ValidateAudience = true,
ValidAudience = audience,
ValidateLifetime = true,
ClockSkew = TimeSpan.Zero,
AuthenticationType = JwtBearerDefaults.AuthenticationScheme
};
//---
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = tokenValidationParameters,
AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme,
});
Również dodać AuthorizeAttribute
do działania kontrolerów
[HttpGet]
[Authorize(ActiveAuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public IEnumerable<string> Get()
{
return new[] { "value1", "value2" };
}
Ale gdy próbuję wysłać żądanie GET z nagłówka Authorization: Bearer [TOKEN]
otrzymuję wyjątek
System.InvalidOperationException: No authentication handler is configured to authenticate for the scheme: Bearer
at Microsoft.AspNetCore.Http.Authentication.Internal.DefaultAuthenticationManager.
Więc co jest ta "obsługa uwierzytelniania"? Gdzie muszę ustawić ten moduł obsługi?
Czy możesz podzielić się swoją całą 'metody configure'? – Pinpoint
Shure, http://pastebin.com/TgRkHNZk app.UseSimpleTokenProvider - to prosta rejestracja Reklamowe Endpoint, znalazłem go tutaj: https://github.com/nbarbettini/SimpleTokenProvider – Maxim