azure 转换为IMicrosoftGraphPasswordCredential时出错

bihw5rsg  于 2023-05-01  发布在  PHP
关注(0)|答案(2)|浏览(125)

我正在尝试创建新的Azure Active Directory应用程序,使用以下PowerShell命令:

$SecurePassword=ConvertTo-SecureString {password} -asplaintext -force
New-AzADApplication -DisplayName {Display name} -HomePage {Home page URL} -IdentifierUris {Application identifier} -Password $SecurePassword

但我得到一个错误,显示Cannot convert value "System.Security.SecureString" to type "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPasswordCredential[]".
以下是完整的错误:

New-AzADApplication: Cannot process argument transformation on parameter 'PasswordCredentials'. Cannot convert value "System.Security.SecureString" to type "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPasswordCredential[]". Error: "Cannot convert the "System.Security.SecureString" value of type "System.Security.SecureString" to type "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPasswordCredential"."

然而,我找不到任何关于如何转换另一种方式的信息。不过,我对PowerShell比较陌生。有人知道如何解决这个错误吗?谢谢大家。
命令来自这里:https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-rm-rest

goqiplq2

goqiplq21#

最新的New-AzADApplicationcmdlet尚未包含Password参数。这就是为什么它抛出下面的错误。

解决方法:

1.首先将Azure AD应用程序New-AzADApplication创建为服务主体New-AzADServicePrincipal

#creating AZ AD Application
 $myApp = New-AzADApplication -DisplayName "<Application Display Name>" -IdentifierUris '<Application Identifier Url>'
 # AD application Service principal 
 New-AzADServicePrincipal -ApplicationId $myApp.ApplicationId.Guid -SkipAssignment

1.使用New-AzADAppCredentialcmdlet添加自定义密码,

#In this way we can add our password
 $SecurePassword  =  ConvertTo-SecureString  -String  "<Your custom password>"  -AsPlainText  -Force  
 New-AzADAppCredential  -ObjectId  "<AD Application object Id>"  -Password  $SecurePassword
zzoitvuj

zzoitvuj2#

我不知道Delliganesh是如何让它与-Password属性一起工作的,因为它不是New-AzADAppCredential的成员。当您这样做时,您要求应用程序为您创建一个新的密钥和机密,您必须记录以便使用它。如果通过管道传输New-AzADAppCredential -ObjectId“xxx。...“设置为Get-Member,您将看到它没有-Password属性。因此,为了让它工作,请执行以下操作:
$myApp = New-AzADApplication -DisplayName“应用程序显示名称”-IdentifierUris“应用程序标识符URL”
New-AzADServicePrincipal -ApplicationId $myApp。AppId
然后,在Azure门户中,转到应用程序注册并找到新应用程序。在它的概述中,您将看到对象ID。复制到剪贴板,然后:
New-AzADAppCredential -ObjectId“xxx.....”
这将生成我前面提到的密钥和秘密,您应该记下。如果您打算长期使用,请注意有效期和时间。

相关问题