这是我的PowerShell脚本
$connectionDetails = @{
'TenantId' = '****-****'
'ClientId' = '****-****'
'Interactive' = $true
'Scopes' = '****-****'
'RedirectUri' = '****-****'
}
$token = Get-MsalToken @connectionDetails
$accessToken = $token.AccessToken
write-output $accessToken它的错误如下:
AADSTS7000218:请求主体必须包含以下参数:“client_assertion”或“client_secret”
我为什么要犯这个错误?我怎么才能修好它?
发布于 2021-05-18 00:59:41
机密客户端应用程序可以安全地保存应用程序机密,而公共客户端则不安全。
因此,您遇到的错误意味着您的应用程序注册是机密客户端应用程序(在创建它时,您选择了),它要求您提供ClientSecret,但您没有指定它。

所以你有两个选择来解决这个问题。
第一个是在脚本中提供ClientSecret (不修改Azure门户上的任何内容):
$connectionDetails = @{
'TenantId' = '****-****'
'ClientId' = '****-****'
'ClientSecret'= '****-****'
'Interactive' = $true
'Scopes' = '****-****'
'RedirectUri' = '****-****'
}第二个是将您的应用程序注册从机密客户端应用程序更改为Azure门户->上的公共客户端应用程序,您的应用程序注册->清单。(不修改脚本)

Get-MsalToken.ps1还包括以下两个示例:
.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 user@domain.com
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).https://stackoverflow.com/questions/67573253
复制相似问题