Get-MsalToken 错误 AADSTS7000218:请求正文必须包含以下参数:“client_assertion”或“client_secret”

2023-11-26

这是我的 PowerShell 脚本

$connectionDetails = @{
    'TenantId'    = '****-****'
    'ClientId'    = '****-****'
    'Interactive' = $true
    'Scopes' = '****-****'
    'RedirectUri' = '****-****'
}

$token = Get-MsalToken @connectionDetails

$accessToken = $token.AccessToken

write-output $accessToken

其错误如下:

AADSTS7000218:请求正文必须包含以下参数:“client_assertion”或“client_secret”

为什么我会收到此错误?我该如何修复它?


请参见公共客户端和机密客户端应用程序之间的差异.

机密客户端应用程序可以安全地保守应用程序的秘密,而公共客户端则不然。

因此,您遇到的错误意味着您的应用程序注册是机密客户端应用程序(当您创建它时,您选择Web)这需要您提供ClientSecret,但你没有指定它。

enter image description here

所以你有两个选择来解决它。

第一个是提供ClientSecret在你的脚本中(不要修改 Azure 门户上的任何内容):

$connectionDetails = @{
    'TenantId'    = '****-****'
    'ClientId'    = '****-****'
    'ClientSecret'= '****-****'
    'Interactive' = $true
    'Scopes' = '****-****'
    'RedirectUri' = '****-****'
}

第二个是将您的应用程序注册从机密客户端应用程序更改为 Azure 门户上的公共客户端应用程序 -> 您的应用程序注册 -> 清单。 (不要修改你的脚本)

enter image description here

The 获取MsalToken.ps1还包括 2 个示例:

.EXAMPLE
    PS C:\>Get-MsalToken -ClientId '00000000-0000-0000-0000-000000000000' -TenantId '00000000-0000-0000-0000-000000000000' -Interactive -Scope 'https://graph.microsoft.com/User.Read' -LoginHint [email protected]
    Force interactive authentication to get AccessToken (with MS Graph permissions User.Read) and IdToken for specific Azure AD tenant and UPN using client id from application registration (public client).

.EXAMPLE
    PS C:\>Get-MsalToken -ClientId '00000000-0000-0000-0000-000000000000' -ClientSecret (ConvertTo-SecureString 'SuperSecretString' -AsPlainText -Force) -TenantId '00000000-0000-0000-0000-000000000000' -Scope 'https://graph.microsoft.com/.default'
    Get AccessToken (with MS Graph permissions .Default) and IdToken for specific Azure AD tenant using client id and secret from application registration (confidential client).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Get-MsalToken 错误 AADSTS7000218:请求正文必须包含以下参数:“client_assertion”或“client_secret” 的相关文章

随机推荐