开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

网友投稿 256 2022-10-02

开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

背景

当 O365管理员账户开启 MFA以后,会发现自己过去写的计划执行的 Powershell脚本无法正常工作,每次触发时会弹出二次验证的登录界面。

本篇将基于 EXO V2模块,仅限应用的身份验证通过使用 Azure AD应用和自签名证书支持无人参与脚本和自动化方案。

创建方法

以下操作的 前提条件: 必须拥有O365的管理员权限

创建自签证书

# Create certificate $mycert = New-SelfSignedCertificate -DnsName "ITPro.cc" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange # Export certificate to .pfx file $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password $(ConvertTo-SecureString -String "P@ssw0Rd1234" -AsPlainText -Force) # Export certificate to .cer file $mycert | Export-Certificate -FilePath mycert.cer

在 Azure AD 中注册应用程序:

名称 :输入描述性内容。 例如,EXO PowerShell - ITPro 支持的帐户类型 :选择 仅限此组织目录中的帐户 重定向 URI :保留为空

向应用程序分配 API 权限:

"requiredResourceAccess": [ { "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", "resourceAccess": [ { "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", "type": "Role" } ] } ],

2.授予API权限

将自签证书上传到 Azure AD 应用程序

向应用程序分配 Azure AD 角色(本文只给Exchange Admin角色):

使用方法

国际版O365与世纪互联版本执行的参数不一样

国际版O365

Connect-ExchangeOnline -CertificateFilePath "C:\Users\Jason\Desktop\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "" -AsPlainText -Force) -AppID "APPID" -Organization "contosoelectronics.onmicrosoft.com"

==注意 -Organization 参数必须使用 .onmicrosoft.com 域==

世纪互联版

Connect-ExchangeOnline -CertificateFilePath "/Users/Jason/Code/002_Powershell/Exchange/mycert.pfx" -CertificatePassword (ConvertTo-SecureString -String "" -AsPlainText -Force) -AppID "APPID" -Organization "xxxx.partner.onmschina.cn" -ExchangeEnvironmentName O365China

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Microsoft Graph API 速报:Teams Graph API即将计费
下一篇:Java实现监听文件变化的三种方案详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~