c# - 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 应用服务请求的附加屏幕截图,
解决方案
在 Azure 应用服务环境中,应用无权访问以下 url,
https://orgname.oktapreview.com/oauth2/default/.well-known/openid-configuration
一旦我在防火墙中启用对它的访问,它就可以工作了。
推荐阅读
- html - 高度和最大高度不适用于我在弹性框中的图像
- python - Python程序没有响应
- mysql - 导出mysql数据库时出现语法错误
- java - 西班牙语字符 (ú, í ) 在带有 Wicket 的 UI 上更改为 (ó , Ã) 并用 Java 编码
- python - 如何在没有表单模型的情况下创建帖子?
- javascript - Pass in Django Template Variable to JS function
- python - 如何制作内容每年增加一个单位的django模型字段
- django - 使用AWS弹性beantalk(使用nginx + gunicorn)部署django时出现ERR_CONNECTION_TIMED_OUT
- c# - Xunit 模拟 TokenClient 调用
- cs50 - CS50 复数 - 无法理解为什么使用 Candidate_count