2016-08-30 31 views
1

我正嘗試使用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,它似乎總是更新整個列表,所以我認爲它可能與權限有關,但我不確定。
感謝,
奧馬爾使用CmdLet New-AzureRmADAppCredential創建具有證書的新憑證時出錯

回答

1

好了,我們發現這種情況是因爲第一個證書是通過修改應用程序清單上傳到Azure的AD。刪除它並使用powershell再次添加它的一切工作...

0

是啊,New-AzureRmADAppCredential是不夠強大,如果AAD應用程序有鍵,它會更新鍵列表中的最新鍵,當然不會工作(Update to existing credential with KeyId is not allowed),我認爲這是一個錯誤;如果沒有密鑰存在,它將創建一個新的密鑰。您可以改用New-AzureADApplicationPasswordCredential

+0

其實,我用了一段時間來創建新密碼(新證書),它工作得很好。到目前爲止,我只遇到兩次失敗的案例,這是Azure的一個奇怪的問題。而你並不完全正確。該命令將獲得所有現有密鑰,將新密鑰添加到列表並將新列表發送到服務器。 –

+0

@OmerLeviHevroni PowerShell模塊快速更新,我的版本是5.1.1,當AAD App有密鑰時,New-AzureRmADAppCredential只是更新並且無法工作。所以我改用了New-AzureADApplicationPasswordCredential。 –

+0

有趣的是,我們遇到了一些問題 - 我可能會嘗試一下...... –

相關問題