O365管理系统: 一个以java语言开发的基于Microsoft Graph Restful API的多全局管理系统

O365管理系统是一个以java语言开发的基于Microsoft Graph Restful API的多全局管理系统,理论上支持任何Office全局的管理(A1,A3,A1P,E3,E5等),你可以很方便的使用它来批量添加,批量删除,批量启用,批量禁用,搜索和查看用户,绑定解绑域名,生成邀请码,邀请朋友注册,提升和收回管理员权限,更新密钥,查看订阅,分配订阅(创新用户时),查看单全局或多全局报告,登录同时需要微信许可(此功能默认关闭)

最低环境需求

类型 -
CPU 1C
RAM 0.75G
硬盘 5GB

功能介绍

首页预览

alt 首页 登录后请根据首页介绍,先创建APP,然后赋予以下权限,需要注意的是,API权限请务必选择应用程序

API名 大致作用
Application.ReadWrite.All 用于新增密钥的功能
Application.ReadWrite.OwnedBy 用于新增密钥的功能
Directory.ReadWrite.All 用于订阅,域名,用户管理的功能
RoleManagement.ReadWrite.Directory 用于特权角色的管理
User.ManageIdentities.All 用于用户的管理
User.ReadWrite.All 用于用户的管理
Reports.Read.All 用于生成Onedrive,Exchange详细报告
Sites.FullControl.All 用于检验SPO
Domain.ReadWrite.All 用于域名操作
API名 大致作用
Application.ReadWrite.All 用于新增密钥的功能
Application.ReadWrite.OwnedBy 用于新增密钥的功能
Directory.ReadWrite.All 用于订阅,域名,用户管理的功能
RoleManagement.ReadWrite.Directory 用于特权角色的管理
User.ManageIdentities.All 用于用户的管理
User.ReadWrite.All 用于用户的管理
Reports.Read.All 用于生成Onedrive,Exchange详细报告
Sites.FullControl.All 用于检验SPO
Domain.ReadWrite.All

[配置和报告] -> Office配置

  • 新增
    将刚才得到的3个要素填入 alt 填入APP信息
    PS 配置根据备注排序,如果你想要有序,可以设置备注
  • 删除修改刷新不做介绍
  • 导入
    如果不想麻烦,也可以使用导入功能,先下载模板,填写好信息后,可以批量导入
    alt 导入
  • 导出
    将所有APP信息导出为csv文件
  • 切换全局
    选中一行后,点击切换全局,O365很多的TAB工作的前提是需要有一个当前全局为是的APP,被选中的行将会以浅蓝色标记
    alt 切换全局
  • 更新密钥
    将创建一个过期时间为2099-12-31的新密钥,成功后会替换现有密钥,若不想更改现有密钥,请取消
    alt 更新密钥
  • 校验
    校验只验证APP 3要素的正确性(不包含权限的校验)
  • 生成报告
    选一行后,点击此按钮,会生成总览报告,此报告可以在Office总览报告中找到
    alt 更新密钥
  • On/Off
    显示/隐藏APPID和密钥
  • 帮助
    有什么问题,你可以尝试点击帮助了解更多

[用户] -> 管理用户

alt 用户首页

  • 添加
    alt 添加

  • 批量添加
    批量添加有2种策略,一种是随机5字符,另外一种是自增长数字
    alt 批量添加

  • 删除刷新不做介绍

  • 启用禁用
    分别为启用和禁用选中的用户

  • 提权撤权
    分别为提升或撤销一个用户为全局管理员
    同时他们支持更多角色的权限赋予与收回, 你可以在[配置和报告] -> 系统配置中修改关键字DEFAULT_ADMIN_ROLE_ID的值为其他的admin的role,比如通过这种方式,你可以提升一个用户为用户管理员
    alt 批量添加

  • 域名
    你可以绑定或者解绑全局上的非默认域名,删除域名时是异步删除,如果域名依赖越多则花费越久,最多需要花费24小时,MS原话如下



    Prior to calling forceDelete, you must update or remove any references to Exchange as the provisioning service
    It can take up to 24 hours to remove a domain. Domains with many dependencies tend to take longer than others


    PS: 如果域名托管在CF并且在O365系统中配置了正确的CF_AUTH_EMAIL和CF_AUTH_KEY,那么绑定域名时程序会自动添加TXT记录到CF并进行认证,无需人工干涉,实现域名一键绑定

  • 搜索
    可以搜索名字和邮箱前缀

  • 帮助
    有什么问题,你可以尝试点击帮助了解更多

[用户] -> 查看特权用户

alt 查看特权用户

[许可证] -> 查看许可证

alt 查看许可证

[配置和报告] -> Office总览报告

  • 手动执行
    生成所有全局的总览报告,此报告包含总用户数,管理员数和SPO可用性
    alt 查看许可证
    • 灰色代表无效全局
    • 红色代表代表全局无管理员或者无管理员存活的全局
    • 橙色代表SPO为0的全局
  • 下载Exchange报告
    生成选中全局的Exchange报告,此报告包含了所有用户的邮件使用情况
  • 下载Onedrive报告
    生成选中全局的Onedrive报告,此报告包含了所有用户的Onedrive使用情况
    由于微软更新了隐私策略,以上2个报告中的用户的信息和url会以乱码代替,如果想要查看真实的用户,请以管理员账号登录https://admin.microsoft.com/#/homepage 选择设置->组织设置->报告,取消勾选 在所有报告中,显示用户、组和站点的已取消识别的名称即可显示真实信息

[配置和报告] -> 系统配置

WX_CALLBACK_IND
WX_CALLBACK_TOKEN
WX_CORPID
WX_CORPSECRET
WX_AGENTID
WX_CALLBACK_AESKEY
以上6个参数的设置请参考word文档, https://github.com/vanyouseea/o365/blob/master/docs/%E9%85%8D%E7%BD%AE%E5%BE%AE%E4%BF%A1%E5%93%8D%E5%BA%94.docx
请谨慎使用,此6个变量的配置非必须,只是为了增强管理员账号的安全,如果未通过,请立即把WX_CALLBACK_IND设为N,避免把自己关外面

Docker

基于v1.9.0版的docker

docker pull vanyouseea/o365
docker run -d -p 9527:9527 vanyouseea/o365

#如果你之前使用过,但是不想手动迁移数据,那么可以这样做,/root/o365/data是你本地的文件夹
#建议使用这种方法,以后你如果想要迁移数据,直接拷贝/root/o365/data文件就行了
docker run -d -p 9527:9527 -v /root/o365/data:/data vanyouseea/o365

手动构建master分支的docker

docker build -t vanyouseea/o365 https://github.com/vanyouseea/o365.git#master