【发布时间】:2021-10-18 16:35:31
【问题描述】:
我是身份服务器的新手。我实际上是在尝试对 Okta 提供者从 Ocelot 网关生成的 JWT 令牌进行身份验证,并在身份验证成功后允许访问底层 API。
我实际上可以使用 Postman 成功生成 ID 和访问令牌。但是我用token传给Ocelot网关总是显示401 unauthorized错误。
这是来自 Ocelot 网关的代码。
代码
public void ConfigureServices(IServiceCollection services)
{
services
.AddAuthentication()
.AddJwtBearer("Bearer", options =>
{
options.Audience = "api://default"; // Okta Authorization server Audience
options.Authority = "https://dev-12345678.okta.com/"; // Okta Authorization Issuer URI URL e.g. https://{subdomain}.okta.com/oauth2/{authidentifier}
options.RequireHttpsMetadata = false;
});
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("scp");
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Add("scp", "scope");
services.AddOcelot(Configuration);
IdentityModelEventSource.ShowPII = true;
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseAuthentication().UseOcelot().Wait();
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
【问题讨论】:
标签: .net-core identityserver4 okta ocelot