1. 认证方式配置
1.1. 结构说明
1.1.1. 通用配置结构说明
字段 | 类型 | 说明 |
---|---|---|
reloadUser | BOOL | 刷新页面时,是否重新执行认证流程(主要用于嵌入模式下与主站的登录用户保持同步) |
enableSyncUserAttr | BOOL | 启用用户属性同步 |
loginNameMapping | STRING | 用户名映射 |
userNameMapping | STRING | 显示名映射 |
emailMapping | STRING | 邮箱映射 |
mobileMapping | STRING | 手机号映射 |
rolesMapping | STRING | 角色映射 |
groupsMapping | STRING | 组映射 |
orgsMapping | STRING | 组织架构映射 |
tenantCodeMapping | STRING | 企业 ID 映射 |
tenantNameMapping | STRING | 企业名称映射 |
platformSourceId | STRING | 平台方 ID |
enableSessionExpSync | BOOLEAN | 启用 SSO exp 会话有效期同步 |
sessionExpSyncMapping | STRING | 会话有效期映射 |
1.2. 认证方式接口说明
1.2.1. 获取支持的认证方式列表
获取支持的认证方式列表
请求URL
GET /api/v1/authentication-configs/form-items
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
id | STRING | 认证方式的唯一键 |
name | STRING | 认证方式的名称 |
接口示例1: 获取支持的认证方式列表
GET /api/v1/authentication-configs/form-items
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": [
{
"id": "hengshi",
"name": "HENGSHI"
},
{
"id": "ldap",
"name": "LDAP"
},
{
"id": "cas",
"name": "CAS"
},
{
"id": "saml2",
"name": "SAML2"
},
{
"id": "oauth2",
"name": "OAUTH2"
},
{
"id": "dingtalk",
"name": "钉钉"
},
{
"id": "wechat-work",
"name": "企业微信"
},
{
"id": "ctr",
"name": "CTR"
},
{
"id": "yunzhijia",
"name": "云之家"
},
{
"id": "jwt-param",
"name": "JWT 请求参数"
},
{
"id": "lark",
"name": "飞书"
},
{
"id": "qince",
"name": "勤策"
}
]
}
1.2.2. 获取默认的认证方式
获取默认的认证方式
请求URL
GET /api/v1/authentication-configs/active-auth
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
authType | STRING | 认证方式的唯一键 |
接口示例1: 获取默认的认证方式
GET /api/v1/authentication-configs/active-auth
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"authType": "ldap"
}
}
1.2.3. 编辑默认的认证方式
编辑默认的认证方式
请求URL
PUT /api/v1/authentication-configs/active-auth
请求参数
URL 参数
无
request body 参数
字段 | 类型 | 说明 |
---|---|---|
authType | STRING | 认证方式的唯一键 |
说明
返回对象的格式说明
接口示例1: 编辑默认的认证方式
PUT /api/v1/authentication-configs/active-auth
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"authType": "ldap"
}
}
1.3. ldap配置
1.3.1. ldap配置结构说明
字段 | 类型 | 说明 |
---|---|---|
protocol | STRING | ldap 协议,ldap/ldaps |
url | STRING | 服务器地址 |
port | INT | 服务器端口 |
bindUser | STRING | 用户名 |
bindPassword | STRING | 密码 |
searchBase | STRING | 搜索库 |
query | STRING | LDAP 查询 |
其他配置 | 参考通用配置结构说明 |
1.3.2. 获取ldap配置
请求URL
GET /api/v1/authentication-configs/ldap
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 ldap配置结构说明
接口示例1: 获取ldap配置
GET /api/v1/authentication-configs/ldap
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"protocol": "ldaps",
"bindPassword": "test",
"port": 636,
"loginNameMapping": "uid",
"query": "(objectclass=inetOrgPerson)",
"searchBase": "cn=users,cn=accounts,dc=org",
"bindUser": "uid=gogs,cn=sysaccounts,cn=etc,dc=org",
"mobileMapping": "",
"emailMapping": "",
"url": "ldap.demo.org",
"userNameMapping": ""
}
}
1.3.3. 编辑ldap配置
编辑ldap配置
请求URL
PUT /api/v1/authentication-configs/ldap
请求参数
URL 参数
无
request body 参数
参考 ldap配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑ldap配置
PUT /api/v1/authentication-configs/ldap
{
"protocol": "ldaps",
"url": "ldap.test.org",
"port": 636,
"bindUser": "uid=gogs,cn=sysaccounts,cn=etc,dc=org",
"bindPassword": "gogs",
"searchBase": "cn=users,cn=accounts,dc=org",
"query": "(objectclass=inetOrgPerson)",
"enableSyncUserAttr": false,
"loginNameMapping": "uid",
"userNameMapping": "cn",
"emailMapping": "email",
"mobileMapping": "mobile",
"enableSessionExpSync": false
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"protocol": "ldaps",
"bindPassword": "test",
"port": 636,
"loginNameMapping": "uid",
"query": "(objectclass=inetOrgPerson)",
"searchBase": "cn=users,cn=accounts,dc=org",
"bindUser": "uid=gogs,cn=sysaccounts,cn=etc,dc=org",
"mobileMapping": "",
"emailMapping": "",
"url": "ldap.demo.org",
"userNameMapping": ""
}
}
1.4. cas配置
1.4.1. cas配置结构说明
字段 | 类型 | 说明 |
---|---|---|
protocol | STRING | cas 协议,CAS10/CAS20/CAS20_PROXY/CAS30/CAS30_PROXY |
casServer | STRING | 服务器地址 |
其他配置 | 不支持用户名映射, 其他参考 通用配置结构说明 |
1.4.2. 获取cas配置
请求URL
GET /api/v1/authentication-configs/cas
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 cas配置结构说明
接口示例1: 获取cas配置
GET /api/v1/authentication-configs/cas
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"casServer": "https://sso.test.org/auth/realms/master/protocol/cas/login",
"orgsMapping": "orgs",
"emailMapping": "email",
"userNameMapping": "username",
"sessionExpSyncMapping": "",
"protocol": "CAS30"
}
}
1.4.3. 编辑cas配置
编辑cas配置
请求URL
PUT /api/v1/authentication-configs/cas
请求参数
URL 参数
无
request body 参数
参考 cas配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑cas配置
PUT /api/v1/authentication-configs/cas
{
"protocol": "CAS30",
"casServer": "https://sso.test.org/auth/realms/master/protocol/cas/login",
"reloadUser": false,
"enableSyncUserAttr": true,
"userNameMapping": "username",
"emailMapping": "email",
"mobileMapping": "",
"rolesMapping": "roles",
"groupsMapping": "groups"
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"protocol": "CAS30",
"casServer": "https://sso.test.org/auth/realms/master/protocol/cas/login",
"reloadUser": false,
"enableSyncUserAttr": true,
"userNameMapping": "username",
"emailMapping": "email",
"mobileMapping": "",
"rolesMapping": "roles",
"groupsMapping": "groups"
}
}
1.5. saml2配置
1.5.1. saml2配置结构说明
字段 | 类型 | 说明 |
---|---|---|
idpMetadataUrl | STRING | idpMetadataUrl,saml2 server 的 metadata 地址 |
私钥 | STRING | 与saml2 server 匹配的私钥 |
证书 | STRING | 与saml2 server 匹配的证书 |
entityID | STRING | entityID |
其他配置 | 其他参考 通用配置结构说明 |
1.5.2. 获取saml2配置
请求URL
GET /api/v1/authentication-configs/saml2
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 saml2配置结构说明
接口示例1: 获取saml2配置
GET /api/v1/authentication-configs/saml2
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"idpMetadataUrl": "https://sso.test.org/auth/realms/master/protocol/saml/descriptor",
"privateKey": "-----BEGIN PRIVATE KEY-----\ntest\ntestJXcQWrQUSB+LZHcDjhBcjKfHbyGmwHDHThz4d1nA2Dzccy78WpamTH\n-----END PRIVATE KEY-----",
"reloadUser": true,
"certificate": "-----BEGIN CERTIFICATE-----\ntest\ntest0xOTA0MTAwNzQ5NTdaFw0yOTA0MTAwNzUxMzdaMBwx\n-----END CERTIFICATE-----",
"entityId": "develop_saml2"
}
}
1.5.3. 编辑saml2配置
编辑saml2配置
请求URL
PUT /api/v1/authentication-configs/saml2
请求参数
URL 参数
无
request body 参数
参考 saml2配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑saml2配置
PUT /api/v1/authentication-configs/saml2
{
"idpMetadataUrl": "https://sso.test.org/auth/realms/master/protocol/saml/descriptor",
"privateKey": "-----BEGIN PRIVATE KEY-----\ntest\ntestJXcQWrQUSB+LZHcDjhBcjKfHbyGmwHDHThz4d1nA2Dzccy78WpamTH\n-----END PRIVATE KEY-----",
"reloadUser": true,
"certificate": "-----BEGIN CERTIFICATE-----\ntest\ntest0xOTA0MTAwNzQ5NTdaFw0yOTA0MTAwNzUxMzdaMBwx\n-----END CERTIFICATE-----",
"entityId": "develop_saml2"
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"idpMetadataUrl": "https://sso.test.org/auth/realms/master/protocol/saml/descriptor",
"privateKey": "-----BEGIN PRIVATE KEY-----\ntest\ntestJXcQWrQUSB+LZHcDjhBcjKfHbyGmwHDHThz4d1nA2Dzccy78WpamTH\n-----END PRIVATE KEY-----",
"reloadUser": true,
"certificate": "-----BEGIN CERTIFICATE-----\ntest\ntest0xOTA0MTAwNzQ5NTdaFw0yOTA0MTAwNzUxMzdaMBwx\n-----END CERTIFICATE-----",
"entityId": "develop_saml2"
}
}
1.6. oauth2配置
1.6.1. oauth2配置结构说明
字段 | 类型 | 说明 |
---|---|---|
key | STRING | Client ID |
secret | STRING | Client Secret |
authorizationBaseUrl | STRING | Authorize 接口 |
accessTokenEndpoint | STRING | Token 接口 |
profileUrl | STRING | User-info 接口 |
logoutUrl | STRING | Logout 接口 |
afterLogoutUriParamName | STRING | Logout 接口拼接 Redirect URI |
originUrlDeliveryMethod | STRING | 原始 url 传递方式 |
scope | STRING | scope |
其他配置 | 其他参考 通用配置结构说明 |
1.6.2. 获取oauth2配置
请求URL
GET /api/v1/authentication-configs/oauth2
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 oauth2配置结构说明
接口示例1: 获取oauth2配置
GET /api/v1/authentication-configs/oauth2
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"profileUrl": "http://test:3000/sso/oauth2/user-info",
"enableSyncUserAttr": true,
"originUrlDeliveryMethod": "url",
"loginNameMapping": "",
"authorizationBaseUrl": "http://test:3000/sso/oauth2/authorize",
"enableSessionExpSync": false,
"afterLogoutUriParamName": "",
"secret": "1",
"emailMapping": "",
"accessTokenEndpoint": "http://test:3000/sso/oauth2/token",
"userNameMapping": "",
"appendRedirectUri": true,
"reloadUser": true,
"groupsMapping": "",
"logoutUrl": "http://test:3000/sso/oauth2/logout",
"mobileMapping": "",
"rolesMapping": "",
"key": "1"
}
}
1.6.3. 编辑oauth2配置
编辑oauth2配置
请求URL
PUT /api/v1/authentication-configs/oauth2
请求参数
URL 参数
无
request body 参数
参考 oauth2配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑oauth2配置
PUT /api/v1/authentication-configs/oauth2
{
"key": "1",
"secret": "1",
"authorizationBaseUrl": "http://test:3000/sso/oauth2/authorize",
"accessTokenEndpoint": "http://test:3000/sso/oauth2/token",
"profileUrl": "http://test:3000/sso/oauth2/user-info",
"logoutUrl": "http://test:3000/sso/oauth2/logout",
"loginNameMapping": "",
"userNameMapping": "",
"emailMapping": "",
"mobileMapping": "",
"rolesMapping": "",
"groupsMapping": "",
"appendRedirectUri": true,
"originUrlDeliveryMethod": "url",
"reloadUser": true,
"enableSyncUserAttr": true,
"enableSessionExpSync": false
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"profileUrl": "http://test:3000/sso/oauth2/user-info",
"enableSyncUserAttr": true,
"originUrlDeliveryMethod": "url",
"loginNameMapping": "",
"authorizationBaseUrl": "http://test:3000/sso/oauth2/authorize",
"enableSessionExpSync": false,
"afterLogoutUriParamName": "",
"secret": "1",
"emailMapping": "",
"accessTokenEndpoint": "http://test:3000/sso/oauth2/token",
"userNameMapping": "",
"appendRedirectUri": true,
"reloadUser": true,
"groupsMapping": "",
"logoutUrl": "http://test:3000/sso/oauth2/logout",
"mobileMapping": "",
"rolesMapping": "",
"key": "1"
}
}
1.7. 钉钉配置
1.7.1. 钉钉配置结构说明
字段 | 类型 | 说明 |
---|---|---|
appKey | STRING | AppKey |
appSecret | STRING | AppSecret |
CorpId | STRING | corpId |
ssoSecret | STRING | SSOsecret |
dtLoginType | STRING | 登录方式:authCode(授权码模式,小程序免登录) ,qrConnect(扫码模式,网页端扫码登录) |
schedulerPeriod | STRING | 同步频率(单位为分钟,0为不同步) |
其他配置 | 其他参考 通用配置结构说明 |
1.7.2. 获取钉钉配置
请求URL
GET /api/v1/authentication-configs/dingtalk
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 钉钉配置结构说明
接口示例1: 获取oauth2配置
GET /api/v1/authentication-configs/dingtalk
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"enableSyncUserAttr": true,
"corpId": "test-corp-id",
"dtLoginType": "authCode",
"ssoSecret": "",
"appKey": "test-app-key",
"appSecret": "test-app-secret",
"schedulerPeriod": 0
}
}
1.7.3. 编辑钉钉配置
请求URL
PUT /api/v1/authentication-configs/dingtalk
请求参数
URL 参数
无
request body 参数
参考 钉钉配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑钉钉配置
PUT /api/v1/authentication-configs/dingtalk
{
"appKey": "test-app_key",
"appSecret": "test-app-secret",
"corpId": "test-corp-id",
"ssoSecret": "",
"schedulerPeriod": 0,
"dtLoginType": "authCode",
"enableSyncUserAttr": true
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"appKey": "test-app_key",
"appSecret": "test-app-secret",
"corpId": "test-corp-id",
"ssoSecret": "",
"schedulerPeriod": 0,
"dtLoginType": "authCode",
"enableSyncUserAttr": true
}
}
1.7.4. 同步钉钉组织
请求URL
PUT /api/v1/authentication-configs/dingtalk/sync
请求参数
URL 参数
无
request body 参数
参考 钉钉配置结构说明
说明
返回对象的格式说明
接口示例1: 同步钉钉组织
PUT /api/v1/authentication-configs/dingtalk/sync
{
"appKey": "test-app_key",
"appSecret": "test-app-secret",
"corpId": "test-corp-id",
"ssoSecret": "",
"schedulerPeriod": 0,
"dtLoginType": "authCode",
"enableSyncUserAttr": true
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"appKey": "test-app_key",
"appSecret": "test-app-secret",
"corpId": "test-corp-id",
"ssoSecret": "",
"schedulerPeriod": 0,
"dtLoginType": "authCode",
"enableSyncUserAttr": true
}
}
1.8. 企业微信配置
1.8.1. 企业微信配置结构说明
字段 | 类型 | 说明 |
---|---|---|
key | STRING | 企业ID |
agentId | STRING | AgentId |
secret | STRING | Secret |
wcwLoginType | STRING | 登录方式:oauth2(授权码模式,小程序免登录) ,qrConnect(扫码模式,网页端扫码登录) |
其他配置 | 其他参考 通用配置结构说明 |
1.8.2. 获取企业微信配置
请求URL
GET /api/v1/authentication-configs/wechat-work
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 企业微信配置结构说明
接口示例1: 获取企业微信配置
GET /api/v1/authentication-configs/wechat-work
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"agentId": "test-agent-id",
"enableSyncUserAttr": true,
"wcwLoginType": "oauth2",
"secret": "test-secret",
"key": "test-key"
}
}
1.8.3. 编辑企业微信配置
请求URL
PUT /api/v1/authentication-configs/wechat-work
请求参数
URL 参数
无
request body 参数
参考 企业微信配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑企业微信配置
PUT /api/v1/authentication-configs/wechat-work
{
"agentId": "test-agent-id",
"enableSyncUserAttr": true,
"wcwLoginType": "oauth2",
"secret": "test-secret",
"key": "test-key"
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"agentId": "test-agent-id",
"enableSyncUserAttr": true,
"wcwLoginType": "oauth2",
"secret": "test-secret",
"key": "test-key"
}
}
1.9. JWT配置
1.9.1. JWT配置结构说明
字段 | 类型 | 说明 |
---|---|---|
tokenName | STRING | JWT Token 名称 |
checkSignAlgorithm | STRING | 验签算法 |
checkSignKey | STRING | 验签密钥 |
signKey | STRING | 签名密钥 |
decryptMethod | STRING | 解密方法 |
decryptAlgorithm | STRING | 解密算法 |
decryptKey | STRING | 解密密钥 |
encryptKey | STRING | 加密密钥 |
groovy script | STRING | groovy script |
其他配置 | 其他参考 通用配置结构说明 |
1.9.2. 获取JWT配置
请求URL
GET /api/v1/authentication-configs/jwt-param
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 JWT配置结构说明
接口示例1: 获取JWT配置
GET /api/v1/authentication-configs/jwt-param
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"checkSignKey": "4415e5cf-aa28-46af-83e8-fff",
"enableSyncUserAttr": true,
"loginNameMapping": "",
"tokenName": "",
"enableSessionExpSync": false,
"emailMapping": "",
"decryptMethod": "",
"platformSourceId": "",
"userNameMapping": "",
"sessionExpSyncMapping": "",
"groupsMapping": "",
"checkSignKeyBase64Encoded": false,
"decryptKey": "",
"checkSignAlgorithm": "HS256",
"mobileMapping": "",
"decryptAlgorithm": "",
"tenantNameMapping": "企业名称",
"tenantCodeMapping": "tenantCode",
"rolesMapping": ""
}
}
1.9.3. 编辑JWT配置
请求URL
PUT /api/v1/authentication-configs/jwt-param
请求参数
URL 参数
无
request body 参数
参考 JWT配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑 JWT 配置
PUT /api/v1/authentication-configs/jwt-param
{
"checkSignAlgorithm": "HS256",
"checkSignKey": "4415e5cf-aa28-46af-83e8-fffff",
"checkSignKeyBase64Encoded": false,
"decryptMethod": "",
"decryptAlgorithm": "",
"decryptKey": "",
"enableSyncUserAttr": true,
"loginNameMapping": "",
"userNameMapping": "",
"emailMapping": "",
"mobileMapping": "",
"rolesMapping": "",
"groupsMapping": "",
"tenantCodeMapping": "",
"tenantNameMapping": "企业名称",
"platformSourceId": "tenantCode",
"enableSessionExpSync": false,
"sessionExpSyncMapping": "",
"tokenName": ""
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"checkSignAlgorithm": "HS256",
"checkSignKey": "4415e5cf-aa28-46af-83e8-fffff",
"checkSignKeyBase64Encoded": false,
"decryptMethod": "",
"decryptAlgorithm": "",
"decryptKey": "",
"enableSyncUserAttr": true,
"loginNameMapping": "",
"userNameMapping": "",
"emailMapping": "",
"mobileMapping": "",
"rolesMapping": "",
"groupsMapping": "",
"tenantCodeMapping": "",
"tenantNameMapping": "企业名称",
"platformSourceId": "tenantCode",
"enableSessionExpSync": false,
"sessionExpSyncMapping": "",
"tokenName": ""
}
}
1.9.4. 生成密钥
请求URL
PUT /api/v1/authentication-configs/jwt-param/generate-key
请求参数
URL 参数
无
request body 参数
参考 JWT配置结构说明
说明
返回对象的格式说明
接口示例1: 生成密钥
PUT /api/v1/authentication-configs/jwt-param/generate-key
{
"checkSignAlgorithm": "HS256",
"checkSignKeyBase64Encoded": false
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"enableSyncUserAttr": true,
"checkSignKey": "9604218ba98c4011a068cdb2ef78fe7d",
"checkSignKeyBase64Encoded": false,
"checkSignAlgorithm": "HS256",
"signKey": "9604218ba98c4011a068cdb2ef78fe7d"
}
}
1.10. 飞书配置
1.10.1. 飞书配置结构说明
字段 | 类型 | 说明 |
---|---|---|
appId | STRING | App ID |
appSecret | STRING | App Secret |
其他配置 | 其他参考 通用配置结构说明 |
1.10.2. 获取飞书配置
请求URL
GET /api/v1/authentication-configs/lark
请求参数
URL 参数
无
request body 参数
无
说明
返回对象的格式说明
参考 飞书配置结构说明
接口示例1: 获取飞书配置
GET /api/v1/authentication-configs/lark
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"enableSyncUserAttr": true,
"appId": "test-app-id",
"appSecret": "test-app-secret"
}
}
1.10.3. 编辑飞书配置
请求URL
PUT /api/v1/authentication-configs/lark
请求参数
URL 参数
无
request body 参数
参考 飞书配置结构说明
说明
返回对象的格式说明
接口示例1: 编辑 飞书 配置
PUT /api/v1/authentication-configs/lark
{
"appId": "cli_a250f4d4963cd00d",
"appSecret": "lMJTeOaIe9TCADmDYcYKwYMbvUIaeMtS",
"enableSyncUserAttr": true
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"enableSyncUserAttr": true,
"appId": "test-app-id",
"appSecret": "test-app-secret"
}
}