.net 核心密钥保管库 link 在本地环境中因访问被禁止而失败
.net core key vault link fails with Access Forbidden on local environment
我 运行 以下功能是我的 .net 核心 Web 应用程序的 Main 方法的一部分
private static void LinkKeyVault(IConfigurationBuilder config, string keyVaultEndpoint)
{
if (!string.IsNullOrEmpty(keyVaultEndpoint))
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
config.AddAzureKeyVault(keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
}
}
当我在我的本地开发机器上 运行 此代码时,我收到以下错误“操作返回无效状态代码 'Forbidden'”。当此代码在应用服务用户分配的托管标识下在 Azure 中运行时,一切正常。在我的本地环境中,我使用我的 Azure AD 用户登录,该用户使用 Key Vault 访问策略获得了访问权限,权限与用户分配的托管标识相同。
dfrds-dev-web-identity 是用户分配的托管标识,DFRDDevelopers 是我的 Azure AD 帐户所属的组。
应该可以,请确保用户帐户所在的组是Security
组,而不是Microsoft 365
组,这里只支持Security
组功能。
To grant data plane access to several users, create an Azure AD security group and add users to that group.
此外,如果您想使用 Visual Studio 进行身份验证,请确保您使用正确的帐户登录,并尝试在代码中使用 RunAs=Developer; DeveloperTool=VisualStudio
以确保它使用 Visual Studio 授权。
var azureServiceTokenProvider = new AzureServiceTokenProvider(RunAs=Developer; DeveloperTool=VisualStudio);
我 运行 以下功能是我的 .net 核心 Web 应用程序的 Main 方法的一部分
private static void LinkKeyVault(IConfigurationBuilder config, string keyVaultEndpoint)
{
if (!string.IsNullOrEmpty(keyVaultEndpoint))
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
config.AddAzureKeyVault(keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
}
}
当我在我的本地开发机器上 运行 此代码时,我收到以下错误“操作返回无效状态代码 'Forbidden'”。当此代码在应用服务用户分配的托管标识下在 Azure 中运行时,一切正常。在我的本地环境中,我使用我的 Azure AD 用户登录,该用户使用 Key Vault 访问策略获得了访问权限,权限与用户分配的托管标识相同。
dfrds-dev-web-identity 是用户分配的托管标识,DFRDDevelopers 是我的 Azure AD 帐户所属的组。
应该可以,请确保用户帐户所在的组是Security
组,而不是Microsoft 365
组,这里只支持Security
组功能。
To grant data plane access to several users, create an Azure AD security group and add users to that group.
此外,如果您想使用 Visual Studio 进行身份验证,请确保您使用正确的帐户登录,并尝试在代码中使用 RunAs=Developer; DeveloperTool=VisualStudio
以确保它使用 Visual Studio 授权。
var azureServiceTokenProvider = new AzureServiceTokenProvider(RunAs=Developer; DeveloperTool=VisualStudio);