如果我在 Visual Studio 2017 中创建新的 ASP.NET Core MVC 应用程序,我可以使用一行将客户端 key 添加到 AzureAdServiceCollectionExtensions
:
public void Configure(string name, OpenIdConnectOptions options)
{
options.ClientId = _azureOptions.ClientId;
// Add this line below
options.ClientSecret = _azureOptions.ClientSecret;
options.Authority = $"{_azureOptions.Instance}{_azureOptions.TenantId}";
options.UseTokenLifetime = true;
options.CallbackPath = _azureOptions.CallbackPath;
options.RequireHttpsMetadata = false;
}
配置 POCO 已连接以从配置文件中获取它。
另一方面,在 Web API 项目中,身份验证使用 JWT token ,并且 Visual Studio 生成的代码有所不同:
public void Configure(string name, JwtBearerOptions options)
{
options.Audience = _azureOptions.ClientId;
options.Authority = $"{_azureOptions.Instance}{_azureOptions.TenantId}";
}
我不确定在 JwtBearOptions
中的哪个位置放置客户端 key 。
最佳答案
您实际上并未在选项中指定客户端 key 。当您使用对称 key 签署 token 时会使用它。
public void Configure(string name, JwtBearerOptions options)
{
options.Audience = _azureOptions.ClientId;
options.Authority = $"{_azureOptions.Instance}{_azureOptions.TenantId}";
var secretKey = "mysupersecret_secretkey!123";
var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secretKey));
options.TokenValidationParameters.IssuerSigningKey = signingKey;
}
查看这些链接:
关于asp.net-core - 在 JwtBearerOptions 中指定用于 Azure Active Directory 身份验证的客户端 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897492/