C# 访问令牌验证在.net core 2.2中不起作用
我正在构建一个POC,tech stack作为前端+点网核心作为后端,Okta作为身份验证和授权提供商 我能够在angular前端应用程序中使用Okta NPM包对用户进行身份验证 现在我收到两个令牌,一个是访问令牌,另一个是Id令牌 现在我想用访问令牌保护我的.net核心API,因此对于每个请求,我都将访问令牌发送到服务器 我在我的启动文件中添加了以下代码,并添加了Okta.AspNetCoreNuGet包C# 访问令牌验证在.net core 2.2中不起作用,c#,.net,angular,asp.net-core-2.0,okta,C#,.net,Angular,Asp.net Core 2.0,Okta,我正在构建一个POC,tech stack作为前端+点网核心作为后端,Okta作为身份验证和授权提供商 我能够在angular前端应用程序中使用Okta NPM包对用户进行身份验证 现在我收到两个令牌,一个是访问令牌,另一个是Id令牌 现在我想用访问令牌保护我的.net核心API,因此对于每个请求,我都将访问令牌发送到服务器 我在我的启动文件中添加了以下代码,并添加了Okta.AspNetCoreNuGet包 services.AddAuthentication(options =
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = OktaDefaults.ApiAuthenticationScheme;
options.DefaultChallengeScheme = OktaDefaults.ApiAuthenticationScheme;
options.DefaultSignInScheme = OktaDefaults.ApiAuthenticationScheme;
})
.AddOktaWebApi(new OktaWebApiOptions()
{
OktaDomain = "https://dev-819187.okta.com",
Audience = "api://default",
});
这是行不通的
然后我添加了这个代码
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = OktaDefaults.ApiAuthenticationScheme;
options.DefaultChallengeScheme = OktaDefaults.ApiAuthenticationScheme;
options.DefaultSignInScheme = OktaDefaults.ApiAuthenticationScheme;
})
.AddOktaWebApi(new OktaWebApiOptions()
{
OktaDomain = "https://dev-819187.okta.com",
Audience = "{App clientId}",
AuthorizationServerId = null,
});
通过它,我可以验证Id令牌,但当我将访问令牌发送到.net core时,相同的代码不起作用
然后我检查了这些url:
返回两个不同的jwks\u uri,即:
悲哀的是,当我尝试使用邮递员和/introspect url手动验证令牌时,这两个令牌都会返回成功。使用JwtBearer扩展名:IssuerSigningKey=signingKey如何??这里的签名密钥是什么?孩子,如果不是从哪里我可以得到它?你能解决它吗?我在使用AWS Cognito令牌时遇到了同样的问题。我们可以通过IDtoken进行验证,但不能通过AccessToken进行验证是的,我将在此处进行更新。您需要仔细地重新检查所有配置