Пользовательский «OAuth2» в .NETC#

Место общения программистов C#
Ответить
Anonymous
 Пользовательский «OAuth2» в .NET

Сообщение Anonymous »

OAuth2 — это общий стандарт авторизации. Однако я вижу несколько простых реализаций (для меня они не имеют ничего общего с OAuth2), где они просто предоставляют конечную точку и ожидают client_id и client_secret и используют JWT позади.
например,

Код: Выделить всё

var app = builder.Build();

app.MapPost("/oauth2/token", ([FromForm] string? client_id,
[FromForm] string? client_secret) =>
{
// Your credential validation logic here
if (client_id != "my-api-client" || client_secret != "top-secret")
{
return Results.BadRequest(new { error = "invalid_client" });
}

var tokenHandler = new JwtSecurityTokenHandler();
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new[]
{
new Claim("client_id", client_id),
new Claim(ClaimTypes.Role, "api_client")
}),
Expires = DateTime.UtcNow.AddMinutes(30),
SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256Signature),
Audience = "resource-api",
Issuer = "custom-auth-server"
};

var token = tokenHandler.CreateToken(tokenDescriptor);

return Results.Ok(new
{
access_token = tokenHandler.WriteToken(token),
token_type = "Bearer",
expires_in = 1800
});
});

app.Run();
У меня вопрос. Для очень простых случаев/нужд. Можно ли так поступать?

Подробнее здесь: https://stackoverflow.com/questions/798 ... th2-in-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»