首页 文章

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

提问于
浏览
3

我正在尝试使用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 回答

  • 1

    这可以使用New-AzureRmADApplication方法(在创建应用程序时包含它)来完成,但显然不是使用Set-AzureRmADApplication(即在创建应用程序后设置它;我不知道如何设置它只是来自知道方法 . 这个网站让我得到了答案: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
    
  • 0

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

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

  • 2

    下面将从现有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)的选项 .

相关问题