微软Office 365 E5 开发人员计划
申请加入微软 Office 365 E5 开发人员计划
前言
最近闲来无事,申请了个 Office E5 订阅,对我而言有用的是 5T OneDrive(可扩容 25T)
订阅有效期 90 天,证明是开发者即可续订。一共可以开 25 个子号。
至于证明是开发者,只要触发了 OneDrive 的 API 就可以证明是开发者了,当然不仅限于 OneDrive,还算是比较简单的。
申请过程
Office 开发人员中心链接:https://developer.microsoft.com/zh-cn/office/dev-program
打开链接就是大大的 立即加入 几个大字 (注:此过程也许国内网络访问并不友好)
点 立即加入 就弹出填写信息的界面,如果你没有登录账号,就会让你登录。
填写信息正常填即可
到这里就 OK 了,可以订阅我们需要的 E5 了
点击 设置订阅
填写你要设置的开发者账号的账号和密码
账号是一个邮箱的形式,用户名可以随意,域需要唯一
填好后点 继续 就完成了,成功订阅了 E5。
管理 E5 订阅
管理地址:https://portal.office.com/AdminPortal/Home
需要用你后面填的开发者账号登录
修改 OneDrive 容量
修改默认容量
https://admin.onedrive.com/?v=StorageSettings
登录后将 1024G 改为 5120G 即可
注:此项设置需要一定时间生效。
修改已有账号的容量
需要用到 PowerShell
下次再说
扩容 25T
扩容条件
- 有超过 5 个订阅的用户(即子号)
- OneDrive 网盘使用量超过 90%,子号亦可
提交扩容工单
登录后台-支持-提交工单 阐明你的使用量以及扩容的需求,等一段时间以后应该会收到技术人员会的电话,告诉你已经反馈到后台,让你等待大概 1 天即可升级完成。 工单例:
标题:申请扩容 OneDrive 内容:你好!请帮我把admin@yaohuo.onmicrosoft.com的 OneDrive 的容量扩容到 25T。谢谢! 附件:截你的 OneDrive 使用量将满的图
其他
OneList——简单好用的 OneDrive 目录浏览程序:https://blog.haoduck.com/302.html
Demo:https://disk.gs
通过 Docker 部署 Office E5 开发者订阅续期脚本实现自动续期
首先你要有一个 Office E5 开发者订阅,如果没有,你可以参考这篇文章申请一个。https://haoduck.com/305.html
其他基础的问题就不多说了,直接开始
一、注册 Azure 应用
记得是用订阅下的子账号申请,也就是默认域名为@xxxx.onmicrosoft.com
的账号。
登录 Azure,https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
注册 azure 应用,确保应用有以下权限: files: Files.Read.All、Files.ReadWrite.All、Sites.Read.All、Sites.ReadWrite.All
user:User.Read.All、User.ReadWrite.All、Directory.Read.All、Directory.ReadWrite.All
mail: Mail.Read、Mail.ReadWrite、MailboxSettings.Read、MailboxSettings.ReadWrite
重定向 URL 写http://localhost
即可,如果你还需要用其他 Onedrive 列表程序,可以把它们的重定向 URL 都写上去,比如这些。https://haoduck.com/578.html 注册后一定要再点代表 xxx 授予管理员同意,否则 outlook api 无法调用
二、安装 Rclone 和获取refresh_token
Rclone 官网下载地址:https://rclone.org/downloads/
Linux 下可以直接用官方一键脚本curl https://rclone.org/install.sh | sudo bash
怎么安装就不多说了,直接到配置这一块
配置Onedrive
,其实也没什么好说的,就不上图了
到最后一步完成了,就能看到refresh_token
了,是0.A
开头的一长串,注意不要复制多了,也不要复制少了。
三、使用 Docker 镜像
docker run -dit --name e5renew --restart always \-e id="你的id" \-e secret="你的secret" \-e refresh_token="你的refresh_token" \haoduck/e5renew
平均每隔 6 小时调用 API 一次,这个 6 小时不是固定的,随机范围在十几分钟到 2 个多小时
三、一键脚本
bash <(curl -sL https://raw.githubusercontent.com/haoduck/E5Renew/main/onekey.sh)`
或
`bash <(curl -sL https://cdn.jsdelivr.net/gh/haoduck/E5Renew@main/onekey.sh)
四、查看运行日志
Docker 的运行日志docker logs e5renew
脚本的定时日志(等下次运行了才会有)docker exec e5renew cat /work/crontab.log
其中,docker logs e5renew
里的e5renew
是容器名,如果你有自定义容器名,对应修改命令。查看定时日志的命令同理。
其他
代码来源是在 Github 已经删掉的 AutoApi 项目
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.wtf(由 XZH 运营)
自建共享站:https://e5.tianli0.top(由 Tinali 运营)
自建共享站:https://renew.lrize.xyz(由 Lrize、 运营)
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)
传统方式服务部署 安装运行环境 以下示例可能不完全包含全部操作系统,但无论是哪种系统都要安装 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 运行时
CentOS 详情请参阅在 CentOS 上安装 .NET SDK 或 .NET 运行时
CentOS 8 sudo dnf install dotnet-sdk-3.1 CentOS 7 sudo 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 账号登录即可