Я использую Web API в .net core 2.1, и мне нужно проверить входящий токен JWT, который хранится во входящих запросах.Маркер был сгенерирован из IDP OAUTH 2 и вставлен моим клиентом в свои запросы к моему веб-API.Конфигурация OpenID, которую я могу получить из cognito, выглядит следующим образом:
{
"authorization_endpoint": "https://xxx.xxx.xxx.amazoncognito.com/oauth2/authorize",
"id_token_signing_alg_values_supported": ["RS256"],
"issuer": "https://cognito-idp.eu-west-1.amazonaws.com/xxx",
"jwks_uri": "https://cognito-idp.eu-west-1.amazonaws.com/xxxxxx/.well-known/jwks.json",
"response_types_supported": ["code", "token", "token id_token"],
"scopes_supported": ["openid", "email", "phone", "profile"],
"subject_types_supported": ["public"],
"token_endpoint": "https://xxxxxxx.auth.eu-west-1.amazoncognito.com/oauth2/token",
"token_endpoint_auth_methods_supported": ["client_secret_basic", "client_secret_post"],
"userinfo_endpoint": "https://xxxxxxxx.auth.eu-west-1.amazoncognito.com/oauth2/userInfo"
}
Я бы хотел использовать стандартный стандартный веб-API .net для управления этой задачей, реализуя в файле startup.cs следующее:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
// Clock skew compensates for server time drift.
// We recommend 5 minutes or less:
ClockSkew = TimeSpan.FromMinutes(5),
// Specify the key used to sign the token:
IssuerSigningKey = signingKey,
RequireSignedTokens = true,
// Ensure the token hasn't expired:
RequireExpirationTime = true,
ValidateLifetime = true,
// Ensure the token audience matches our audience value (default true):
ValidateAudience = true,
ValidAudience = "api://default",
// Ensure the token was issued by a trusted authorization server (default true):
ValidateIssuer = true,
ValidIssuer = "???????"
};
Как я могу использовать / сопоставлять параметры congnito в моих параметрах проверки токена Web API?В частности, как я могу загрузить IssuerSigningKey, ValidIssuer и ValidAudience?