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

胸怀万里世界, 放眼无限未来。这篇文章主要讲述开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online相关的知识,希望能为你提供帮助。
背景当 O365管理员账户开启 MFA以后,会发现自己过去写的计划执行的 Powershell脚本无法正常工作,每次触发时会弹出二次验证的登录界面。
本篇将基于 EXO V2模块,仅限应用的身份验证通过使用 Azure AD应用和自签名证书支持无人参与脚本和自动化方案。
创建方法感谢九叔
官方文档
创建自签证书

# 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

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

文章图片

在 Azure AD 中注册应用程序:
访问AAD Portal⇒ 打开应用注册⇒ 点击新注册,并配置以下信息:
  • 名称 :输入描述性内容。 例如,EXO PowerShell - ITPro
  • 支持的帐户类型 :选择 仅限此组织目录中的帐户
  • 重定向 URI :保留为空
开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

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

文章图片

向应用程序分配 API 权限:
1.选择清单按钮⇒ 查找 requiredResourceAccess关键词,并修改 resourceAppId,id,type的值为以下内容:⇒ 点击保存
"requiredResourceAccess": ["resourceAppId": "00000002-0000-0ff1-ce00-000000000000", "resourceAccess": ["id": "dc50a0fb-09a3-484d-be87-e023b12c6440", "type": "Role"]],

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

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

文章图片

2.授予API权限
选择API权限⇒ 点击授权
开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

文章图片

授权成功显示以下状态
开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

文章图片

将自签证书上传到 Azure AD 应用程序
选择证书和密码⇒ 点击证书⇒ 选择上传
开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

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

文章图片

向应用程序分配 Azure AD 角色(本文只给Exchange Admin角色):
【开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online】访问AAD概览⇒ 选择角色与管理员⇒ 搜索Exchange管理员并点击⇒ 点击添加分配⇒ 搜索并选择前面创建的应用名称⇒ 点击添加
开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

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

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

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

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

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

文章图片

使用方法国际版O365
Connect-ExchangeOnline -CertificateFilePath "C:\\Users\\Jason\\Desktop\\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "< MyPassword> " -AsPlainText -Force) -AppID "APPID" -Organization "contosoelectronics.onmicrosoft.com"

==注意 -Organization 参数必须使用 .onmicrosoft.com 域==
开启MFA的账户使用Powershell免密(使用证书应用身份验证)方式连接Exchange Online

文章图片

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

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

文章图片


    推荐阅读