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

问题描述 投票:1回答:2

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

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.