2017-01-10 7 views
0

Я хочу получить доступ к секретам в своем хранилище ключей в лазурном режиме, используя мои учетные данные, не используя аутентификацию приложения Azure AD. Есть ли возможный способ?Есть ли способ доступа к хранилищу ключей azure без использования аутентификации AD?

Благодаря

ответ

0

Вам потребуется serviceprincipal имя порицать-пт ключ. Следовательно, ответ, к сожалению, нет.

-1

Мы можем сделать это, используя скрипт Azure PowerShell в коде C#. Для этого нам потребуется только имя ключа, имя секретного и 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

Почему вы вызываете PS изнутри C#, когда есть пакеты, чтобы сделать это напрямую? Не нужно вызывать PS из C#. Кроме того, вы просто входите в AAD? Вопрос сказал, что он не хотел этого делать. – nashwan