【问题标题】:Error when using CmdLet New-AzureRmADAppCredential to create new credential with certificates使用 CmdLet New-AzureRmADAppCredential 创建带有证书的新凭据时出错
【发布时间】:2017-01-06 07:50:39
【问题描述】:

我正在尝试使用 New-AzureRmADAppCredential cmdlet。我正在尝试使用以下语法创建新凭据: New-SelfSignedCertificateEx -Subject "CN=$ClientId" -KeySpec "Exchange" -FriendlyName "$ClientId" $start = (Get-Date).ToUniversalTime() $end = $start.AddDays(4) New-AzureRmADAppCredential -ApplicationId $application.ObjectId -CertValue $keyValue -StartDate $start -EndDate $end 我注意到,如果我尝试使用证书创建新凭据,则会在特定应用程序上失败,并出现以下错误: New-AzureRmADAppCredential : Update to existing credential with KeyId 'keyid' is not allowed. 此应用程序有 2 个凭据,一个是密码,另一个是证书。 keyid 属于证书凭证。奇怪的是,在其他应用程序上它运行良好,即使该应用程序有多个证书凭据。我试图查看文档,但找不到任何有用的东西。
所以,我的问题是 - 为什么会发生这个错误?我该如何解决这个问题?
更新:通过查看 cmdlet 的 code,它似乎总是在更新整个列表,所以我认为这可能与权限有关,但我不确定。
谢谢,
奥马尔

【问题讨论】:

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


    【解决方案1】:

    是啊,New-AzureRmADAppCredential不够强,如果AAD App有key,它会更新key list中最新的key,当然不行(Update to existing credential with KeyId is not allowed),我觉得是bug;如果不存在密钥,它将创建一个新密钥。您可以改用New-AzureADApplicationPasswordCredential

    【讨论】:

    • 其实我用了一段时间来创建新密码(新证书),效果很好。到目前为止,我只遇到过 2 次失败的情况,这是 Azure 的一些奇怪问题。你并不完全正确。该命令将获取所有现有密钥,将新密钥添加到列表并将新列表发送到服务器。
    • @OmerLeviHevroni PowerShell 模块更新很快,我的是版本 5.1.1,当 AAD 应用程序有密钥时,New-AzureRmADAppCredential 只是更新,无法工作。所以我改用了 New-AzureADApplicationPasswordCredential。
    • New-AzureADApplicationPasswordCredential 需要先执行 Connect-AzureAD,还有其他选择吗?
    • 我花了一段时间,但我终于有时间测试它 - 你是对的。移动到新的 CmdLet 可以解决这个问题。谢谢!
    【解决方案2】:

    好的,所以我们发现这是因为第一个证书是通过修改应用程序清单上传到 Azure AD 的。删除它并使用 powershell 再次添加后一切正常......

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      相关资源
      最近更新 更多