IDaaS系统一账通ArkID内置OIDC认证插件配置流程

86 阅读4分钟

OIDC 是基于OAuth2和OpenID整合的新身份认证授权标准协议,且完全兼容 OAuth。Access Token 来解决授权第三方客户端访问受保护资源的问题,OIDC 在这个基础上提供了ID Token 来解决第三方客户端标识用户身份认证的问题。开源IDaaS方舟一账通ArkID系统内置OIDC认证插件极速安装、简单配置、马上可用,降低实施成本,提升应用集成效率。

在这里插入图片描述

添加OIDC应用

01 打开应用列表 在这里插入图片描述 02 点击创建,填写表单 点击确认后,对话框关闭,可以看到你创建的应用。 在这里插入图片描述 03 点击协议配置 在这里插入图片描述 04 填写配置 应用类型选择为OIDC,填写参数,创建完毕 在这里插入图片描述 05 再次点击协议配置 即可查看该协议所有相关的参数。 在这里插入图片描述

使用OIDC应用

1.明白页面字段含义 在这里插入图片描述

英文参数名称对应页面字段
redirect url回调地址
client_id客户端id
client_token客户端秘钥
authorize url授权url
get token url获取access_token地址
userinfo url用户信息地址
logout url退出登录地址
请求地址:authorize url

2.获取Authorization Code 请求方式: GET(重定向) 请求参数:

英文参数名称对应页面字段示例 示例
client_idclient_id
redirect_uriredirect url
response_type填入codecode
scope可选 ( openid userinfo)如果传递openid,获取token会多一个id_token

请求示例: http://authorize url/?client_id=xxxxx&redirect_uri=xxxxx&response_type=code&scope=userinfo

返回参数:

参数名称参数说明示例
code授权码

返回示例: http://redirect_uri?code=XEV8esOvaVk9wyAuiNXpb3Nuwn5av9&token=cd34840ffc804b894ede31bc21b176ef559e137f

3.获取Access Token

请求地址: get token url

请求方式: POST

请求头参数:

英文参数名称参数说明示例
Authorizationtoken格式为 client_id:client_secret 使用base64编码Basic Token
Content-Type填入multipart/form-data

请求参数:

参数名称参数说明示例
code授权码
grant_type填入authorization_code

请求示例: 在这里插入图片描述 返回参数:

参数名称参数说明示例
access_token令牌
expires_in过期时间
token_typeBearer
scopeuserinfo openid
refresh_token用于更新令牌的令牌

返回示例:

{"access_token": "cFcWq78HH9MKVQOFJgGPl6RFtESAc2",

"expires_in": 36000,

"token_type": "Bearer",

"scope": "userinfo",

"refresh_token": "oRHcgoGYsL5h1UimT4rWcg93lcTyjN"}

4.获取用户信息

请求地址: userinfo url

请求方式: GET

请求头参数:

参数名称参数说明示例
AuthorizationBearer access_tokenBearer cFcWq78HH9MKVQOFJgGPl6RFtESAc2

返回参数:

参数名称参数说明示例
id用户id
name用户名称
sub用户id
sub_id用户id
preferred_username用户名
groups用户分组
tenant_id租户id
tenant_slug租户slug

返回示例:

{ "id": "faf5aae6-3cdf-4595-8b4a-3a06b31117c8", "name": "admin", "sub": "faf5aae6-3cdf-4595-8b4a-3a06b31117c8", "sub_id": "faf5aae6-3cdf-4595-8b4a-3a06b31117c8", "preferred_username": "admin", "groups": [ ], "tenant_id": "4da114ce-e115-44a0-823b-d372114425d0", "tenant_slug": ""}

5.刷新token

这一步是可选的如果颁发的令牌过了有效期,可以使用这个接口更换新的令牌

请求地址: get token url

请求方式: POST

请求头参数:

参数名称参数说明示例
Authorization这个token由client_id和client_secret生成Basic Token示例
Content-Type填入multipart/form-data

请求参数:

参数名称参数说明示例
refresh_token更新令牌
grant_type填入refresh_token

请求示例: 在这里插入图片描述 返回参数

参数名称参数说明示例
access_token令牌
expires_in过期时间
token_typeBearer
scopeuserinfo openid
refresh_token用于更新令牌的令牌

返回示例

{ "access_token": "51s34LPxhhKlUTP5r5mHevGW7ussXC", "expires_in": 36000, "token_type": "Bearer", "scope": "userinfo",
"refresh_token": "68trmzGvLmmbjACnHFGgzoCl5LBOrJ"}

6.退出oidc

  • 这一步是可选的,可以退出用户登录,并跳转到指定地址

  • 请求地址: logout url

  • 请求方式: GET

参数名称参数说明示例
id_token_hintid_token
post_logout_redirect_uri退出登录后跳转的地址(可选)

返回参数:

参数名称参数说明示例
error_code错误码
error_msg错误信息

返回示例

{"error_code":0,

"error_msg":"logout success"}

ArkID方舟一账通

一款插件化、多租户、云原生的开源统一身份认证授权管理解决方案/身份云管理平台,采用AGPL-3.0 开源协议;支持多种标准协议(LDAP, OAuth2, SAML, OpenID),细粒度权限控制,完整的WEB管理功能,钉钉、企业微信集成等。ArkID 既可以作为企业终端客户资产统一管理 CIAM,可作为企业内部雇员、外部伙伴统一身份管理平台 EIAM;助企业构建标准化的用户身份体系。如果希望快速的了解系统的基本使用,可以访问官方IDaaS注册账号后创建自己的租户,即可使用系统的大部分功能。如果希望体验超级管理员,安装配置插件等,推荐使用私有化部署的方式。