Azure AD应用程序通过Powershell添加密钥

时间:2016-04-25 06:32:04

标签: azure azure-active-directory azure-powershell

我尝试使用PowerShell在Azure AD应用程序中添加密钥。不幸的是我首先尝试使用Azure CLI,但经过一些研究和一些stackoverflow的答案,我发现,这是不可能做到的。

我尝试通过Powershell从以下链接自动完成任务:http://blog.davidebbo.com/2014/12/azure-service-principal.html

我也遵循以下步骤: https://blogs.technet.microsoft.com/kv/2015/06/02/azure-key-vault-step-by-step/

有没有办法在Powershell中创建/检索以下内容:

VaultUrl, AuthClientId, AuthClientSecret。

3 个答案:

答案 0 :(得分:2)

这可以使用New-AzureRmADApplication方法(在创建应用程序时包含它)来完成,但显然不是使用Set-AzureRmADApplication(即在创建应用程序后设置它;我不确定那里)是一种通过powershell做到这一点的方法)。但目前尚不清楚如何通过了解方法来设置它。这个网站引导我回答:https://sabin.io/blog/adding-an-azure-active-directory-application-and-key-using-powershell/

要点是你必须提供那些方法称为PasswordCredentials的东西,虽然Azure门户似乎称它们为键,而一些powershell命令,如SqlAzureAuthenticationContext调用你设置的秘密值(所有这些都令人困惑)计算)。以下是我使用凭据创建的方式:

# Be sure to note $KeyValue! It can't be retrieved.
# It's the "Secret" you can pass to methods like Add-SqlAzureAuthenticationContext in order to authenticate.
$KeyValue = [guid]::NewGuid()
Write-Output "The password you've set is $KeyValue"

$psadCredential = New-Object Microsoft.Azure.Commands.Resources.Models.ActiveDirectory.PSADPasswordCredential
$startDate = Get-Date
$psadCredential.StartDate = $startDate
$psadCredential.EndDate = $startDate.AddYears(1)
$psadCredential.KeyId = [guid]::NewGuid()
$psadCredential.Password = $KeyValue

$adApplication = New-AzureRmADApplication –DisplayName “MyNewApp”`
-HomePage "http://MyNewApp"`
-IdentifierUris "http://MyNewApp"`
-PasswordCredentials $psadCredential

答案 1 :(得分:1)

我能找到在PowerShell中创建AAD应用程序并保留密钥记录的唯一方法是使用Graph API。这样,我可以自己生成键值并显式传递,而不是尝试在输出中捕获它。

脚本:https://gist.github.com/bjh1977/0953b96e7148d6a845f5d331cb7206a5#file-createaadapplication-ps1

答案 2 :(得分:0)

下面将从现有AD应用程序中检索ClientID:

$ADApp = Get-AzureRmADApplication -DisplayName "AzureADApplicationName"
write-host $ADApp.ApplicationId

下面将检索Vault Uri:

$KeyVault= Get-AzureRmKeyVault -VaultName "VaultName"
write-host $KeyVault.VaultUri

我也在寻找从PowerShell添加密钥的选项。当我手动添加密钥时,会显示一条消息,显示“复制并存储密钥值。离开此页面后,您将无法检索它”。但仍然试图找出使用powershell检索密钥(ClientSecret)的选项。