Office 365 + Adobe User Provisioning

👤 user_0db36cac 📦 v0.1.0 ⭐ 4.4 ⬇️ 341 下载
🔒 IT运维与安全 免费 🔑 需 API Key

📖 技能介绍


name: office-adobe-user-provision description: 统一开通/管理 Microsoft 365(世纪互联)与 Adobe Creative Cloud 用户的自包含工具。创建、授权、重置密码、删除、查询、批量、自检,CLI/HTTP API 共用同一套 provider。USE WHEN 给XX开账号, 新建用户, 新增用户, 入职开账号, 开Office, 加Office, 开Adobe, 加Adobe, 全家桶, All Apps, 重置密码, 删除用户, 批量开户, 查用户, office365, adobe, M365, Creative Cloud, 处理开户审批.


Office 365 + Adobe 用户开通工具(自包含 skill)

统一的 Python CLI,管理 Microsoft 365(世纪互联版)Adobe Creative Cloud 用户。 本 skill 自带完整代码 + 凭据,解压即用,无需再 clone 原仓库。

0. 前置(每次执行前确认)

pip install -r requirements.txt   # 首次:requests / python-dotenv / flask(需 Python 3.9+)

两种调用方式(等价)

# 方式 A —— 自带 CLI(推荐手敲):oup 会自动定位 skill 目录、加载 .env,可从任意路径调用
./oup adobe inspect zhangsan@example.com
ln -sf "$PWD/oup" /usr/local/bin/oup   # 可选:软链到 PATH 后全局 `oup adobe ...`

# 方式 B —— 直接调脚本:必须先 cd 到 skill 目录,且用 python3(非交互 shell 里 python 可能是 py2)
cd <本 skill 所在目录> && python3 main.py adobe inspect zhangsan@example.com

下文示例统一用 oup;等价于 python3 main.py别用裸 python——很多机器上它指向 Python 2,会直接 SyntaxError。

  • 凭据在本目录 .env —— 已随包含真实生产配置(CLIENT_SECRET / ADOBE_CLIENT_SECRET / SMTP_PASSWORD / DEFAULT_PASSWORD 等)。
  • ⚠️ 安全红线:.env 已被 .gitignore 排除。把本 skill 放进任何 git 仓库前,务必确认 .env 不会被 git add。绝不能 commit/push 到 GitHub。
  • 凭据要换/轮换时,只改 .env,代码不动(config.py 是唯一读取处)。

1. 验证工具可用(开户前必做)

./oup office365 init    # 检查 .env、拉产品、缓存默认 license
./oup adobe init        # 检查 .env、拉 Adobe 产品/profile

两条 init 都正常返回产品列表 = 工具可用。失败先看 .env 与下方 Red Flags。

2. 触发场景 → 动作

用户说 provider 命令
"给 XX 开账号 / 新建用户"(未说平台) 先问 用 AskUserQuestion 问 provider/LDAP/姓名
"新员工 / 入职开账号" both O365 → Adobe 顺序执行
"给 XX 开 Office / 加 Office" office365 见 §3
"给 XX 开 Adobe / 全家桶 / All Apps" adobe 见 §4
"批量开户" 需要列表(CSV/粘贴),逐条执行后汇总

3. Office 365 开通

./oup office365 create <ldap> --display-name "<中文名>" [--product O365_BUSINESS]
  • 未指定 --product → 用 init 缓存的默认 license
  • CLI 自动:创建用户 → 分配 license → 按 .env SMTP 发通知邮件(含初始密码)
  • 成功返回含 iduserPrincipalNamepassword
  • 租户是世纪互联版(entra.microsoftonline.cn / partner.onmschina.cn),不是国际版

4. Adobe 开通

./oup adobe create <ldap>@<domain> [--product cc|ps|acrobat]
  • 默认 = All Apps(全家桶);--product cc/all=全家桶,ps=Photoshop,acrobat=Acrobat Pro
  • 底层 addAdobeID + add group 一次完成邀请与授权
  • 期望返回 {"completed":1,"result":"success"}
  • adobeID 类型走邀请制:新用户收到 Adobe 邀请邮件,接受后登录 https://creativecloud.adobe.com
  • 注意:CLI 会从邮箱前缀自动拆 firstname/lastname(非中文名);adobeID 显示名影响小,需中文名要去 Adobe Admin Console 改

5. 安全红线(执行时遵守)

7w4.net小葱技能站,你的AI助手技能库。

  • 不覆盖已有用户:先 inspect,返回 200/存在 → 用 AskUserQuestion 确认是"重置"还是"跳过",绝不静默覆盖。
  • 初始密码不回显到日志:只出现在通知邮件正文,控制台脱敏。
  • LDAP 不自作主张生成:必须用户明确给出。
  • Adobe 座位不足(error.group.license_quota_exceeded)→ 报告用户,不静默降级到其他产品。

6. 结果验证 + 交付

./oup office365 inspect <ldap> --json
./oup adobe inspect <ldap>@<domain> --json

给用户摘要:账号(LDAP+email)、初始密码/邀请说明、已授权产品、登录入口 (O365: https://portal.partner.microsoftonline.cn · Adobe: https://creativecloud.adobe.com)。

7. 其他命令

./oup <provider> products [--refresh]   # 列/刷新产品
./oup <provider> assign <id> --product <p>
./oup <provider> reset <id>             # 重置密码
./oup <provider> delete <id>            # 删除
./oup <provider> alias <name> <product> # 设产品别名
./oup <provider> selftest               # 端到端自检(会建→授→重置→删临时用户)
python3 -m app.api.server                         # 起 HTTP API(路由镜像 CLI)

provider 别名:office365/o365/m365 同义;adobe/ps 同义。

Red Flags

症状 原因 处理
O365 Insufficient privileges Entra App 权限未管理员同意 Entra → API 权限 → 授予管理员同意
O365 License not available license 池用完 购买/回收,不硬删他人
Adobe error.group.license_quota_exceeded 座位不够 报告用户,不降级
Adobe error.domain.trust.nonexistent federatedID 但域名未声明 改用 adobeID(默认就是)
任一 init 报 missing env .env 缺字段 对照 .env.example 补齐

架构(改 provider 行为前先读)

入口(main.py CLI / app/api/server.py Flask) → app/services/user_service.py(统一业务门面) → app/providers/{office365,adobe}/(对接外部 API)。 扩展功能先加到 user_service.py 再让 CLI/API 暴露。详见 README.mddocs/README_ADOBE.mddocs/README_API.md

🤖 AI 评测

这个 Skill 质量不错,文档写得很详细,中英文都有,看一遍就能上手。功能覆盖全面,管理 Office 365 和 Adobe 用户的基本操作都有,支持命令行和网页 API 两种方式。安全方面的提醒也很到位。主要问题是文档里提到的「oup」快捷命令和配置模板文件没在压缩包里,需要自己补上才能正常使用,否则得用完整路径调用,体验打折扣。

📊 多维度评分

适应性4.4
规范性4.3
有效性4.6
可靠性4.2
可信度4.8

📁 包含文件 (32 个)

📄 README.md 5.2 KB
📄 README.zh-CN.md 5.1 KB
📄 SKILL.md 5.8 KB
📄 _meta.json 146 B
📄 app/__init__.py 0 B
📄 app/api/__init__.py 0 B
📄 app/api/server.py 3.8 KB
📄 app/core/__init__.py 0 B
📄 app/core/config.py 1.1 KB
📄 app/core/logger.py 883 B
📄 app/core/prompt.py 1.4 KB
📄 app/core/state.py 958 B
📄 app/providers/__init__.py 0 B
📄 app/providers/adobe/__init__.py 0 B
📄 app/providers/adobe/auth.py 4.3 KB
📄 app/providers/adobe/client.py 46.6 KB
📄 app/providers/adobe/provider.py 5.6 KB
📄 app/providers/base.py 1.4 KB
📄 app/providers/office365/__init__.py 0 B
📄 app/providers/office365/auth.py 4.3 KB
📄 app/providers/office365/email_sender.py 3.7 KB
📄 app/providers/office365/graph_client.py 9.7 KB
📄 app/providers/office365/license_manager.py 6.9 KB
📄 app/providers/office365/provider.py 7.1 KB
📄 app/providers/office365/user_manager.py 28 KB
📄 app/services/__init__.py 0 B
📄 app/services/provider_factory.py 904 B
📄 app/services/user_service.py 2.8 KB
📄 config.py 5.8 KB
📄 main.py 13.4 KB
📄 requirements.txt 52 B
📄 skill-card.md 2.4 KB