使用 Auth Server 作为身份源,其他系统可以通过 OIDC / OAuth 2.0 协议接入。

创建客户端

进入控制台 > 客户端,点击创建客户端。

image.png

填写客户端名称、回调地址和协议配置信息,点击创建。

若你的项目有后端服务,并且能够安全地存储密钥,在授权模式中勾选 authorization_code ,需要返回刷新令牌的场合,请勾选 refresh_token ,客户端认证方式勾选 client_secret_basicclient_secret_post ,需要返回身份令牌的场合,OIDC Scope 勾选 openid

image.png

流程如下:

sequenceDiagram
    participant User as 用户
    participant Client as 客户端
    participant AuthServer as 授权服务器
    participant ResourceServer as 资源服务器

    User ->> Client: 请求资源
    Client ->> AuthServer: 请求授权码 (authorization_code)
    AuthServer -->> Client: 返回授权码
    Client ->> AuthServer: 使用授权码请求访问令牌
    AuthServer -->> Client: 返回访问令牌
    Client ->> ResourceServer: 使用访问令牌请求资源
    ResourceServer -->> Client: 返回资源
    Client -->> User: 返回资源内容

若你的项目不能安全地存储密钥,如前端项目,在授权模式中勾选 authorization_code,客户端认证方式勾选 none,此时为公共客户端,将不会返回刷新令牌,需要返回身份令牌的场合,OIDC Scope 勾选 openid 。此时建议开启需要 PKCE,开启后,访问授权端点时,需要额外参数code_challengecode_challenge_method ,访问获取令牌端点时,需要额外参数 code_verifier

image.png

流程如下:

sequenceDiagram
    participant User as 用户
    participant Client as 客户端
    participant AuthServer as 授权服务器
    participant ResourceServer as 资源服务器

    User ->> Client: 请求资源
    Client ->> AuthServer: 携带 code_challenge 请求授权码 (authorization_code)
    AuthServer -->> Client: 返回授权码
    Client ->> AuthServer: 使用授权码 + code_verifier 请求访问令牌
    AuthServer -->> Client: 返回访问令牌
    Client ->> ResourceServer: 使用访问令牌请求资源
    ResourceServer -->> Client: 返回资源
    Client -->> User: 返回资源内容

成功创建客户端后,将显示客户端 ID 和客户端密钥,需及时保存。

image.png

配置客户端

点击客户端,进入客户端详情页获取将客户端集成到 Auth Server 的端点信息。

image.png

配置 OIDC Scope