使用CmdLet new - azurermadappcredential创建带有证书的新证书时出错



我正在尝试使用New-AzureRmADAppCredential命令。我正在尝试使用以下语法创建新凭据: 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的代码,它似乎总是更新整个列表,所以我认为它可能是与权限有关的东西,但我不确定。
谢谢,
俄梅珥

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

好的,我们发现发生这种情况是因为第一个证书是通过修改应用程序清单上传到Azure AD的。在删除它并再次使用powershell添加它之后,一切都工作了……

最新更新