ArkID开源IDaaS系统插件OAuth2轻松实现单点登录安心做应用服务集成

313 阅读3分钟

ArkID系统插件OAuth2

OAuth2是一个授权的开放协议;用来授权第三方应用,获取用户数据。ArkID基于Plug-in插件化可扩展的底层应用架构,系统插件内置OAuth2方便开发者轻松实现单点登录高效进行应用服务集成。

添加OAuth2应用

01打开应用列表; oa01.jpg 02点击创建,填写表单;

oa02.jpeg 03点击协议配置;

oa03.jpeg 04填写配置;

oa04.jpeg

05再次点击协议配置

oa05.jpeg

使用OAuth2应用

1.明白页面字段含义

oa06.jpeg

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

2.获取Authorization Code

  • 请求地址: authorize url
  • 请求方式: GET(重定向)
  • 请求参数:
参数名称参数说明示例
client_idclient_id
redirect_uriredirect url
response_type填入codecode
rscope可选 ( openid userinfo)如果传递openid,获取token会多一个id_token

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

返回参数:

oa07.jpeg

参数名称参数说明示例
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
  • 请求示例:

在这里插入图片描述

  • 返回参数:
参数名称参数说明示例
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
  • 请求头参数:

oa08.jpeg

参数名称参数说明示例
Authorization这个token由client_id和client_secret生成Basic Token
Content-Type填入multipart/form-data
  • 请求参数:
参数名称参数说明示例
refresh_token更新令牌
grant_type填入refresh_token

请求示例: 在这里插入图片描述

  • 返回参数:
参数名称参数说明示例
refresh_token更新令牌
access_token令牌
expires_in过期时间
token_typeBearer
scope userinfoopenid
refresh_token用于更新令牌的令牌
  • 返回示例

{

"access_token": "51s34LPxhhKlUTP5r5mHevGW7ussXC",

"expires_in": 36000,

"token_type": "Bearer",

"scope": "userinfo",

"refresh_token": "68trmzGvLmmbjACnHFGgzoCl5LBOrJ"

}

ArkID官方IDaaS

如果希望快速的了解系统的基本使用,可以访问 idaas.akid.cc 注册后,创建自己的租户,即可使用系统的大部分功能。 如果希望体验超级管理员,安装配置插件等,推荐使用私有化部署的方式。

ArkID简介

ArkID方舟一账通是一款插件化、多租户、云原生的开源统一身份认证授权管理解决方案/身份云管理平台,采用AGPL-3.0 开源协议;支持多种标准协议(LDAP, OAuth2, SAML, OpenID),细粒度权限控制,完整的WEB管理功能,钉钉、企业微信集成等。ArkID 既可以作为企业终端客户资产统一管理 CIAM,可作为企业内部雇员、外部伙伴统一身份管理平台 EIAM;助企业构建标准化的用户身份体系。