azure - 如何配置 JwtBearerOptions 以在众所周知的 openid-configuration URL 中包含策略名称?
问题描述
我正在尝试向我的 ASP.NET Web 应用程序添加一些不记名令牌验证。我正在使用内置的 JWT 身份验证代码,配置为使用以下代码...
services.AddAuthentication(ConfigureAuthentication).AddJwtBearer(ConfigureJwt);
它运行以下功能...
private void ConfigureAuthentication(AuthenticationOptions options)
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}
private void ConfigureJwt(JwtBearerOptions options)
{
var directoryId = Configuration["AzureAd:DirectoryId"];
var directoryName = Configuration["AzureAd:DirectoryName"];
var policy = Configuration["AzureAd:SigninPolicyName"];
options.Audience = Configuration["AzureAd:ApplicationId"];
options.Authority = $"https://{directoryName}.b2clogin.com/{directoryName}.onmicrosoft.com/v2.0";
}
该ConfigureJwt
方法是我正在处理的方法。我似乎无法获取底层 JWT 代码以openid-configuration
从适当的 URL 获取。它非常接近,但缺少 URL 中的策略。这是我上面的代码生成并尝试openid-configuration
从...中获取的内容
https://example-directory.b2clogin.com/example-directory.onmicrosoft.com/v2.0/.well-known/openid-configuration
这是从 Azure 门户中指定的应该从中获取配置的内容...
https://example-directory.b2clogin.com/example-directory.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_SignInPolicy
如您所见,我上面的代码缺少策略名称。
我似乎无法弄清楚如何在任何地方指定它。有人知道如何配置JwtBearerOptions
以使其包含此策略名称吗?
解决方案
我认为当局需要:
https://{directoryName}.b2clogin.com/{directoryName}.onmicrosoft.com/B2C_1A_signup_signin/v2.0
将B2C_1A_signup_signin替换为您的策略 ID。
它包含策略 ID,它将从正确的位置下载元数据。
推荐阅读
- python - 无法从 python 中的 Giphy API 响应中获取信息
- python - 尝试读取泡菜文件 - EOFError:压缩文件在到达流结束标记之前结束
- android - 按下后关闭应用程序
- angular - 有没有办法在 Spartacus PDP 页面上添加 CanDeactivate 类型的路由保护
- python - 具有客户端-服务器架构的聊天应用程序使用什么?
- python - 在 MBP M1、macOS Big Sur 上安装 py3exiv2 失败 InstallationError: No .egg-info directory found in
- mysql - 如何用简单的方法将 CSV 导入 mysql?
- javascript - Mongoose - 获得关注者帖子的最佳方式
- gradle - Gradle 7.2 Tar 任务 baseName 已弃用,但替换 archiveBaseName 被拒绝
- ruby-on-rails - 如何在使用厨师栖息地部署应用程序时管理 Rails 应用程序的秘密?