E5 调用API续订服务:Microsoft 365 E5 Renew X
E5 调用 API 续订服务:Microsoft 365 E5 Renew X
Microsoft 365 E5 Renew X 是一款网页版的 E5 续订服务,其依赖网页浏览器呈现支持用户多端操作,完全将 E5 账户 API 调用托管在了服务器端因此用户无需电脑也可使用。
Microsoft 365 E5 Renew X 由来
Microsoft 365 E5 Renew X 为 Microsoft 365 E5 Web 的升级版,相对于旧版其增强了管理功能且更容易部署,API 调用内核继承于续订桌面版软件 Microsoft 365 E5 Renew Plus。
主要功能
用户端
- 两种可选的调用权限:用户未登录作为守护程序调用(需要客户端密码)、程序以登录用户身份直接调用(需要账户密码)
- API 种类齐全:41/30 个可选的 Microsoft Graph REST API Beta 中的 API(未来可能会继续添加)
- 完全随机的 API 调用模式:从已选定的 API 序列中随机抽取一个或几个进行调用(个数和 API 随机)
- 完全随机的 API 调用时间间隔:随机区段 1000s-2000s 固定
- 完全随机的 API 内容(仅部分 API 支持):发送邮件的内容随机 Onedirve 上传文件的内容随机
- 邮件通知服务:支持设置通知邮箱,调用异常会通过邮件通知无需反复登录查看
部署端
- 平台兼容性:使用 Asp.Net Core 作为跨平台框架增适用于 Windows|Linux|MacOS x64|x86|ARM64|ARM
- 灵活部署:支持开放站点部署和私享部署,私享部署不再强制要求配置 Https 和 OAuth
- 无需数据库:不需要后台数据库支持,前后台一体化程序
- 用户后台管理:可修改用户的 E5 账户数量,以及封删管理
- 系统状态监视:系统占用率一目了然,可控的站点注册通道更容易控制系统用户数量
- 自定义页面:支持自定义 HTML 静态页面,可设置支付宝、微信收款码
- 显示 ICP 备案:支持 ICP 备案文字显示,可在国内备案建站
- 无人值守 运行自动暂停:可自动暂停有错误率过高的账号 API 调用
- 无人值守 自动恢复运行:可定期自动恢复全部账号的 API 调用,防止因微软网络原因触发大量账号停止 API 调用进而导致的账号续期失败
用户端使用教程**(请勿开启账号的双重验证功能)
可用站点
主站
主站:https://e5.sundayrx.net(由 SundayRX 运营)(可登录不可注册)
分站:https://ms-e5-renew.leeskyler.top:11015(由 leeskyler 运营)(已关停)
分站:https://ms-e5-renew-3.eastern.moe(由 leeskyler 运营)(已关停)
自建共享站点
自建共享站:https://ew.chirmyram.com(由 七米蓝 运营)(可登录不可注册)
自建共享站:https://e5.hm0420.cc(由 小冰酱 运营)
自建共享站:https://ms-e5.hm0420.cc(由 小冰酱 运营)
自建共享站:https://e5.xzh.gs(由 XZH 运营)
自建共享站:https://e5.tianli0.top(由 Tinali 运营)
自建共享站:https://renew.lrize.xyz(由 Lrize、 运营)
自建共享站:https://e5zh.xyz(由 z 运营)
1 注册 Azure 应用程序
1.1 应用注册
- 点击登录 Azure 或点击直接进入 Azure 应用注册 ,登录账号使用申请到的 Microsoft 365 E5 的管理员账户(账户名类似XXXX@YYYY.onmicrosoft.com格式)。 2.登录完成后点击右上角的“门户”按钮进入 Azure 管理中心,在搜索栏内输入“应用注册”,点击进入(若应用注册搜索不到请点击此处直接进入)。 3.单击“新注册”按钮 4.配置应用 应用名称随意写、注意可访问性选项选择最后一项、重定向 URL 暂时不填 、完成后点击注册
1.2 配置应用重定向 URL(身份验证)
1.先点击“概述”,然后点击“添加重定向 URL”,进入重定向 URL 配置界面,下图中的应用程序(客户端)ID 即为"客户端 ID"。 2.点击“添加平台”,再点击“移动和桌面应用程序”, 3.继续勾选中第一个 URL,最后点击底部的“配置”,该 URL 为“https://login.microsoftonline.com/common/oauth2/nativeclient”也可手动添加。 4.配置默认客户端类型将应用程序视为公共客户端 点击切换按钮为“是” ,最后点击“保存”按钮保存。
2 配置应用程序的 API 权限(重要)
小白提示:建议选择“委托的权限(用户登录)”该权限类型,调用 API 较多,操作步骤较少简单粗暴,调用成功几率高
注册的应用程序 API 权限类型有两种,其主要区别如下表所示:
权限类型 | 委托的权限(用户登录) | 应用程序权限(非用户登录) |
---|---|---|
官方释义 | 应用程序必须以登录用户身份访问 API | 应用程序在用户未登录的情况下作为后台服务或守护程序运行 |
需要的信息 | 账户名称+账户密码+应用程序(客户端)ID | 账户名称+客户端机密+应用程序(客户端)ID |
功能影响 | 程序中所有 API 均可调用 | 部分 API 权限受限无法调用(官方限制) |
API 权限配置 | 可由 PC 版程序自动配置添加 API 权限 | 必须手动配置 API 权限 |
显示颜色标识 | 蓝色 | 深青色 |
以下是登录或非登录所需要的权限列表:
最后根据所选的 API 权限类型在:2.1 选择“委托的权限(用户登录)”类型的 API或者**2.2 选择“应用程序权限(非用户登录)”类型的 API **中选择性阅读。
2.1 选择“委托的权限(用户登录)”类型的 API
手动配置 API 权限
1.点击“API 权限”-“添加权限”-“Microsoft Graph” 2.选择“委托的权限” 3.根据编辑页面中列出的 API 权限需求表(注意在程序中切换为"登录“)来勾选所对应的 API 权限,全部选择完成后点击"添加权限”。 添加完成的效果如图 如果没有“代表 XXX 授予管理员同意”按钮 说明该账号不是管理员账号 换登管理员账号创建应用
4.最后点击代表 XXX 授予管理员同意,对话框选择“是”(该图包含了当前程序“委托的权限(用户登录)”全部 API 所需要的权限)。
2.2 选择“应用程序权限(非用户登录)”类型的 API
2.2.1 手动配置 API 权限
1.点击“API 权限”-“添加权限”-“Microsoft Graph” 2.选择“应用程序权限” 3.根据编辑页面中列出的 API 权限需求表(注意在程序中切换为"非登录“)来勾选所对应的 API 权限,全部选择完成后点击"添加权限”。 添加完成的效果如图 如果没有“代表 XXX 授予管理员同意”按钮 说明该账号不是管理员账号 换登管理员账号创建应用 4.最后点击代表 XXX 授予管理员同意,对话框选择“是”(该图包含了当前程序“应用程序权限(非用户登录)”全部 API 所需要的权限)。
2.2.2 创建客户端密码
1.点击“证书密码”-“新客户端密码”-“24 个月”-“添加” 2.点击“值”该列中的“复制”(不要复制"ID"列中的值),并立即将该密码保存至电脑,保存的值即为“客户端密码”, 注:该值必须立即保存,退出该页面后将永远无法查看。
3 将账号 API 调用托管至服务
创建一个新的 E5 子账户(可选步骤)
登入 E5 管理员账户进入管理员界面,创建一个新的子账户,使用这个子账户登录程序调用 API。 为什么建议这样做:Microsoft 365 E5 Renew 中的部分 API 包含了写操作,例如邮件和 Onedrive 的 API,这些 API 在随机模式下会生成大量垃圾邮件和文件(虽然单独为此设立了一个文件夹),部分人可能会对此行为非常介意,而且程序频繁的读写可能会对您正常使用账户造成影响,因此不建议使用管理员账户登录。
3.1 进入网站注册并登录账户
从一开始的可用站点,选择站点进入(记住无论使用任何人运营网站显示内容都是基本相同的)
从两种登录中任选一个,这里不建议选择 GitHub 登录(GitHub 的第三方登录很迷经常性崩溃)
第一次登录账户系统会显示注册成功,然后再登录一次即可登录进入系统
3.2 激活您的账户
阅读并同意用户协议,点击激活账户
3.3 添加一个 E5 账户的运行配置信息
在成功登录系统后,页面会自动跳转到“主页”页面,在“账户详情”页面点击“添加运行账号”按钮,前往“账户运行配置”页面
在账户运行配置页面中填写账户信息,且登录调用填写账户密码、非登录调用填写客户端密码,并选择自己选定的调用方式,注意调用方式不要选错了!!! 最后点击“添加运行账号”按钮完成配置。 由于前后台数据同步需要时间,任何添加账户或者修改账户配置信息的操作都不会立即被后台执行。
返回用户页面查看账户信息中的“配置同步状态”,如果显示为“正在运行”表明配置已经上传至后台,修改账户配置成功。 **警示:配置成功了也要定期来看看自己的账户是否在正常运行(虽然有邮件通知服务),但也建议每月查看一次账户状态!!! **
3.4 设置一个通知邮箱(可选)
在任何页面下 点击右上角“用户名-账户设置”,进入个人信息设置 记住你的 UID,出现任何问题请使用这个 UID 与你所选站点的管理员沟通 编辑你的邮箱 并点击保存
部署端**(请勿使用任何 Cookie 缓存加速服务)
服务下载(作为站长务必注意查看主站中“关于”页面中的程序发布时间,及时更新服务程序)
传统方式
下载服务程序源文件(https://sundayrx.lanzoui.com/aW09Lsss75g)
参阅 Skyler 的部署帮助文档(https://docs-1.leeskyler.top)参阅 Gladtbam 的部署帮助文档 (https://www.gladtbam.top/posts/37680)
Docker 方式
**参阅 韩韩的 Docker 版部署帮助文档(https://blog.csdn.net/qq_40605167/article/details/122888580) ****参阅 Gladtbam 的 Docker 版部署帮助文档(https://www.gladtbam.top/posts/22256/) **参阅 Curious 的部署帮助文档 (https://www.bilibili.com/read/cv16338214)
传统方式服务部署
安装运行环境
以下示例可能不完全包含全部操作系统,但无论是哪种系统都要安装 Asp.Net Core 3.1 SDK 支持包,服务程序运行依赖于这个包也只依赖这一个包,只要成功安装了Asp.Net Core 3.1 SDK支持包,服务程序就可以正常运行! 详情请参阅在 Windows、Linux 和 macOS 上安装 .NET
Windows
前往https://dotnet.microsoft.com/download/dotnet/3.1 下载安装最新的 Asp.Net Core 3.1 SDK 安装包
Ubuntu
详情请参阅在 Ubuntu 上安装 .NET SDK 或 .NET 运行时
Ubuntu 21.04
wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
123
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-3.1
1234
CentOS
详情请参阅在 CentOS 上安装 .NET SDK 或 .NET 运行时
CentOS 8sudo dnf install dotnet-sdk-3.1
CentOS 7sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-3.1
MacOS
前往https://dotnet.microsoft.com/download/dotnet/3.1 下载安装最新的 Asp.Net Core 3.1 SDK 安装包
填写配置信息
站点拥有开放和私用两种模式,请根据自己的部署目的来选择对应的教程来阅读!配置文件是 Deploy/Config.xml 务必打开并修改默认的管理员登录密码
开放站点
开放站点必须使用全链路 HTTPS,即便是使用了 Nginx 反向代理也必须设置 HTTPS 为启用状态
Configuration.ShareSite.Enable设置为 true
HTTPS SSL 证书
方式 1:服务程序 Kestrel—(HTTPS)—外部 Internet
准备一个 PFX 格式的 SSL 证书文件,放置在 Deploy 文件夹中
Configuration.HTTPS.Enable设置为 true Configuration.HTTPS.Certificate设置为 PFX 文件的名称带后缀名 Configuration.HTTPS.Password设置为 PFX 文件的密码
方式 2:服务程序 Kestrel—(HTTPS localhost)—Nginx/IIS/Apache—(HTTPS 外部访问域名)—外部 Internet
反向代理服务器部分请自行配置
执行下列两个命令 以创建 localhsot HTTPS 证书 该证书时效为 1 年 dotnet dev-certs https --clean
dotnet dev-certs https --trust
Configuration.HTTPS.Enable设置为 true Configuration.HTTPS.Certificate设置为空(什么都不要填) Configuration.HTTPS.Password设置为空(什么都不要填)
Microsoft OAuth
Github OAuth
SMTP 邮件服务
准备一个可以使用 SMTP 服务发信的邮箱
Configuration.ShareSite.SMTP.Email设置为 发件人邮箱地址 Configuration.ShareSite.SMTP.Password设置为 邮箱密钥 Configuration.ShareSite.SMTP.Host设置为 发件人邮箱的 SMTP 服务器地址 (以 Outlook 为例子是 smtp.office365.com)
私用
在私用模式下不用准备任何配置信息,填写好登录密码端口即可使用!
启用 HTTPS(选配)
若要启用 HTTPS 请在下面选择一种合适的方式来实现
方式 1:服务程序 Kestrel—(HTTPS)—外部 Internet
准备一个 PFX 格式的 SSL 证书文件,放置在 Deploy 文件夹中
Configuration.HTTPS.Enable设置为 true Configuration.HTTPS.Certificate设置为 PFX 文件的名称带后缀名 Configuration.HTTPS.Password设置为 PFX 文件的密码
方式 2:服务程序 Kestrel—(HTTP)—Nginx/IIS/Apache—(HTTPS 外部访问域名)—外部 Internet
反向代理服务器部分请自行配置
Configuration.HTTPS.Enable设置为 false
启动服务程序
在任何系统下,打开命令行定位到程序目录 运行dotnet Microsoft365_E5_Renew_X.dll
命令即可启动
管理员登录
非 OAuth 后台登录(开放或私享部署皆可用)
管理员登录路由 /Admin/Login
默认密码在配置文件 Deploy/Config.xml 中更改
OAuth 认证登录(仅开放部署可用)
设置管理员 OAuth 登录的 OAuthID
使用想要关联的 OAuth 账号(Microsoft/Github)在任意站点登录/注册均可看到此账号的 OAuthID,记录此 ID
通过管理员密码登录自己的站点:管理员功能-用户列表 找到管理员账户 点击“编辑”按钮填写记录的 OAuthID 保存
直接在主登录页面使用与管理员账户关联的 OAuth 账号登录即可