首页 > 解决方案 > Okta 不记名令牌身份验证在本地工作,但不在 Azure 应用服务上

问题描述

下面是启用 okta 身份验证的启动代码,

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
       .AddJwtBearer(options =>
       {
           options.Authority = _settings.Authority;
           options.Audience = _settings.Audience;


           options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters()
           {
               RoleClaimType = "Role"
           };
       });

同一段代码在我的本地和本地服务器中运行。但同样不适用于 azure app 服务所有安全的 api 请求都导致 500 内部服务器错误。

在 serilog 日志中,我可以看到调试信息为“AuthenticationScheme:“Bearer”未通过身份验证。

知道可能是什么原因吗?

下面是我的本地 vs azure 应用服务请求的附加屏幕截图,

在此处输入图像描述

标签: c#.net-coreoktaazure-appservice

解决方案


在 Azure 应用服务环境中,应用无权访问以下 url,

https://orgname.oktapreview.com/oauth2/default/.well-known/openid-configuration

一旦我在防火墙中启用对它的访问,它就可以工作了。


推荐阅读