c# - AddOpenIdConnect 与外部配置服务
问题描述
我将 OpenIdConnect 添加到我的应用程序中,如下所示:
.AddOpenIdConnect("oidc", options =>
{
var clientSecret = Configuration.GetValue<string>("clientSecret");
options.ClientSecret = clientSecret;
});
我希望能够使用其他服务来获取这样的秘密:
.AddOpenIdConnect("oidc", (services, options) =>
{
var secretService = services.GetService<ISecretService>();
var clientSecret = secretService.Get("clientSecret");
options.ClientSecret = clientSecret;
});
我看到有使用,app.UseOpenIdConnectAuthentication
但我没有在 nuget 包中看到它。
我安装了以下内容:
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.0" />
我怎样才能做到这一点?
解决方案
在所描述的情况下,我建议扩展配置而不是在操作中使用 DI。
要访问机密,您可以添加配置提供程序并继续在 ConfigureServices 方法中使用 Configuration.GetValue。
对于 Azure Key-Vault,它位于Microsoft.Extensions.Configuration.AzureKeyVault nuget 包下。
public static void Main(string[] args)
{
CreateWebHostBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
if (env.IsLocal())
{
...
}
else
{
config.AddAzureKeyVault(keyVaultUri);
}
})
.Build()
.Run();
}
推荐阅读
- javascript - 如何将 data-id 发送到另一个页面
- c# - 投射对象{字典
} 列出 > - c# - 从视频中复制此程序平面生成器时,我犯了什么错误?
- oauth-2.0 - 在没有 OIDC 的情况下如何在 OAuth2 中进行身份验证?
- java - 为什么 Symbol 的字段(左右)总是返回 0?
- events - 谷歌日历 API 问题(已删除项目)
- wix - 如果已安装应用程序,如何创建自定义错误对话框?
- angular - 无法使用日期字符串对物料表列进行排序
- python - python中的数据表示差异
- html - 无法用鼠标单击列表中的第一个单选按钮,但可以使用向上和向下箭头键选择它