我有一个Powershell脚本,它应该自动运行(守护进程(,需要向Azure AD进行身份验证。我有一个"工作"脚本,可以获得正确的访问令牌,但这需要我手动输入用户名/密码。如何通过配置用户名/密码来执行脚本
已经做了什么:
- 在Azure中创建了一个用户,并且已经分配了Office许可证(此是我必须输入用户名/密码的用户(
- 已完成应用程序注册(中的$clientid和$clientsecret下面的代码(
- 使用MSAL。PS版本4.10.0.2
$redirecturi = "<redirect url>"
$redirecturi
$scope = '<scope>'
$sec = ConvertTo-SecureString $clientsecret -AsPlainText -Force
$app = New-MsalClientApplication -ClientId $clientid -ClientSecret $sec -RedirectUri $redirecturi -TenantId $tenantid
$az_access_token = $app | get-msaltoken -Scope $scope -LoginHint $loginhint | select -expand accesstoken
应用程序凭据最适合像您这样的守护程序应用程序。如果您仍然需要作为用户进行身份验证,那么您可以选择不推荐的ROPC流。
恐怕您将不得不使用MSAL手动输入凭据。PS,这样它们就可以缓存并在以后静默使用,因此除非您更换或使用自定义工具,否则这里没有太多自动化。