Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ ipython_config.py
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# uv
# uv.lock is auto-generated by `uv sync`, no need to commit for tutorial projects
uv.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

Expand Down Expand Up @@ -193,3 +197,5 @@ local_build.py
docs/package.json
docs/package-lock.json
docs/node_modules/


17 changes: 12 additions & 5 deletions 01-tutorials/identity/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
## Agent Identity 解决方案

Agent Identity 专为解决上述问题设计,它不是简单的 OAuth 包装,而是为智能体构建的一套完整的**身份治理基础设施**。
![alt text](image.png)
![alt text](images/image.png)
Agent Identity 把“用户 → 应用 → Agent → 资源”的链路拆开治理,并提供一套可复用的安全构件:

- **Inbound 认证**:对接企业现有 IdP(用户池 / OAuth / SSO 等),让“谁能调用 Agent”可配置、可审计。
Expand All @@ -38,6 +38,7 @@ Agent Identity 把“用户 → 应用 → Agent → 资源”的链路拆开治
|------|------|------|
| **实验1: 用户池认证** | 使用用户池管控智能体访问 (Inbound 认证) | [tutorial-1-userpool-inbound](./tutorial-1-userpool-inbound/) |
| **实验2: 飞书联合登录** | 使用飞书账号作为企业身份源 (IdP 集成) | [tutorial-2-feishu-idp](./tutorial-2-feishu-idp/) |
| **实验3: 飞书文档访问** | 凭证托管实现安全访问飞书文档 (Outbound 凭证托管) | [tutorial-3-feishu-outbound](./tutorial-3-feishu-outbound/) |

## 核心功能

Expand All @@ -55,13 +56,19 @@ identity/
│ ├── README.md # 教程文档
│ ├── main.py # 示例代码
│ ├── pyproject.toml # 依赖配置
│ ├── .env.template # 环境变量模板
│ ├── .env.example # 环境变量模板
│ └── assets/ # 截图和流程图
└── tutorial-2-feishu-idp/ # 实验2: 飞书 IdP 联合登录
├── tutorial-2-feishu-idp/ # 实验2: 飞书 IdP 联合登录
│ ├── README.md
│ ├── main.py
│ ├── pyproject.toml
│ ├── .env.example
│ └── assets/
└── tutorial-3-feishu-outbound/ # 实验3: Outbound 凭证托管 (进阶)
├── README.md
├── main.py
├── pyproject.toml
├── .env.template
├── .env.example
└── assets/
```

Expand All @@ -86,7 +93,7 @@ cd agentkit-samples/01-tutorials/identity
cd tutorial-1-userpool-inbound # 或其他实验

# 3. 配置环境变量
cp .env.template .env
cp .env.example .env
# 编辑 .env 填写配置

# 4. 安装依赖
Expand Down
12 changes: 6 additions & 6 deletions 01-tutorials/identity/tutorial-1-userpool-inbound/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ flowchart TB
- 选择登录属性:用户名 + 手机号
- 点击「确认」

![新建用户池](image-2.png)
![新建用户池](images/image-2.png)

3. **新建客户端**
- 进入用户池详情 → 点击「新建客户端」
Expand All @@ -115,20 +115,20 @@ flowchart TB
- 回调地址:`http://127.0.0.1:8000/api/v1/oauth2callback`
- **记录 Client ID 和 Client Secret**

![新建客户端](image-3.png)
![新建客户端](images/image-3.png)

4. **创建测试用户**
- 在用户池中选择「用户管理」→「新建用户」
- 设置用户名和临时密码

![创建测试用户](image-4.png)
![创建测试用户](images/image-4.png)

### 步骤2: 配置环境变量

复制环境变量模板并填写:

```bash
cp .env.template .env
cp .env.example .env
```

编辑 `.env` 文件:
Expand Down Expand Up @@ -167,8 +167,8 @@ uv run veadk web
5. **授权确认** - 允许应用访问您的信息
6. **进入应用** - 登录成功,可以开始使用 Agent

![登录页面](image-5.png)
![登录成功](image-6.png)
![登录页面](images/image-5.png)
![登录成功](images/image-6.png)

```mermaid
flowchart LR
Expand Down
4,986 changes: 0 additions & 4,986 deletions 01-tutorials/identity/tutorial-1-userpool-inbound/uv.lock

This file was deleted.

20 changes: 10 additions & 10 deletions 01-tutorials/identity/tutorial-2-feishu-idp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ sequenceDiagram

访问 [飞书开放平台](https://open.feishu.cn/) → 点击「创建应用」

![飞书开放平台](image.png)
![飞书开放平台](images/image.png)

2. **创建企业自建应用**
- 应用类型:企业自建应用
Expand All @@ -81,7 +81,7 @@ sequenceDiagram
- **App ID**(客户端 ID)
- **App Secret**(客户端密钥)

![获取应用凭证](image-1.png)
![获取应用凭证](images/image-1.png)

4. **⚠️ 配置安全设置(最关键的一步!)**

Expand All @@ -104,7 +104,7 @@ sequenceDiagram
> - 不要漏掉 `/login/generic_oauth/callback` 路径
> - URL 必须与控制台显示的完全一致,包括协议 `https://`

![配置安全设置](image-2.png)
![配置安全设置](images/image-2.png)

5. **网页应用配置(可选,非必须)**

Expand Down Expand Up @@ -135,7 +135,7 @@ sequenceDiagram
> - **如果不申请这个权限,登录时会报错 `20027 当前应用未申请相关权限`**
> - 两个必须权限缺一不可!

![添加权限](image-3.png)
![添加权限](images/image-3.png)

7. **发布应用**

Expand Down Expand Up @@ -170,8 +170,8 @@ sequenceDiagram

> 保存后,页面会显示「重定向 URI」,确认这个 URL 已经添加到飞书应用的「安全设置」中。

![配置飞书 IdP](image-4.png)
![保存配置](image-5.png)
![配置飞书 IdP](images/image-4.png)
![保存配置](images/image-5.png)

配置完成后,用户池登录页面将显示「使用飞书登录」按钮。

Expand All @@ -184,7 +184,7 @@ sequenceDiagram
cd 01-tutorials/identity/tutorial-2-feishu-idp

# 复制环境变量模板
cp .env.template .env
cp .env.example .env

# 编辑 .env 填写配置(与实验1相同)
```
Expand Down Expand Up @@ -219,8 +219,8 @@ uv run veadk web
4. 返回应用后,点击 **「允许访问」**
5. 成功登录,开始与 Agent 对话

![飞书登录按钮](image-6.png)
![飞书授权页面](image-7.png)
![飞书登录按钮](images/image-6.png)
![飞书授权页面](images/image-7.png)

## 测试提示词

Expand Down Expand Up @@ -278,7 +278,7 @@ uv run veadk web

完成联合登录后,如果需要让 Agent **代表用户**安全访问飞书文档等外部资源,请继续:

→ [实验3: Outbound 凭证托管 - 让 Agent 安全访问飞书文档](../tutorial_3_feishu_outbound/)
→ [实验3: Outbound 凭证托管 - 让 Agent 安全访问飞书文档](../tutorial-3-feishu-outbound/)

在实验3中,你将学习:
- 如何让 Agent 获取用户授权的飞书 Token
Expand Down
Loading
Loading