有没有办法在不使用AD身份验证的情况下访问azure密钥库?

问题描述:

我想使用Azure凭证访问我的Azure密钥保管库中的密钥,而不使用Azure AD App身份验证。有没有可能的方法?有没有办法在不使用AD身份验证的情况下访问azure密钥库?

谢谢

您将需要serviceprincipal名称来解密密钥。因此,答案不幸的是没有。

我们可以在C#代码中使用Azure PowerShell脚本来实现。为此,我们只需要keyvault的名称,想要访问它的用户的秘密名称和Azure凭证。

static void Main(string[] args) 
    { 
      Program program = new Program(); 
      string scriptText = "Login-AzureRmAccount"; 
      string result = program.RunScript(scriptText); 
      Console.WriteLine(result); 
      Console.ReadLine(); 
    } 

    private string RunScript(string scriptText) 
    { 

     Runspace runspace = RunspaceFactory.CreateRunspace(); 
     runspace.Open();   
     Pipeline pipeline = runspace.CreatePipeline(); 
     pipeline.Commands.AddScript(scriptText); 
     pipeline.Commands.AddScript("$secret = Get-AzureKeyVaultSecret -VaultName '[Name_of_keyVault]' -Name '[Name_of_secret]'"); 
     pipeline.Commands.AddScript("Write $secret.SecretValueText"); 
     Collection<PSObject> results = pipeline.Invoke();   
     runspace.Close();    
     StringBuilder stringBuilder = new StringBuilder(); 
     foreach (PSObject obj in results) 
     { 
      stringBuilder.AppendLine(obj.ToString()); 
     } 
     return stringBuilder.ToString(); 
    } 

其实,我想访问没有AD应用程序认证的密钥库。这是我能想到的唯一方法。

+0

为什么从C#中调用PS时,有包直接执行此操作?不需要从C#调用PS。还不是你只是登录到AAD吗?这个问题说他不想这样做。 – nashwan