【问题标题】:Azure AD application adding a key via PowershellAzure AD 应用程序通过 Powershell 添加密钥
【发布时间】:2016-04-25 06:32:04
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    这可以使用 New-AzureRmADApplication 方法(在创建应用程序时包含它)来完成,但显然不能使用 Set-AzureRmADApplication(即在创建应用程序后设置它;我不确定是否有通过powershell做到这一点的方法)。但是仅从知道方法就不清楚如何设置它。这个网站让我得到了答案:https://sabin.io/blog/adding-an-azure-active-directory-application-and-key-using-powershell/

    要点是您必须提供这些方法称为 PasswordCredentials 的内容,尽管 Azure 门户似乎将它们称为密钥,并且一些 powershell 命令(如 SqlAzureAuthenticationContext)调用您设置 Secret 的值(所有这些都令人困惑条款)。以下是我使用凭据创建的方法:

    # 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
    

    【讨论】:

    • 在最新版本的 AzureRM 中,PSADPasswordCredentials 对象已移至 Microsoft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.PSADPasswordCredential跨度>
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我也有同样的问题,你解决了吗?
      • 不。还没有找到从脚本中检索它的方法。现在我是手动做的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 2023-03-24
      • 2022-01-06
      • 2023-01-14
      • 2018-11-07
      相关资源
      最近更新 更多