---
url: /zh/paas/oauth-config.md
---
## 概述

通过 OAuth 2.0，云原生构建平台可以集成用户的认证系统，实现单点登录（SSO），使用户能够使用现有的凭证访问平台，无需重复注册，同时确保数据的一致性和安全性。

## 授权码授权类型

`云原生构建` 支持 OAuth 授权码授权类型（Authorization Code Grant Type），它被 Web 应用程序和原生应用程序所使用，用于在用户授权应用程序之后获取访问令牌。

## 工作流程

```mermaid
  sequenceDiagram
    participant 用户
    participant 云原生构建
    participant 授权服务
    participant 资源服务
    用户->>云原生构建: 1.access
    云原生构建->>授权服务: 2.request auth
    授权服务->>用户: 3.display consent
    用户->>授权服务: 4.give consent
    授权服务->>云原生构建: 5.issue auth code
    云原生构建->>授权服务: 6.request token
    授权服务->>授权服务: 7.validate the request
    授权服务->>云原生构建: 8.return token
    云原生构建->>资源服务: 9.call resource api with token
    资源服务->>云原生构建: 10.return data
```

上述示例图表说明了 OAuth 授权码授予流程中发生的交互。

1. 用户尝试访问应用程序（云原生构建）。
2. 客户端应用程序调用授权服务器的 authorize 端点。
3. 授权服务器响应重定向 URI，如果有的话，用户将被重定向到授权页面。
4. 用户通过其身份源（如用户名密码）进行身份验证并同意。
5. 授权服务器颁发授权码（code）。
6. 客户端应用程序使用在上一步提供的授权码请求身份验证到令牌端点，使用配置的身份验证方法和在前一步提供的授权码。
7. 授权服务器验证授权码（code）、客户端 ID 和客户端密钥。
8. 授权服务器返回访问令牌。
9. 客户端应用程序从资源服务器请求受保护资源，并提交在上一步收到的令牌（Token）。
10. 资源服务器验证令牌并响应请求的资源。

## 配置

前往 admin 管理平台，为第三方服务创建登陆配置。

登陆配置需要的参数如下:

|      参数名        |  类型    | 必选   |                                 描述                                  |
|:----------------:  |:------:  |:----:  |:-------------------------------------------------------------------:  |
| Client ID          | String   |   Y    | 客户端 ID，和 secret 搭配使用，用于授权服务器认证请求的应用服务身份   |
| Client Secret      | String   |   Y    | 客户端 secret，和 ID 搭配使用，用于授权服务器认证请求的应用服务身份   |
| Scope              | String   |   Y    | 权限范围，授权服务提供的 token 的读写权限范围                         |
| 授权方式           | String   |   Y    | 目前仅支持自动检测                                                    |
| 授权请求           | String   |   Y    | 应用请求 oauth 授权的服务地址                                         |
| Token 请求         | String   |   Y    | 应用获取 token 的服务地址                                             |
| 用户信息请求       | String   |   Y    | 应用获取 token 后请求用户资源的资源服务地址                           |
| 同步登出地址       | String   |   N    | 用户在应用退出登陆后，应用请求同步退出 oauth 用户的地址               |
| 用户 id 映射属性   | String   |   N    | 将用户资源指定属性到云原生构建用户表 openid 字段                      |
| 用户账户映射属性   | String   |   N    | 将用户资源指定属性同步到云原生构建用户表 name 字段                    |
| 用户姓名映射属性   | String   |   N    | 将用户资源指定属性同步到云原生构建用户表 nick 字段                    |
| 用户邮箱映射属性   | String   |   N    | 将用户资源指定属性同步到云原生构建用户表 email 字段                   |
| 用户头像映射属性   | String   |   N    | 将用户资源指定属性同步到云原生构建用户表 avatar 字段                  |
| 提示消息映射属性   | String   |   N    | 将用户资源指定属性同步到云原生构建用户表 msg 字段                     |
| 同步权限设置       | String   |   N    | 是否允许导入用户修改名称/账户/邮件字段                                |
