Я защищаю. NET Core Web API с токеном доступа, выданным IDS4.
Это работает, и я добавил некоторые претензии в конфигурацию клиента следующим образом:
// ... other code
new Client
{
ClientId = "apiclient",
AllowedGrantTypes = GrantTypes.ClientCredentials,
ClientSecrets = {
new Secret("mysupersecret".Sha256())
},
AllowedScopes = {
"joinot",
JwtClaimTypes.Role,
},
Claims = new List<Claim>() { new Claim("role", "WonderWoman"), new Claim("VatId", "123abc") },
},
// ... other code
Это утверждения, которые я вижу в вебапи.
Я нашел то, что добавил с префиксом "client _".
В целях тестирования я использую сваггер, и у меня есть этот конфиг для него:
new Client {
ClientId = "swagger_api_client",
ClientName = "Swagger API Client",
AllowedGrantTypes = GrantTypes.Implicit,
AllowAccessTokensViaBrowser = true,
RedirectUris = {"http://localhost:57303/swagger/oauth2-redirect.html"},
AllowedScopes = {
"joinot",
JwtClaimTypes.Role,
},
Claims = new List<Claim>() { new Claim("role", "ManOfSteel"), new Claim("VatId", "abc123") },
RequireConsent = false
},
Это означает, что мне нужно пройти аутентификацию с интерактивным пользователем, а затем я могу позвонить в webapi.
Когда я это сделаю, утверждения, которые я нашел в Webapi не так, как я ожидал.
"client_role" и "client_VatId" отсутствуют в списке.
Как вставить претензии как к консоли, так и к клиенту swagger?