Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵月辉
/
fastgpt-migrated
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
8b29aae2
authored
Mar 27, 2025
by
Archer
Committed by
GitHub
Mar 27, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update sso doc (#4358)
parent
8999dc5b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
286 additions
and
289 deletions
+286
-289
docSite/assets/imgs/teammode.png
+0
-0
docSite/content/zh-cn/docs/development/upgrading/492.md
+7
-18
docSite/content/zh-cn/docs/guide/admin/sso.md
+269
-267
docSite/content/zh-cn/docs/guide/admin/teamMode.md
+10
-4
No files found.
docSite/assets/imgs/teammode.png
0 → 100644
View file @
8b29aae2
265 KB
docSite/content/zh-cn/docs/development/upgrading/492.md
View file @
8b29aae2
...
...
@@ -4,35 +4,24 @@ description: 'FastGPT V4.9.2 更新说明'
icon
:
'
upgrade'
draft
:
false
toc
:
true
weight
:
79
9
weight
:
79
8
---
## 更新指南
v4.9.2 升级需要迁移已有的 SSO 相关配置。
### SSO 迁移
### 影响范围
使用了 SSO 或成员同步的商业版用户,并且是对接
`钉钉`
、
`企微`
的,需要迁移已有的 SSO 相关配置:
使用:
参考:
[
SSO & 外部成员同步
](
/docs/guide/admin/sso.md
)
中的配置进行
`sso-service`
的部署和配置。
1.
钉钉
2.
飞书
3.
企微
接入 FastGPT 的系统,需要额外部署 FastGPT-sso-service 中转镜像服务。
### 迁移步骤
参考:
[
SSO & 外部成员同步
](
/docs/guide/admin/sso.md
)
中的配置进行迁移。
1.
将原商业版后台中的相关配置项复制备份出来(以企微为例,将 AppId, Secret 等复制出来)
1.
先将原商业版后台中的相关配置项复制备份出来(以企微为例,将 AppId, Secret 等复制出来)再进行镜像升级。
2.
参考上述文档,部署 SSO 服务,配置相关的环境变量
3.
如果原先使用
组织架构和用户同步功能
,在商业版后台切换团队模式为“同步模式”
3.
如果原先使用
企微组织架构同步的用户
,在商业版后台切换团队模式为“同步模式”
!
[
](/imgs/sso_update1.png)
## 重要提示
## 重要更新
-
知识库导入数据 API 变更,增加
`chunkSettingMode`
,
`chunkSplitMode`
,
`indexSize`
可选参数,具体可参考
[
知识库导入数据 API
](
/docs/development/openapi/dataset
)
文档。
## 🚀 新增内容
1.
知识库分块优化:支持单独配置分块大小和索引大小,允许进行超大分块,以更大的输入 Tokens 换取完整分块。
...
...
docSite/content/zh-cn/docs/guide/admin/sso.md
View file @
8b29aae2
...
...
@@ -6,16 +6,17 @@ draft: false
toc
:
true
weight
:
707
---
## 外部成员系统接入设计
### 介绍
如果你不需要用到 SSO/成员同步功能,或者是只需要用 Github、google、microsoft、公众号的快速登录,可以跳过本章节。本章适合需要接入自己的成员系统或主流 办公IM 的用户。
## 介绍
为了方便地接入
**外部成员系统**
,FastGPT 提供一套接入外部系统的
**标准接口**
,以及一个 FastGPT-SSO-Service 镜像作为
**适配器**
。
可以实现:
通过这套标注接口,你可以
可以实现:
1.
SSO 登录
2.
成员和组织架构同步(下面都简称成员同步)
1.
SSO 登录
。从外部系统回调后,在 FastGPT 中创建一个用户。
2.
成员和组织架构同步(下面都简称成员同步)
。
**原理**
...
...
@@ -23,25 +24,49 @@ FastGPT-pro 中,有一套标准的SSO 和成员同步接口,系统会根据
FastGPT-SSO-Service 是为了聚合不同来源的 SSO 和成员同步接口,将他们转成 fastgpt-pro 可识别的接口。
### 内置的通用协议/IM
## 系统配置教程
### 1. 部署 SSO-service 镜像
使用 docker-compose 部署:
```
yaml
fastgpt-sso
:
image
:
registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name
:
fastgpt-sso
restart
:
always
networks
:
-
fastgpt
environment
:
-
SSO_PROVIDER=example
-
AUTH_TOKEN=xxxxx
# 鉴权信息,fastgpt-pro 会用到。
# 具体对接提供商的环境变量。
```
根据不同的提供商,你需要配置不同的环境变量,下面是内置的通用协议/IM:
{{
<
table
"
table-hover
table-striped-columns
"
>
}}
| 协议/功能 | SSO
支持
| 成员同步支持 |
| 协议/功能 | SSO | 成员同步支持 |
|----------------|----------|--------------|
| 飞书 | 是 | 是 |
| 企业微信
(企微)
| 是 | 是 |
| 企业微信
| 是 | 是 |
| 钉钉 | 是 | 否 |
| Saml2.0 | 是 | 否 |
| Oauth2.0 | 是 | 否 |
{{
<
/
table
>
}}
### 系统配置教程
### 2. 配置 fastgpt-pro
#### 1. 配置环境变量
首先确认外部成员系统是否可以通过中转镜像进行接入,如果可以,则可以直接部署,如果不可以,请看本文最后的“如何对接非标准系统”。
环境变量中的
`EXTERNAL_USER_SERVICE_BASE_URL`
为内网地址,例如上述例子中的配置,环境变量应该设置为
1.
首先需要参考后文的
**通用外部成员系统配置**
进行配置。
```
yaml
EXTERNAL_USER_SERVICE_BASE_URL=http://fastgpt-sso:3000
EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx
```
2.
在商业版后台配置按钮文字,图标等。
####
2. 在商业版后台配置按钮文字,图标等。
{{
<
table
"
table-hover
table-striped-columns
"
>
}}
|
<div
style=
"text-align:center"
>
企业微信
</div>
|
<div
style=
"text-align:center"
>
钉钉
</div>
|
<div
style=
"text-align:center"
>
飞书
</div>
|
...
...
@@ -49,185 +74,27 @@ FastGPT-SSO-Service 是为了聚合不同来源的 SSO 和成员同步接口,
| !
[
企业微信
](
/imgs/sso15.png
)
| !
[
钉钉
](
/imgs/sso16.png
)
| !
[
飞书
](
/imgs/sso17.png
)
|
{{
<
/
table
>
}}
3.
设置“团队模式”为“同步模式”。
#### 3. 开启成员同步(可选)
如果需要同步外部系统的成员,可以选择开启成员同步。团队模式具体可参考:
[
团队模式说明文档
](
/docs/guide/admin/teamMode
)
!
[
](/imgs/sso1.png)
!
[
](/imgs/sso1.png)
#### 可选配置
####
4.
可选配置
1.
自动定时成员同步
设置 fastgpt-pro 环境变量则可开启自动成员同步
设置 fastgpt-pro 环境变量则可开启自动成员同步
```
bash
SYNC_MEMBER_CRON
=
"0 0 * * *"
# Cron 表达式,每天 0 点执行
```
### 标准接口文档
#### SSO
!
[
](/imgs/sso2.png)
FastGPT 提供如下标准接口支持:
1.
example.com/getAuthURL 获取鉴权重定向地址
2.
example.com/login/oauth/getUserInfo?code=xxxxx 消费 code,换取用户信息
##### GET /login/oauth/getAuthURL
该接口用于获取第三方用户系统的oauth登陆地址。
登陆地址中需要的参数,包括 client_id, secret 等都应该拼接好。
redirec_uri 应该为 FastGPT 前端服务的 /login/provider 路径:
https://fastgpt.cn/login/provider
返回值类型如下(JSON):
```
JSON
{
"success": true,
"message": "错误信息",
"authURL": "https://example.com/somepath/login/oauth?redirect_uri=https%3A%2F%2Ffastgpt.cn%2Flogin%2Fprovider%0A"
}
```
重定向地址 redirect_uri 应该是 fastgpt 的 /login/provider 路径。
例如 fastgpt.example.com/login/provider (提示:需要进行 urlencode)
##### GET /login/oauth/getUserInfo?code=xxxxxx
该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。
https://oauth.example/login/oauth/getUserInfo?code=xxxx
返回如下信息(JSON):
```
JSON
{
"success": true,
"message": "错误信息",
"username": "用户名,用于注册 fastgpt,全局唯一的, fastgpt不会自动拼接任何前缀",
"avatar": "头像,可以为空",
"contact": "联系方式,最好不为空"
}
```
#### 成员同步
成员同步分为
**人员同步**
和
**组织同步**
,FastGPT 会向同步服务依次发送
**组织同步**
和
**人员同步**
两个请求。
1.
org/list 同步所有的组织
2.
user/list 同步所有的人员
上述两个接口通过 header Authorization 中的 Bearer xxxxx 方式进行鉴权。
##### 组织同步
1.
同步组织 /org/list
GET https://example.com/org/list
⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。
返回值类型:
```
typescript
type
OrgListResponseType
=
{
message
?:
string
;
// 报错信息
success
:
boolean
;
orgList
:
{
id
:
string
;
// 部门的唯一 id
name
:
string
;
// 名字
parentId
:
string
;
// parentId,如果为根部门,传空字符串。
}[];
}
```
##### 人员同步
1.
同步用户 /user/list
GET https://example.com/user/list
返回值类型:
```
typescript
type
UserListResponseListType
=
{
message
?:
string
;
// 报错信息
success
:
boolean
;
userList
:
{
username
:
string
;
// 唯一 id username 必须与 SSO 接口返回的用户 username 相同
// 必须携带一个前缀,例如: sync-aaaaa,和 sso 接口返回的前缀一致
memberName
?:
string
;
// 名字,作为 tmbname
avatar
?:
string
;
contact
?:
string
;
// email or phone number
orgs
?:
string
[];
// 人员所在组织的 ID。没有组织传 []
}[];
}
```
#### 如何对接非标准系统
1.
客户自己开发:按 fastgpt 提供的标准接口进行开发,并将部署后的服务地址填入 fastgpt-pro
a. 可以参考该模版库:https://github.com/labring/fastgpt-sso-template 进行开发
2.
由 fastgpt 团队定制开发:
a. 提供系统的 SSO 文档、获取成员和组织的文档、以及外网测试地址。
b. 在 fastgpt-sso-service 中,增加对应的 provider 和环境变量,并编写代码来对接,具体参考开发 README。
## 通用外部成员系统配置
### 外部成员系统中转镜像部署
SSO 中转镜像(FastGPT-SSO-Service)本质是一个
**适配器**
,将不同的 oauth 逻辑封装为上述的逻辑。
目前提供企业微信,钉钉,飞书的适配。
如果需要适配您企业的用户系统,需要联系我们。
使用 docker-compose 部署:
```
yaml
fastgpt-sso
:
image
:
registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name
:
fastgpt-sso
restart
:
always
networks
:
-
fastgpt
environment
:
# 具体环境变量看下面
-
SSO_PROVIDER=example
-
AUTH_TOKEN=xxxxx
# other envs
}
```
**注意**
1.
不需要暴露端口出来。
2.
确保和 fastgpt-pro, fastgpt 在同一个网路中
3.
容器暴露的端口为 3000
4.
AUTH_TOKEN 应当与 fastgpt-pro 中一致。
#### FastGPT-pro 商业版 的配置
环境变量中的
`EXTERNAL_USER_SERVICE_BASE_URL`
为内网地址,例如上述例子中的配置,环境变量应该设置为
```
yaml
EXTERNAL_USER_SERVICE_BASE_URL=http://fastgpt-sso:3000
EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx
}
```
> 如果环境变量设置后还未生效,可能需要点击一次“保存”按钮
## 内置的通用协议/IM 配置示例
### 飞书
1.
**参数获取**
#### 1. 参数获取
App ID和App Secret
...
...
@@ -235,7 +102,7 @@ EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx
!
[
](/imgs/sso3.png)
2.
**权限配置**
#### 2. 权限配置
进入开发者后台,点击企业自建应用,在开发配置的权限管理页面开通权限。
...
...
@@ -250,41 +117,49 @@ EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx
对于开启企业同步相关内容而言,开启身份权限的内容与上面一致,但要注意是开启应用权限
3.
**重定向URL**
#### 3. 重定向URL
进入开发者后台,点击企业自建应用,在开发配置的安全设置中设置重定向URL
!
[
](/imgs/sso5.png)
4.
**环境变量配置**
```
bash
# #飞书 - feishu -如果是私有化部署,这里的配置前缀可能会有变化
# #(以下皆为官方api接口)
# SSO_PROVIDER=feishu
# # oauth 接口
# SSO_TARGET_URL=https://accounts.feishu.cn/open-apis/authen/v1/authorize
# #获取token 接口
# FEISHU_TOKEN_URL=https://open.feishu.cn/open-apis/authen/v2/oauth/token
# #获取用户信息接口
# FEISHU_GET_USER_INFO_URL=https://open.feishu.cn/open-apis/authen/v1/user_info
# #重定向地址,因为飞书获取用户信息要校验所以需要填
# FEISHU_REDIRECT_URI=xxx
# #飞书APP的应用ID,一般以cli开头
# FEISHU_APP_ID=xxx
# #飞书APP的应用密钥
# FEISHU_APP_SECRET=xxx
```
#### 4. yml 配置示例
```
bash
fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
-
SSO_PROVIDER
=
example
-
AUTH_TOKEN
=
xxxxx
# 飞书 - feishu -如果是私有化部署,这里的配置前缀可能会有变化
-
SSO_PROVIDER
=
feishu
# oauth 接口(公开的飞书不用改)
-
SSO_TARGET_URL
=
https://accounts.feishu.cn/open-apis/authen/v1/authorize
# 获取token 接口(公开的飞书不用改)
-
FEISHU_TOKEN_URL
=
https://open.feishu.cn/open-apis/authen/v2/oauth/token
# 获取用户信息接口(公开的飞书不用改)
-
FEISHU_GET_USER_INFO_URL
=
https://open.feishu.cn/open-apis/authen/v1/user_info
# 重定向地址,因为飞书获取用户信息要校验所以需要填
-
FEISHU_REDIRECT_URI
=
xxx
#飞书APP的应用ID,一般以cli开头
-
FEISHU_APP_ID
=
xxx
#飞书APP的应用密钥
-
FEISHU_APP_SECRET
=
xxx
```
### 钉钉
1.
**
参数获取
**
#### 1. 参数获取
CLIENT_ID
与
CLIENT_SECRET
CLIENT_ID
与
CLIENT_SECRET
进入钉钉开放平台,点击应用开发,选择自己的应用进入,记录在凭证与基础信息页面下的Client ID与Client secret。
!
[
](/imgs/sso6.png)
2.
**
权限配置
**
#### 2. 权限配置
进入钉钉开放平台,点击应用开发,选择自己的应用进入,在开发配置的权限管理页面操作,需要开通的权限包括:
...
...
@@ -292,7 +167,7 @@ EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx
2.
***通讯录个人信息读权限**
*
3.
***获取钉钉开放接口用户访问凭证的基础权限**
*
3.
**
重定向URL
**
#### 3. 重定向URL
进入钉钉开放平台,点击应用开发,选择自己的应用进入,在开发配置的安全设置页面操作
需要填写的内容有两个:
...
...
@@ -300,26 +175,33 @@ EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx
1.
服务器出口IP (调用钉钉服务端API的服务器IP列表)
2.
重定向URL(回调域名)
4.
**
环境变量配置
**
```
bash
# #钉钉 - dingtalk
# SSO_PROVIDER=dingtalk
# #oauth 接口
# SSO_TARGET_URL=https://login.dingtalk.com/oauth2/auth
# #获取token 接口
# DINGTALK_TOKEN_URL=https://api.dingtalk.com/v1.0/oauth2/userAccessToken
# #获取用户信息接口
# DINGTALK_GET_USER_INFO_URL=https://oapi.dingtalk.com/v1.0/contact/users/me
# #钉钉APP的应用ID
# DINGTALK_CLIENT_ID=xxx
# #钉钉APP的应用密钥
# DINGTALK_CLIENT_SECRET=xxx
```
#### 4. yml 配置示例
```
bash
fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
-
SSO_PROVIDER
=
dingtalk
-
AUTH_TOKEN
=
xxxxx
#oauth 接口
-
SSO_TARGET_URL
=
https://login.dingtalk.com/oauth2/auth
#获取token 接口
-
DINGTALK_TOKEN_URL
=
https://api.dingtalk.com/v1.0/oauth2/userAccessToken
#获取用户信息接口
-
DINGTALK_GET_USER_INFO_URL
=
https://oapi.dingtalk.com/v1.0/contact/users/me
#钉钉APP的应用ID
-
DINGTALK_CLIENT_ID
=
xxx
#钉钉APP的应用密钥
-
DINGTALK_CLIENT_SECRET
=
xxx
```
### 企业微信
####
**参数获取**
####
1. 参数获取
1.
企业的 CorpID
...
...
@@ -372,67 +254,187 @@ EXTERNAL_USER_SERVICE_AUTH_TOKEN=xxxxx

#### **环境变量**
```
bash
## 企业微信 - wecom
# SSO_PROVIDER=wecom
# (以下皆为官方api接口)
# oauth 接口,在企微终端使用
# WECOM_TARGET_URL_OAUTH=https://open.weixin.qq.com/connect/oauth2/authorize
# # sso 接口,扫码
# WECOM_TARGET_URL_SSO=https://login.work.weixin.qq.com/wwlogin/sso/login
# # 获取用户id(只能拿id)
# WECOM_GET_USER_ID_URL=https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo
# # 获取用户详细信息(除了名字都有)
# WECOM_GET_USER_INFO_URL=https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail
# # 获取用户信息(有名字,没其他信息)
# WECOM_GET_USER_NAME_URL=https://qyapi.weixin.qq.com/cgi-bin/user/get
# # 获取组织 id 列表
# WECOM_GET_DEPARTMENT_LIST_URL=https://qyapi.weixin.qq.com/cgi-bin/department/list
# # 获取用户 id 列表
# WECOM_GET_USER_LIST_URL=https://qyapi.weixin.qq.com/cgi-bin/user/list_id
# # 企微 CorpId
# WECOM_CORPID=
# # 企微 App 的 AgentId 一般是 1000xxx
# WECOM_AGENTID=
# # 企微 App 的 Secret
# WECOM_APP_SECRET=
# # 通讯录同步助手的 Secret
# WECOM_SYNC_SECRET=
```
#### 2. yml 配置示例
```
bash
fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
-
AUTH_TOKEN
=
xxxxx
-
SSO_PROVIDER
=
wecom
# oauth 接口,在企微终端使用
-
WECOM_TARGET_URL_OAUTH
=
https://open.weixin.qq.com/connect/oauth2/authorize
# sso 接口,扫码
-
WECOM_TARGET_URL_SSO
=
https://login.work.weixin.qq.com/wwlogin/sso/login
# 获取用户id(只能拿id)
-
WECOM_GET_USER_ID_URL
=
https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo
# 获取用户详细信息(除了名字都有)
-
WECOM_GET_USER_INFO_URL
=
https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail
# 获取用户信息(有名字,没其他信息)
-
WECOM_GET_USER_NAME_URL
=
https://qyapi.weixin.qq.com/cgi-bin/user/get
# 获取组织 id 列表
-
WECOM_GET_DEPARTMENT_LIST_URL
=
https://qyapi.weixin.qq.com/cgi-bin/department/list
# 获取用户 id 列表
-
WECOM_GET_USER_LIST_URL
=
https://qyapi.weixin.qq.com/cgi-bin/user/list_id
# 企微 CorpId
-
WECOM_CORPID
=
# 企微 App 的 AgentId 一般是 1000xxx
-
WECOM_AGENTID
=
# 企微 App 的 Secret
-
WECOM_APP_SECRET
=
# 通讯录同步助手的 Secret
-
WECOM_SYNC_SECRET
=
```
### 标准 OAuth2.0
我们提供一套标准的 OAuth2.0 接入流程。
需要三个地址:
#### 参数需求
我们提供一套标准的 OAuth2.0 接入流程。需要三个地址:
1.
登陆鉴权地址(登陆后将 code 传入 redirect_uri)
-
需要将地址完整写好,除了 redirect_uri 以外(会自动补全)
2.
获取 access_token 的地址,请求为 GET 方法,参数 code
```
bash
http://example.com/oauth/access_token?code
=
xxxx
```
3.
获取用户信息的地址
```
bash
http://example.
http://example.com/oauth/user_info
```
#### 配置示例
```
bash
# # OAuth2.0
# # OAuth2 登陆鉴权地址
# OAUTH2_AUTHORIZE_URL=
# # OAuth2 获取 AccessToken 地址
# OAUTH2_TOKEN_URL=
# # OAuth2 获取用户信息地址
# OAUTH2_USER_INFO_URL=
# # OAuth2 用户名字段映射(必填)
# OAUTH2_USERNAME_MAP=
# # OAuth2 头像字段映射(选填)
# OAUTH2_AVATAR_MAP=
# # OAuth2 成员名字段映射(选填)
# OAUTH2_MEMBER_NAME_MAP=
# # OAuth2 联系方式字段映射(选填)
# OAUTH2_CONTACT_MAP=
fastgpt-sso:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sso-service:v4.9.0
container_name: fastgpt-sso
restart: always
networks:
- fastgpt
environment:
# OAuth2.0
-
AUTH_TOKEN
=
xxxxx
-
SSO_PROVIDER
=
oauth2
# OAuth2 重定向地址
-
OAUTH2_AUTHORIZE_URL
=
# OAuth2 获取 AccessToken 地址
-
OAUTH2_TOKEN_URL
=
# OAuth2 获取用户信息地址
-
OAUTH2_USER_INFO_URL
=
# OAuth2 用户名字段映射(必填)
-
OAUTH2_USERNAME_MAP
=
# OAuth2 头像字段映射(选填)
-
OAUTH2_AVATAR_MAP
=
# OAuth2 成员名字段映射(选填)
-
OAUTH2_MEMBER_NAME_MAP
=
# OAuth2 联系方式字段映射(选填)
-
OAUTH2_CONTACT_MAP
=
```
## 标准接口文档
以下是 FastGPT-pro 中,SSO 和成员同步的标准接口文档,如果需要对接非标准系统,可以参考该章节进行开发。
!
[
](/imgs/sso2.png)
FastGPT 提供如下标准接口支持:
1.
https://example.com/getAuthURL 获取鉴权重定向地址
2.
https://example.com/login/oauth/getUserInfo?code=xxxxx 消费 code,换取用户信息
3.
https://example.com/org/list 获取组织列表
4.
https://example.com/user/list 获取成员列表
### 获取登录重定向地址
返回一个重定向登录地址,fastgpt 会自动重定向到该地址。
redirect_uri 会自动拼接到该地址的 query中。
GET /login/oauth/getAuthURL
```
JSON
{
"success": true,
"message": "错误信息",
"authURL": "https://example.com/somepath/login/oauth?redirect_uri=https%3A%2F%2Ffastgpt.cn%2Flogin%2Fprovider%0A"
}
```
### 获取用户信息
该接口接受一个 code 参数作为鉴权,消费 code 返回用户信息。
https://oauth.example/login/oauth/getUserInfo?code=xxxx
GET /login/oauth/getUserInfo?code=xxxxxx
返回如下信息(JSON):
```
JSON
{
"success": true,
"message": "错误信息",
"username": "用户名,用于注册 fastgpt,全局唯一的, fastgpt不会自动拼接任何前缀",
"avatar": "头像,可以为空",
"contact": "联系方式,最好不为空"
}
```
### 获取组织
1.
同步组织 /org/list
GET https://example.com/org/list
⚠️注意:只能存在一个根部门。如果你的系统中存在多个根部门,需要先进行处理,加一个虚拟的根部门。
返回值类型:
```
typescript
type
OrgListResponseType
=
{
message
?:
string
;
// 报错信息
success
:
boolean
;
orgList
:
{
id
:
string
;
// 部门的唯一 id
name
:
string
;
// 名字
parentId
:
string
;
// parentId,如果为根部门,传空字符串。
}[];
}
```
### 获取成员
1.
同步用户 /user/list
GET https://example.com/user/list
返回值类型:
```
typescript
type
UserListResponseListType
=
{
message
?:
string
;
// 报错信息
success
:
boolean
;
userList
:
{
username
:
string
;
// 唯一 id username 必须与 SSO 接口返回的用户 username 相同
// 必须携带一个前缀,例如: sync-aaaaa,和 sso 接口返回的前缀一致
memberName
?:
string
;
// 名字,作为 tmbname
avatar
?:
string
;
contact
?:
string
;
// email or phone number
orgs
?:
string
[];
// 人员所在组织的 ID。没有组织传 []
}[];
}
```
## 如何对接非标准系统
1.
客户自己开发:按 fastgpt 提供的标准接口进行开发,并将部署后的服务地址填入 fastgpt-pro
可以参考该模版库:
[
fastgpt-sso-template
](
https://github.com/labring/fastgpt-sso-template
)
进行开发
2.
由 fastgpt 团队定制开发:
a. 提供系统的 SSO 文档、获取成员和组织的文档、以及外网测试地址。
b. 在 fastgpt-sso-service 中,增加对应的 provider 和环境变量,并编写代码来对接。
docSite/content/zh-cn/docs/guide/admin/teamMode.md
View file @
8b29aae2
...
...
@@ -7,10 +7,10 @@ toc: true
weight
:
707
---
##
目前 FastGPT 支持的团队模式
##
介绍
目前支持的团队模式:
目前支持:
1.
多团队模式(默认模式)
2.
单团队模式(全局只有一个团队)
3.
成员同步模式(所有成员自外部同步)
...
...
@@ -71,4 +71,11 @@ weight: 707
在完成系统配置,开启同步模式的情况下,外部成员系统的成员会自动同步到 FastGPT 中。
具体的同步方式和规则请参考
[
SSO & 外部成员同步
](
/docs/guide/admin/sso.md
)
。
\ No newline at end of file
具体的同步方式和规则请参考
[
SSO & 外部成员同步
](
/docs/guide/admin/sso.md
)
。
## 配置
在
`fastgpt-pro`
的
`系统配置-成员配置`
中,可以配置团队模式。
!
[
](/imgs/teammode.png)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment