2017-01-10 9 views

答えて

0

あなたは非難-PtにキーたservicePrincipal名前が必要になります。したがって、答えは残念ながらNOです。

-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

関連する問題