uri*_*rig 5 azure azure-keyvault azure-appservice
我有一个在 Azure 应用服务中运行的 ASP.net Core 3.1 应用程序。开始使用 Azure Key Vault 存储应用程序的连接字符串和其他机密后,该应用程序现在崩溃并显示“HTTP 错误 500.30 ANCM 进程内启动失败”错误页面。
我上下搜索了 Azure 门户,最后设法在应用服务的 .NET Core 启动失败列表中找到了一些有意义的东西(隐藏在应用服务 > 诊断和解决问题 > Web 应用程序关闭 > 查看 .NET 启动失败下):
Microsoft.Azure.KeyVault.Models.KeyVaultErrorException: The policy requires the caller
'appid=<redacted>;oid=<redacted>;iss=https://sts.windows.net/<readacted>/' to use on-behalf-of (OBO)
flow. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287
Run Code Online (Sandbox Code Playgroud)
我不需要代表流量。我最初确实定义了 Key Vault 访问策略,以错误地包含应用程序oid及其应用程序appid。从那以后,我通过删除访问策略并在没有appid.
我的问题是 -为什么我仍然收到此错误,我该如何解决?
更新:下面是似乎触发这个的代码。禁用它后,应用程序会恢复正常(尽管没有 Key Vault 集成)。
var builtConfig = config.Build();
var vaultUrl = $"https://{builtConfig["KeyVaultName"]}.vault.azure.net/";
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
config.AddAzureKeyVault(
vaultUrl,
keyVaultClient,
new DefaultKeyVaultSecretManager());
Run Code Online (Sandbox Code Playgroud)
添加访问策略时,它只能选择具有对象 ID 的服务主体。
正如您所描述的,您删除appid并确保单击save按钮来保存您的操作。
您可以通过为 Key Vault 设置 Key Vault 访问策略来授予数据平面访问权限。若要设置这些访问策略,用户、组或应用程序必须具有该密钥保管库管理平面的参与者权限。
更多细节,你可以参考这篇文章。
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |