Код: Выделить всё
www-authenticate: Bearer error="invalid_token",error_description="The signature key was not found"
Настройка Keycloak:
- Keycloak работает в контейнере Docker (настроенном с помощью start-dev).
- Я настроил клиент для своего API в Keycloak и установите соответствующие учетные данные.
- AuthorizationUrl и TokenUrl установлены для конечных точек Keycloak.
В Program.cs я настроил Аутентификация носителя JWT следующим образом:
Код: Выделить всё
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.Audience = Environment.GetEnvironmentVariable("AuthticationAudience");
options.MetadataAddress = Environment.GetEnvironmentVariable("AuthticationMetadataAddress")!;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = Environment.GetEnvironmentVariable("AuthenticationValidIssuer")
};
});
Код: Выделить всё
options.AddSecurityDefinition("Keycloak", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.OAuth2,
Flows = new OpenApiOAuthFlows
{
Implicit = new OpenApiOAuthFlow
{
AuthorizationUrl = new Uri("http://localhost:8090/realms/primas/protocol/openid-connect/auth"),
Scopes = new Dictionary
{
{ "openid", "openid" },
{ "profile", "profile" }
}
}
}
});
Мой файл Docker Compose включает следующие службы:
< ul>
[*]служба keycloak (работает Keycloak)
[*]служба primasapi (работает мой ASP.NET Core API)
[*]mariadb, mysql, службы Redis для зависимостей базы данных.
Сведения об ошибке:
Несмотря на конфигурацию, когда я пытаюсь пройти аутентификацию с помощью токена JWT, я получаю это сообщение об ошибке в ответе:
Код: Выделить всё
www-authenticate: Bearer error="invalid_token", error_description="The signature key was not found"
Что я пробовал:
- Я проверил правильность URL-адреса токена и эмитента в
TokenValidationParameters. - Я проверил общедоступность ключи от Keycloak, но API по-прежнему не удается
проверить токен. Кто-нибудь знает, что может быть причиной ошибки
"ключ подписи не найден" и как ее устранить?
Подробнее здесь: https://stackoverflow.com/questions/793 ... authentica
Мобильная версия