1、前言
微软的文档真的又乱又稀碎,光找文档就就找了挺久的,对接完后,其实就是完整的oAuth2的授权流程
主题文章参考:Authenticate an IMAP, POP or SMTP connection using OAuth
2、Azure注册oAuth2应用
2.1、找到应用注册
azure网址:https://portal.azure.com
注册就自己搞定了,需要visa或者master card才可以注册成功。
进入找到Azure 服务,点击更多服务,进入如下图所示的界面,找到应用注册
2.2、注册应用
1、选择任何组织目录(任何 Microsoft Entra ID 租户 - 多租户)中的帐户和个人 Microsoft 帐户(例如 Skype、Xbox)
2、选择web,填入你要的回调地址,这里只是演示,写本地的地址https://localhost,地址只能是https
3、点注册即可
2.3、添加客户端凭证
1、点击添加客户端密码
2、点击新客户端密码
3、输入说明和选择期限
生成了密钥的值,后续使用
2.4、添加权限
选择左侧的api权限项,点击添加权限,在右侧点击Microsoft Graph,点击委托权限,分别搜索,IMAP、SMTP、POP添加下拉文件夹下的权限,即权限:IMAP.AccessAsUser.All、SMTP.Send、POP.AccessAsUser.All,完成应用的全部设置
3、oAuth2授权流程
3.1、构建授权链接
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=你注册应用的id
&response_type=code&redirect_uri=注册应用中填写的回调网址
&response_mode=query&scope=https%3a%2f%2fblue-sea-697d.quartiers047.workers.dev%3a443%2fhttps%2foutlook.office.com%2fIMAP.AccessAsUser.All+https%3a%2f%2fblue-sea-697d.quartiers047.workers.dev%3a443%2fhttps%2foutlook.office.com%2fPOP.AccessAsUser.All+https%3a%2f%2fblue-sea-697d.quartiers047.workers.dev%3a443%2fhttps%2foutlook.office.com%2fSMTP.Send+offline_access&state=12345
这里的你注册应用的id
在应用的概述tab找到应用程序(客户端) ID就是
我测试的授权地址为:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=2ff805be-946e-4d7e-9abb-90a74e9f18fc&response_type=code&redirect_uri=https%3a%2f%2fblue-sea-697d.quartiers047.workers.dev%3a443%2fhttps%2flocalhost&response_mode=query&scope=https%3a%2f%2fblue-sea-697d.quartiers047.workers.dev%3a443%2fhttps%2foutlook.office.com%2fIMAP.AccessAsUser.All