powershell Connect-ExchangeOnline未经授权

bf1o4zei  于 2022-11-10  发布在  Shell
关注(0)|答案(2)|浏览(169)

我正在更新我们的PowerShell脚本,以使用更安全的连接方法。当我尝试的时候,我得到一个错误,显示“未经授权”
PS X:>连接-交换在线-AppID$客户端ID-认证指纹$Thumbprint-组织$组织在C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\3.0.0\netFramework\ExchangeOnlineManagement.psm1:730字符:21处未经授权

  • 抛出$_.Exception;
  • CategoryInfo:操作停止:(:)[],未授权访问异常
  • FullyQualifiedErrorID:未经授权

我在下面的屏幕截图中突出显示的是我应该用于组织参数的内容吗?[截图]
如何修复未经授权的错误?
谢谢

gjmwrych

gjmwrych1#

我同意*@scottwtang*,如果您的应用程序没有所需的角色和权限,则会出现未授权错误。

  • 我试图在我的环境中复制相同的内容,结果如下:*

我使用了您上一个问题中的以下脚本来生成证书:

$CN = "GraphApp" 
$cert=New-SelfSignedCertificate -Subject "CN=$CN" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -NotAfter (Get-Date).AddYears(5)
$Thumbprint = $Cert.Thumbprint
Get-ChildItem Cert:\CurrentUser\my\$Thumbprint | Export-Certificate -FilePath $env:USERPROFILE\Downloads\GraphApp.cer
Write-Output "$Thumbprint <- Copy/paste this (save it)"

输出:

现在,我将此证书上传到Azure AD应用程序,如下所示:

**$organization**参数需要传入您的域名。你可以在这里找到:

  • 转到Azure门户->Azure Active Directory->概述->主域*

当我运行以下脚本连接Exchange Online时,我收到了**Access denied**错误,如下所示:

$clientId="47xxxd8-8x2x-4xxx-bxx7-30cxxxxx8"
$thumbPrint="E4A0F6C6B85EBFxxxxxCD91B5803F88E5"
$organization="xxxxxxxx.onmicrosoft.com"

Connect-ExchangeOnline -AppId $clientId -CertificateThumbprint $thumbPrint -Organization $organization

输出:

解决错误,您需要在应用程序中添加**API permissionDirectory**角色:

新增权限一定要管理员同意,如下所示:

现在,我在应用程序中添加了Exchange管理员角色,如下所示:

  • 转到Azure门户->Azure Active Directory->角色和管理员->Exchange管理员->添加工作分配*

成功分配角色可能需要几分钟,如下所示:

现在我通过再次运行脚本连接到Exchange Online,并运行示例命令Get-EXOMailbox -PropertySets Archive进行验证,成功地获得了响应,如下所示:

$clientId="47xxxd8-8x2x-4xxx-bxx7-30cxxxxx8"
$thumbPrint="E4A0F6C6B85EBFxxxxxCD91B5803F88E5"
$organization="xxxxxxxx.onmicrosoft.com"

Connect-ExchangeOnline -AppId $clientId -CertificateThumbprint $thumbPrint -Organization $organization

输出:

因此,请确保为您的应用程序分配修复错误所需的角色权限

ssgvzors

ssgvzors2#

遗憾的是,Exchange.ManageAsApp不再出现在API权限中

相关问题