Jus*_*ing 2 jwt azure-active-directory openid-connect asp.net-core
如果我在Visual Studio 2017中创建新的ASP.NET Core MVC应用程序,则可以将一行一行的客户端密钥添加到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;
}
Run Code Online (Sandbox Code Playgroud)
配置POCO已经连接好,可以从配置文件中获取它。
另一方面,在Web API项目中,身份验证使用JWT令牌,而Visual Studio生成的代码则不同:
public void Configure(string name, JwtBearerOptions options)
{
options.Audience = _azureOptions.ClientId;
options.Authority = $"{_azureOptions.Instance}{_azureOptions.TenantId}";
}
Run Code Online (Sandbox Code Playgroud)
我不确定JwtBearOptions将客户密码放在何处。
您实际上并未在选项中指定客户端密码。当您使用对称密钥对令牌进行签名时使用。
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;
}
Run Code Online (Sandbox Code Playgroud)
查看以下链接:
http://www.blinkingcaret.com/2017/09/06/secure-web-api-in-asp-net-core/ https://stormpath.com/blog/token-authentication-asp-net-core
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |