Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
K ketanyun-sdk
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • 科探开源
  • ketanyun-sdk
  • Wiki
  • OAuth 2.0 OIDC 客户端集成文档

OAuth 2.0 OIDC 客户端集成文档 · Changes

Page history
Update OAuth 2.0 OIDC 客户端集成文档 authored Dec 18, 2023 by wl's avatar wl
Hide whitespace changes
Inline Side-by-side
Showing with 67 additions and 0 deletions
+67 -0
  • OAuth-2.0-OIDC-客户端集成文档.md OAuth-2.0-OIDC-客户端集成文档.md +67 -0
  • No files found.
OAuth-2.0-OIDC-客户端集成文档.md 0 → 100644
View page @ 30d27aad
##### 对接说明
##### OIDC
##### [认证授权] OIDC(OpenId Connect)
- OIDC是OpenID Connect的简称。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。
- 参考资料:
- http://openid.net/connect/
- http://openid.net/connect/faq/
- http://openid.net/developers/certified/
- JWT : https://tools.ietf.org/html/rfc7519
- https://jwt.io
##### 认证过程:
- 基于Authorization Code的认证请求
详见: <a href="接口说明#1authorization-code-grant">Authorization Endpoint</a>
- 获取ID Token
使用上一步获得的code来请求Token EndPoint,这一步同OAuth2,详见: <a href="接口说明#1authorization-code-grant-1">Token Endpoint</a>
Token EndPoint会返回响应的Token,其中除了OAuth2规定的部分数据外,还会附加一个id_token的字段(见 <a href="#id-token">ID Token</a>)。例如(解密见:https://jwt.io ):
> {
> "access_token": "7d7ffdf1dd626ddc042f96b29ba8bf64",
> "refresh_token": "9844af4a27870037fbe9dd6c34407d1e",
> "scope": "4",
> "id_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ6cmpZSUFzSE5mN3VuZkVGbVN0aCIsImlzcyI6Imh0dHA6Ly93LnVucG93ZXIub3JnL3NzbyIsInN1YiI6IkEyZDRqWFk2ZEZ0eGF3c2JzQWN5IiwiZXhwIjoxNTM1NDc1MTg2LCJpYXQiOjE1MzU0NzUwNjYsIm5vbmNlIjoiYzhiZDkzYWQtMzkzMC00ZWNlLWE0ZjQtNzNiYWM0ZmM4YmFhIiwibmFtZSI6IkFsaWNlIiwiYWNjb3VudCI6IkFsaWNlIiwidGVuYW50IjoiODQyOTZhMWUtNmEzNS0xMWU4LWJlYjEtODRhNmM4NGFlMjQ2IiwiaWQiOiI4NDNkODE0NC02YTM1LTExZTgtYmViMS04NGE2Yzg0YWUyNDYifQ.jJmv6oLmB8-y18hy2xT5IcdFWTAytD20jIX3JEU38pA",
> "token_type": "Bearer",
> "expires_in": 2000000
> }
##### ID Token
- ID Token是一个安全令牌,包含用户信息(由一组Cliams构成以及其他辅助的Cliams)的JWT格式的数据结构。
- sub (Subject Identifier)
* 租户内的唯一id,一般称为[openid](https://git.qtgl.com.cn/product/ketanyun-v2-support/-/wikis/%E6%9C%AF%E8%AF%AD%E8%A1%A8),不会为空
* 以下两种情况例外,会返回第三方提供的账号:
* 本地数据库虽然有账号,但通过[配置项 `IGNORE_ACCOUNT_NOT_FOUND` 配置了"不验证本地账号"](https://git.qtgl.com.cn/product/ketanyun-v2-support/-/wikis/%E7%A7%91%E6%8E%A2%E4%BA%91%E5%B9%B3%E5%8F%B0%E9%85%8D%E7%BD%AE)
* 本地数据库无账号
- 科探扩展字段说明:
| 字段名 | 类型 | 含义 |
|------|------|------|
| account | string | 推荐优先使用的用户id,用于openid不统一的情况。可为空,为空时请使用sub |
| tenant | string | 用户所属的租户的标识,格式上一般是域名(但不保障) |
- 一个ID Token的样例:
```
{
"aud": "zrjYIAsHNf7unfEFmSth",
"iss": "http://w.unpower.org/sso",
"sub": "A2d4jXY6dFtxawsbsAcy",
"exp": 1535475186,
"iat": 1535475066,
"nonce": "c8bd93ad-3930-4ece-a4f4-73bac4fc8baa",
"name": "Alice",
"account": "Alice",
"tenant": "example.com",
"id": "843d8144-6a35-11e8-beb1-84a6c84ae246"
}
```
\ No newline at end of file
Clone repository
  • CAS 客户端集成文档
  • OAuth 2.0 OIDC 客户端集成文档
  • OAuth 2.0 集成文档
  • Home
  • 应用接入概述
  • 认证客户端集成文档