Есть ли способ получить доступ к хранилищу ключей Azure без использования проверки подлинности AD?

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

Спасибо


person Radhika    schedule 10.01.2017    source источник


Ответы (2)


Вам понадобится имя serviceprincipal, чтобы расшифровать ключ. Следовательно, ответ, к сожалению, НЕТ.

person Newton Sheikh    schedule 11.01.2017

Мы можем сделать это с помощью сценария 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. Это был единственный способ, который я мог придумать.

person Radhika    schedule 12.01.2017
comment
Почему вы вызываете PS из C#, когда есть пакеты, которые делают это напрямую? Не нужно вызывать PS из С#. Кроме того, вы все равно просто входите в AAD? В вопросе говорилось, что он не хочет этого делать. - person bytedev; 17.11.2017