Как настроить конечные точки веб-API для использования различных типов грантов, поступающих от IdentityServer?
Прямо сейчас у меня для запуска есть:
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions()
{
Authority = "http://localhost:5000",
RequiredScopes = new[] { "public", "read", "write" }
});
Контроллер:
// Assuming to access this endpoint you need to have client id/secret (client credential flow)
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// Assuming to access this endpoint you need to have username/password (password flow)
[ResourceAuthorization("read")]
public string Get(int id)
{
return "value";
}
Конечно, одна конечная точка может иметь только один тип предоставления, поскольку не имеет смысла, если конечная точка клиентского потока также разрешает поток паролей.
Это плохая структура?
Должен ли я просто отделить публичный API (поток учетных данных), конечные точки потока паролей и внутренние конечные точки (не подвергать внешней инфраструктуре компании) различным проектам?
Как указать область действия для разных конечных точек? (например, одна конечная точка должна быть общедоступной, а другая — прочитанной)