2017-01-10 3 views

답변

0

당신은 비난-PT하기 위해 키 serviceprincipal 이름이 필요합니다. 따라서 대답은 불행히도 아니오입니다.

-1

C# 코드에서 Azure PowerShell 스크립트를 사용하여 수행 할 수 있습니다. 이를 위해 우리는 키 볼트의 이름, 비밀의 이름 및 액세스하려는 사용자의 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

관련 문제