使用CmdLet New-AzureRmADAppCredential创建包含证书的新凭据时出错

时间:2016-08-30 06:45:00

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

我正在尝试使用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,它似乎总是更新整个列表,所以我认为它可能与权限相关,但我不确定。
谢谢,
奥马尔

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

是的,New-AzureRmADAppCredential还不够强大,如果AAD App有密钥,它会更新密钥列表中的最新密钥,当然不会工作(Update to existing credential with KeyId is not allowed) ,我认为这是一个错误;如果没有密钥,它将创建一个新密钥。您可以改为使用New-AzureADApplicationPasswordCredential