我们在AWS Cognito中使用现有的用户池,为我们的 api 服务器创建了一个单独的客户端应用程序。
使用 Cognito 中的托管 UI 时accessToken、idToken和refreshToken。
问题是当将JwtAuthProviderReader添加到AuthFeature以进行令牌验证时,我们使用 [Authenticate] 属性创建的任何端点都会得到“ HTTP/1.1 401 Unauthorized ”。
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[]
{
new JwtAuthProviderReader
{
Audience = "11rqr096c55xxxxxxxxxxxxxx", // App client id
Issuer = "https://cognito-idp.eu-west-1.amazonaws.com/eu-west-1_xxXxxXXxX",
HashAlgorithm = "RS256",
PublicKey = new RSAParameters
{
Modulus = Base64UrlEncoder.DecodeBytes("JRDU3q2XoOcKGjcj1DsJ3Xj .... DTNVCGzUCGosKGYL0Q"),
Exponent = Base64UrlEncoder.DecodeBytes("AQAB")
},
RequireSecureConnection = false,
}
}
)
{
IncludeAssignRoleServices = false
});
模数和指数来自众所周知的响应参考https://cognito-idp.eu-west-1.amazonaws.com/eu-west-1_xxXxxXXxX/.well-known/jwks.json中的e和n
受 Authenticate 属性保护的服务总是返回HTTP/1.1 401 Unauthorized
[Authenticate]
public object Get(GetTenants request)
{
return ...;
}
我们如何知道我们的JwtAuthProviderReader设置是否正确?