- 介绍
- 如何使用
- 定制化
- 支持的API
- 攻击检测
- 认证管理
- 客户端属性证书
- 客户端初始访问
- 客户注册政策
- 客户端角色映射
- 客户范围
- 客户
- 成分
- 团体
- 身份提供商
- 钥匙
- 协议映射器
- 领域管理员
- 角色映射器
- 角色
- 角色(按 ID)
- 范围映射
- 用户存储提供商
- 用户
- 根
介绍
这是一个 php 客户端,可以轻松连接到 keycloak admin Rest api。
特征:
- 便于使用
- 无需获取令牌或生成它 - 它已经由客户端处理
- 无需指定除基本 uri 之外的任何 url
- 没有对 json 进行编码/解码,只是您期望的数据
与 Keycloak 7.0+ 管理 REST API 配合使用。
https://www.keycloak.org/documentation ->“管理 REST API”
如何使用
1. 创建新客户端
$ client = Keycloak Admin KeycloakClient:: factory ([
' realm ' => ' master ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
' client_id ' => ' admin-cli ' ,
' baseUri ' => ' http://127.0.0.1:8180 ' ,
]);
从0.30版本开始,如果您的Keycloak基本URL以auth/
开头,请将其添加到baseUri
(例如http://127.0.0.1:8180/auth/)。 Keycloak 版本 7 至 16 的基本 URL 系统地包含auth/
。在 Keycloak 17+ 上,这取决于您的设置。
2. 使用它
$ client -> getUsers ();
//Result
// Array of users
/*
[
[
"id" => "39839a9b-de08-4d2c-b91a-a6ce2595b1f3",
"createdTimestamp" => 1571663375749,
"username" => "admin",
"enabled" => true,
"totp" => false,
"emailVerified" => false,
"disableableCredentialTypes" => [
"password",
],
"requiredActions" => [],
"notBefore" => 0,
"access" => [
"manageGroupMembership" => true,
"view" => true,
"mapRoles" => true,
"impersonate" => true,
"manage" => true,
],
],
]
*/
$ client -> createUser ([
' username ' => ' test ' ,
' email ' => ' [email protected] ' ,
' enabled ' => true ,
' credentials ' => [
[
' type ' => ' password ' ,
' value ' => ' 1234 ' ,
],
],
]);
定制化
支持的凭据
可以通过更改 keycloak 客户端的配置来更改用于身份验证的凭据类型。
目前,支持以下凭证
- 密码凭证,默认使用
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' password ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
]);
- 客户凭证
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' client_credentials ' ,
' client_id ' => ' admin-cli ' ,
' client_secret ' => ' 84ab3d98-a0c3-44c7-b532-306f222ce1ff ' ,
]);
注入中间件
可以使用middlewares
关键字在 keycloak 客户端配置中注入 Guzzle 客户端中间件。
例如:
use GuzzleHttp Middleware ;
use Psr Http Message RequestInterface ;
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' middlewares ' => [
// throws exceptions when request fails
Middleware:: httpErrors (),
// other custom middlewares
Middleware:: mapRequest ( function ( RequestInterface $ request ) {
return $ request ;
}),
],
]);
更改令牌的保存和存储方式
默认情况下,令牌在运行时保存。这意味着创建新客户端时不会使用之前的令牌。
您可以通过实现自己的TokenStorage
(描述如何存储和检索令牌的接口)来自定义令牌在客户端配置中的存储方式。
class CustomTokenStorage implements TokenStorage
{
public function getToken ()
{
// TODO
}
public function saveToken ( array $ token )
{
// TODO
}
}
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' token_storage ' => new CustomTokenStorage (),
]);
自定义 Keycloak 端点
可以使用custom_operations
关键字在 keycloak 客户端配置中注入 Guzzle 服务操作。通过这种方式,您可以使用自定义扩展内置支持的端点。
$ client = KeycloakClient:: factory ([
...
' custom_operations ' => [
' getUsersByAttribute ' => [
' uri ' => ' /auth/realms/{realm}/userapi-rest/users/search-by-attr ' ,
' description ' => ' Get users by attribute Returns a list of users, filtered according to query parameters ' ,
' httpMethod ' => ' GET ' ,
' parameters ' => [
' realm ' => [
' location ' => ' uri ' ,
' description ' => ' The Realm name ' ,
' type ' => ' string ' ,
' required ' => true ,
],
' attr ' => [
' location ' => ' query ' ,
' type ' => ' string ' ,
' required ' => true ,
],
' value ' => [
' location ' => ' query ' ,
' type ' => ' string ' ,
' required ' => true ,
],
],
],
]
]);
支持的API
攻击检测
应用程序编程接口 | 函数名称 | 支持 |
---|
清除所有用户的所有用户登录失败这可以释放临时禁用的用户 | 清除所有登录失败 | ✔️ |
在暴力检测中获取用户名的状态 | 获取暴力破解用户状态 | ✔️ |
清除该用户的所有用户登录失败这可以释放临时禁用的用户 | 清除用户登录失败 | ✔️ |
认证管理
应用程序编程接口 | 函数名称 | 支持 |
---|
获取身份验证器提供程序 返回身份验证器提供程序的列表。 | 获取AuthenticatorProviders | ✔️ |
获取客户端身份验证器提供程序 返回客户端身份验证器提供程序的列表。 | 获取ClientAuthenticatorProviders | ✔️ |
获取验证器提供者的配置描述 | 获取AuthenticatorConfigInfo | ✔️ |
获取验证器配置 | 获取AuthenticatorConfig | ✔️ |
更新验证器配置 | 更新AuthenticatorConfig | ✔️ |
删除验证器配置 | 删除AuthenticatorConfig | ✔️ |
添加新的身份验证执行 | 创建验证执行 | ✔️ |
获取单次执行 | 获取验证执行 | ✔️ |
删除执行 | 删除验证执行 | ✔️ |
使用新配置更新执行 | 更新验证执行 | ✔️ |
降低执行优先级 | 降低身份验证执行优先级 | ✔️ |
提高执行优先级 | 提高身份验证执行优先级 | ✔️ |
创建新的身份验证流程 | 创建认证流程 | ✔️ |
获取身份验证流 返回身份验证流的列表。 | 获取身份验证流 | ✔️ |
使用新名称复制现有身份验证流程新名称作为传递的 JSON 对象的“newName”属性给出 | 复制认证流程 | ✔️ |
获取流程的身份验证执行 | getAuthenticationFlowExecutions | ✔️ |
更新流程的身份验证执行 | updateAuthenticationFlowExecutions | ✔️ |
将新的身份验证执行添加到流程中 | 创建身份验证流程执行 | ✔️ |
将具有新执行的新流程添加到现有流程中 | 添加身份验证流程执行 | ✔️ |
获取id的认证流程 | 获取认证流程 | ✔️ |
更新 id 的身份验证流程 | 更新认证流程 | ✔️ |
删除认证流程 | 删除认证流程 | ✔️ |
获取表单操作提供程序 返回表单操作提供程序的列表。 | 获取表单操作提供者 | ✔️ |
获取表单提供者 返回表单提供者的列表。 | 获取表单提供者 | ✔️ |
获取所有客户端的配置描述 | 获取客户端配置描述 | ✔️ |
注册新的所需操作 | 创建必需的操作 | ✔️ |
获取所需操作 返回所需操作的列表。 | 获取所需的操作 | ✔️ |
获取别名所需的操作 | 获取别名所需操作 | ✔️ |
更新所需的操作 | 更新必需的操作 | ✔️ |
删除所需的操作 | 删除必需的操作 | ✔️ |
降低所需操作的优先级 | 降低所需操作优先级 | ✔️ |
提高所需操作的优先级 | 提高必需的操作优先级 | ✔️ |
获取未注册的必需操作 返回未注册的必需操作的列表。 | 获取未注册的必需操作 | ✔️ |
客户端属性证书
应用程序编程接口 | 函数名称 | 支持 |
---|
获取关键信息(尝试使用 attr = "jwt.credential") | 获取客户端密钥信息 | ✔️ |
获取客户端的keystore文件,包含私钥和公钥(注:将响应内容写入文件) | 获取客户端密钥库 | ✔️ |
使用新密钥对生成新证书 | 生成客户端证书 | ✔️ |
生成新的密钥对和证书,并获取私钥文件 生成密钥对和证书并以指定的密钥库格式提供私钥。 | 生成下载客户端证书 | ✔️ |
上传证书并最终上传私钥 | 上传客户端证书和私钥 | ✔️ |
只上传证书,不上传私钥 | 仅上传客户端证书 | ✔️ |
客户端初始访问
应用程序编程接口 | 函数名称 | 支持 |
---|
创建新的初始访问令牌。 | 创建客户端初始访问令牌 | ✔️ |
GET /{realm}/客户端初始访问 | 获取客户端初始访问令牌 | ✔️ |
删除 /{realm}/clients-initial-access/{id} | 删除ClientInitialAccessToken | ✔️ |
客户注册政策
应用程序编程接口 | 函数名称 | 支持 |
---|
正确填写了 configProperties 的检索提供程序的基本路径 | 获取客户端注册策略提供者 | ✔️ |
客户端角色映射
应用程序编程接口 | 函数名称 | 支持 |
---|
将客户端级别角色添加到组角色映射 | 添加组客户端角色映射 | ✔️ |
获取组和应用程序的客户端级角色映射 | 获取组客户端角色映射 | ✔️ |
从组角色映射中删除客户端级别角色 | 删除GroupClientRoleMappings | ✔️ |
获取可映射到组的可用客户端级别角色 | 获取可用组客户端角色映射 | ✔️ |
获得有效的客户端级角色映射这会递归组的任何复合角色 | getGroupClientRoleMappingsWithComposite | ✔️ |
将客户端级别角色添加到用户角色映射 | 添加用户客户端角色映射 | ✔️ |
获取用户和应用程序的客户端级角色映射 | 获取用户客户端角色映射 | ✔️ |
从用户角色映射中删除客户端级别角色 | 删除UserClientRoleMappings | ✔️ |
获取可映射到用户的可用客户端级角色 | 获取可用用户客户端角色映射 | ✔️ |
获取有效的客户端级角色映射这会递归用户的任何复合角色 | getUserClientRoleMappingsWithComposite | ✔️ |
客户范围
应用程序编程接口 | 函数名称 | 支持 |
---|
创建新的客户端范围 客户端范围的名称必须是唯一的! | 创建客户端范围 | ✔️ |
获取属于该领域的客户端范围 返回属于该领域的客户端范围的列表 | 获取客户端范围 | ✔️ |
获取客户端范围的表示 | 获取客户端范围 | ✔️ |
更新客户端范围 | 更新客户端范围 | ✔️ |
删除客户端范围 | 删除客户端范围 | ✔️ |
客户
应用程序编程接口 | 函数名称 | 支持 |
---|
创建新客户端 Client的client_id必须是唯一的! | 创建客户端 | ✔️ |
获取属于该领域的客户端 返回属于该领域的客户端列表 | 获取客户 | ✔️ |
获取客户代表 | 获取客户端 | ✔️ |
更新客户端 | 更新客户端 | ✔️ |
删除客户端 | 删除客户端 | ✔️ |
为客户端生成新的秘密 | 生成客户端秘密 | ✔️ |
获取客户端秘密 | 获取客户端密码 | ✔️ |
获取默认客户端范围。 | 获取客户端默认范围 | ✔️ |
将客户端范围设置为默认范围 | 设置客户端作用域为默认值 | ✔️ |
从默认范围中删除客户端范围 | 删除ClientScopeAsDefault | ✔️ |
使用示例访问令牌的负载创建 JSON | 获取ClientExampleAccessToken | ✔️ |
返回所有协议映射器的列表,在生成为特定客户端发行的令牌时将使用该列表。 | 获取客户端协议映射器 | ✔️ |
获取特定角色容器的所有角色的有效范围映射,该客户端实际上被允许在为其颁发的 accessToken 中拥有该范围映射。 | getClientAllowedRoleMappingsInContainer | ✔️ |
获取该客户端没有范围的角色,并且不能将它们包含在为其颁发的 accessToken 中。 | getClientNotAllowedRoleMappingsInContainer | ✔️ |
生成客户端适配器配置采用以下之一(keycloak-oidc-keycloak-json、keycloak-oidc-jboss-subsystem-cli、keycloak-oidc-jboss-subsystem、keycloak-saml、keycloak-saml-subsystem-cli、keycloak-saml -子系统) | 获取客户端安装配置 | ✔️ |
返回对象,说明客户端授权权限是否已初始化以及引用 | 获取客户端授权权限状态 | ✔️ |
更新客户端授权权限初始化及参考 | 更新客户端授权权限状态 | ✔️ |
向客户端注册集群节点 手动向该客户端注册集群节点 - 通常不需要直接调用它,因为适配器应该通过向 Keycloak 发送注册请求来处理 | 注册客户端集群节点 | ✔️ |
从客户端取消注册集群节点 | 注销客户端集群节点 | ✔️ |
获取应用程序离线会话计数 返回与此客户端关联的离线用户会话数 { "count": number } | 获取客户端离线会话数 | ✔️ |
获取客户端的离线会话 返回与该客户端关联的离线用户会话的列表 | 获取客户端离线会话 | ✔️ |
获取可选的客户端范围。 | 获取客户端可选范围 | ✔️ |
分配客户端可选范围 | 分配客户端可选范围 | ✔️ |
删除客户端可选范围分配 | 取消分配客户端可选范围 | ✔️ |
将客户端的吊销策略推送到其管理 URL 如果客户端有管理 URL,则将吊销策略推送到它。 | 推送客户端撤销策略 | ✔️ |
为客户端生成新的注册访问令牌 | 生成客户端注册令牌 | ✔️ |
获取专用于服务帐户的用户 | 获取服务帐户专用用户 | ✔️ |
获取应用程序会话计数 返回与此客户端关联的用户会话数 { "count": number } | 获取客户端会话数 | ✔️ |
测试注册的集群节点是否可用 通过向所有集群节点发送“ping”请求来测试可用性。 | 测试客户端节点可用性 | ✔️ |
获取客户端的用户会话 返回与该客户端关联的用户会话列表 | 获取客户端会话 | ✔️ |
成分
应用程序编程接口 | 函数名称 | 支持 |
---|
创建新组件 | 创建组件 | ✔️ |
获取组件 | 获取组件 | ✔️ |
获取组件 | 获取组件 | ✔️ |
更新组件 | 更新组件 | ✔️ |
删除组件 | 删除组件 | ✔️ |
可用于为特定父组件配置的子组件类型列表。 | 获取组件子类型 | ✔️ |
团体
应用程序编程接口 | 函数名称 | 支持 |
---|
创建或添加顶级领域组设置或创建子项。 | 创建组 | ✔️ |
获取组层次结构。 | 获取组 | ✔️ |
返回组计数。 | 获取组数 | ✔️ |
获取组 | 获取组 | ✔️ |
获取组儿童(子组) | 获取子组 | ✔️ |
更新组,忽略子组。 | 更新组 | ✔️ |
删除组 | 删除组 | ✔️ |
设置或创建子项。 | 创建子组 | ✔️ |
返回对象,说明客户端授权权限是否已初始化以及引用 | 获取组管理权限 | ✔️ |
返回对象,说明客户端授权权限是否已初始化以及引用 | 更新组管理权限 | ✔️ |
获取用户 返回根据查询参数过滤的用户列表 | 获取组成员 | ✔️ |
身份提供商
应用程序编程接口 | 函数名称 | 支持 |
---|
从上传的 JSON 文件导入身份提供商 | 导入身份提供者 | ✔️ |
创建新的身份提供商 | 创建身份提供者 | ✔️ |
获取身份提供商 | 获取身份提供者 | ✔️ |
获取身份提供商 | 获取身份提供者 | ✔️ |
更新身份提供商 | 更新身份提供者 | ✔️ |
删除身份提供者 | 删除身份提供者 | ✔️ |
导出身份提供商的公共代理配置 | 导出IdentityProviderBrokerConfig | ✔️ |
返回对象,说明客户端授权权限是否已初始化以及引用 | 获取身份提供者管理权限 | ✔️ |
返回对象,说明客户端授权权限是否已初始化以及引用 | 更新IdentityProvider管理权限 | ✔️ |
获取身份提供者的映射器类型(Keycloak 给出异常报告) | 获取IdentityProviderMapperTypes | ✔️ |
将映射器添加到身份提供者 | 创建身份提供者映射器 | ✔️ |
获取身份提供者的映射器 | 获取身份提供者映射器 | ✔️ |
通过身份提供者的 ID 获取映射器 | 获取身份提供者映射器 | ✔️ |
更新身份提供者的映射器(由于某种原因无法工作会出现空指针异常) | 更新IdentityProviderMapper | ✔️ |
删除身份提供者的映射器 | 删除IdentityProviderMapper | ✔️ |
获取身份提供商 | 通过 ID 获取身份提供者 | ✔️ |
钥匙
应用程序编程接口 | 函数名称 | 支持 |
---|
获取领域密钥 | 获取领域密钥 | ✔️ |
协议映射器
注意:Ids 作为 clientScopeId 或 clientId 和 mapperId 发送,其他所有内容都与 keycloak 文档相同
应用程序编程接口 | 函数名称 | 支持 |
---|
创建多个映射器 | 创建ClientScopeProtocolMappers | ✔️ |
创建一个映射器 | 创建ClientScopeProtocolMapper | ✔️ |
获取地图绘制器 | 获取ClientScopeProtocolMappers | ✔️ |
通过id获取映射器 | getClientScopeProtocolMapperById | ✔️ |
更新映射器 | 更新ClientScopeProtocolMapper | ✔️ |
删除映射器 | 删除ClientScopeProtocolMapper | ✔️ |
按名称获取特定协议的映射器 | getClientScopeProtocolMappersByProtocolName | ✔️ |
创建多个映射器 | 创建客户端协议映射器 | ✔️ |
创建一个映射器 | 创建客户端协议映射器 | ✔️ |
获取地图绘制器 | 获取客户端协议映射器 | ✔️ |
通过id获取映射器 | getClientProtocolMapperById | ✔️ |
更新映射器 | 更新客户端协议映射器 | ✔️ |
删除映射器 | 删除客户端协议映射器 | ✔️ |
按名称获取特定协议的映射器 | getClientProtocolMappersByProtocolName | ✔️ |
领域管理员
应用程序编程接口 | 函数名称 | 支持 |
---|
获取可访问领域 返回可访问领域的列表。该列表根据允许调用者查看的领域进行过滤。 | 获取领域 | ✔️ |
导入领域 从该领域的完整表示导入该领域。 | 导入领域 | ✔️ |
获取领域的顶级表示它不会包括用户和客户端表示等嵌套信息。 | 获取领域 | ✔️ |
更新领域的顶级信息 表示中的任何用户、角色或客户端信息都将被忽略。 | 更新领域 | ✔️ |
删除领域 | 删除领域 | ✔️ |
获取管理事件 返回所有管理事件,或根据此处列出的 URL 查询参数过滤事件 | 获取管理事件 | ✔️ |
删除所有管理事件 | 删除管理事件 | ✔️ |
清除外部公钥的缓存(客户端或身份提供商的公钥) | 清除外部公共密钥缓存 | ✔️ |
清除领域缓存 | 清除领域缓存 | ✔️ |
清除用户缓存 | 清除用户缓存 | ✔️ |
用于在此领域下导入客户端的基本路径。 | 导入客户端 | ✔️ |
获取客户端会话统计信息 返回 JSON 映射。 | 获取客户端会话统计信息 | ✔️ |
GET /{realm}/凭证注册器 | 获取凭证注册器 | ✔️ |
获取领域默认客户端范围。 | 获取默认客户端范围 | ✔️ |
PUT /{realm}/default-default-client-scopes/{clientScopeId} | setScopeAsDefaultClientScope | ✔️ |
删除 /{realm}/default-default-client-scopes/{clientScopeId} | unsetScopeAsDefaultClientScope | ✔️ |
获取组层次结构。 | 获取默认组层次结构 | ✔️ |
PUT /{realm}/default-groups/{groupId} | 将组设置为默认组 | ✔️ |
删除 /{realm}/default-groups/{groupId} | 取消设置组为默认组 | ✔️ |
获取领域可选的客户端范围。 | 获取可选客户端范围 | ✔️ |
PUT /{realm}/default-Optional-client-scopes/{clientScopeId} | setScopeAsOptionalClientScope | ✔️ |
删除/ {领域} /默认可选客户端范围/ {clientScopeId} | unsetScopeAsOptionalClientScope | ✔️ |
获取事件 返回所有事件,或根据此处列出的 URL 查询参数过滤它们 | 获取所有事件 | ✔️ |
删除所有事件 | 删除所有事件 | ✔️ |
获取事件提供程序配置 返回带有事件提供程序配置的 JSON 对象 | 获取事件配置 | ✔️ |
更新事件提供程序 更改事件提供程序和/或其配置 | 更新事件配置 | ✔️ |
通过路径获取用户组 | 获取按路径分组 | ✔️ |
GET /{realm}/本地化 | 获取本地化语言环境 | ✔️ |
POST /{领域}/本地化/{语言环境} | 更新本地化文本 | ✔️ |
GET /{领域}/本地化/{语言环境} | 获取本地化文本 | ✔️ |
删除/{领域}/本地化/{语言环境} | 删除本地化文本 | ✔️ |
GET /{realm}/localization/{locale}/{key} | 获取本地化文本 | ✔️ |
PUT /{realm}/localization/{locale}/{key} | 保存本地化文本 | ✔️ |
删除所有用户会话。 (调用此方法时Keycloak会抛出异常) | 注销所有用户 | |
将现有领域部分导出到 JSON 文件中。 | 部分导出领域 | ✔️ |
从 JSON 文件部分导入到现有领域。 | 部分导入领域 | ✔️ |
将领域的撤销策略推送到具有与其关联的管理 URL 的任何客户端。 (调用此方法时Keycloak会抛出异常) | 推送撤销策略 | |
删除特定的用户会话。 | 撤销用户会话 | ✔️ |
测试 LDAP 连接 | 测试LDAP连接 | ✔️ |
测试与当前登录用户的 SMTP 连接 | 测试SMTP连接 | ✔️ |
获取用户管理权限 | 获取用户管理权限 | ✔️ |
更新用户管理权限 | 更新用户管理权限 | ✔️ |
角色映射器
应用程序编程接口 | 函数名称 | 支持 |
---|
获取角色映射 | 获取组角色映射 | ✔️ |
将领域级角色映射添加到组 | 添加全局角色到组 | ✔️ |
获取领域级角色映射 | 获取组领域角色映射 | ✔️ |
删除领域级角色映射 | 删除GroupRealmRoleMappings | ✔️ |
获取可映射的领域级别角色 | 获取可用组领域角色映射 | ✔️ |
获取有效的领域级角色映射这将递归所有复合角色以获得结果。 | getEffectiveGroupRealmRoleMappings | ✔️ |
获取角色映射 | 获取用户角色映射 | ✔️ |
为用户添加领域级角色映射 | 添加全局角色到用户 | ✔️ |
获取领域级角色映射 | 获取用户领域角色映射 | ✔️ |
删除领域级角色映射 | 删除用户领域角色映射 | ✔️ |
获取可映射的领域级别角色 | 获取可用用户领域角色映射 | ✔️ |
获取有效的领域级角色映射这将递归所有复合角色以获得结果。 | 获取有效用户领域角色映射 | ✔️ |
角色
应用程序编程接口 | 函数名称 | 支持 |
---|
为领域或客户端创建新角色(特定于客户端) | 创建客户端角色 | ✔️ |
获取领域或客户端的所有角色(特定于客户端) | 获取客户端角色 | ✔️ |
按名称获取角色(特定于客户) | 获取客户端角色 | ✔️ |
按名称更新角色(特定于客户端) | 更新客户端角色 | ✔️ |
按名称删除角色(特定于客户端) | 删除客户端角色 | ✔️ |
将组合添加到角色(特定于客户端) | 添加复合角色到客户端角色 | ✔️ |
获取角色的组合(特定于客户) | 获取客户端角色复合角色 | ✔️ |
从角色组合中删除角色(特定于客户端) | 从客户端角色删除复合角色 | ✔️ |
角色组合的指定应用程序的应用程序级角色(客户端特定) | getClientRoleCompositeRolesForClient | ✔️ |
获取角色组合的领域级角色(特定于客户端) | getClientRoleCompositeRolesForRealm | ✔️ |
返回具有指定角色名称的组列表(特定于客户端) | 获取客户端角色组 | ✔️ |
返回对象,说明角色授权权限是否已初始化以及引用(特定于客户端) | 获取客户端角色管理权限 | ✔️ |
更新对象,说明角色授权权限是否已初始化以及引用(特定于客户端) | 更新客户端角色管理权限 | ✔️ |
返回具有指定角色名称的用户列表(特定于客户端) | 获取客户端角色用户 | ✔️ |
为领域或客户端创建新角色 | 创建领域角色 | ✔️ |
获取领域或客户端的所有角色 | 获取领域角色 | ✔️ |
按名称获取角色 | 获取领域角色 | ✔️ |
按名称更新角色 | 更新领域角色 | ✔️ |
按名称删除角色 | 删除领域角色 | ✔️ |
向角色添加复合 | 添加复合角色到领域角色 | ✔️ |
获取角色的组合 | getRealmRoleCompositeRoles | ✔️ |
从角色组合中删除角色 | 从领域角色中删除复合角色 | ✔️ |
角色组合的指定应用程序的应用程序级角色 | getRealmRoleCompositeRolesForClient | ✔️ |
获取角色组合的领域级角色 | getRealmRoleCompositeRolesForRealm | ✔️ |
返回具有指定角色名称的组列表 | 获取领域角色组 | ✔️ |
返回对象,说明角色授权权限是否已初始化以及引用 | 获取领域角色管理权限 | ✔️ |
更新对象,说明角色授权权限是否已初始化以及引用 | 更新领域角色管理权限 | ✔️ |
返回具有指定角色名称的用户列表 | 获取领域角色用户 | ✔️ |
角色(按 ID)
应用程序编程接口 | 函数名称 | 支持 |
---|
获取特定角色的代表 | 获取 RealmRoleById | ✔️ |
更新角色 | 通过Id更新RealmRole | ✔️ |
删除角色 | 通过Id删除RealmRole | ✔️ |
通过关联一些子角色使角色成为复合角色 | 添加CompositeRoleToRealmRoleByRoleId | ✔️ |
获取角色的子级 如果角色是复合角色,则返回一组角色的子级。 | getRealmRoleCompositeRolesByRoleId | ✔️ |
从角色组合中删除一组角色 | 从RealmRoleByRoleId删除CompositeRole | ✔️ |
获取角色组合中客户端的客户端级角色 | getRealmRoleCompositeRolesForClientByRoleId | ✔️ |
获取角色组合中的领域级角色 | getRealmRoleCompositeRolesForRealmByRoleId | ✔️ |
返回对象,说明角色授权权限是否已初始化以及引用 | getRealmRoleManagementPermissionsByRoleId | ✔️ |
返回对象,说明角色授权权限是否已初始化以及引用 | updateRealmRoleManagementPermissionsByRoleId | ✔️ |
范围映射
应用程序编程接口 | 函数名称 | 支持 |
---|
获取客户端的所有范围映射 | | |
将客户端级别角色添加到客户端范围 | | |
获取与客户端范围关联的角色 返回客户端的角色。 | | |
从客户端范围中删除客户端级别角色。 | | |
可用的客户端级别角色 返回可与客户端范围关联的客户端角色 | | |
获取有效的客户端角色 返回与客户端范围关联的客户端角色。 | | |
将一组领域级角色添加到客户端范围 | | |
获取与客户端范围关联的领域级角色 | | |
从客户端范围中删除一组领域级角色 | | |
获取可附加到此客户端范围的领域级角色 | | |
获取与客户端范围关联的有效领域级角色 其作用是递归与客户端范围关联的任何复合角色,并将这些角色添加到此列表中。 | | |
获取客户端的所有范围映射 | | |
将客户端级别角色添加到客户端范围 | | |
获取与客户端范围关联的角色 返回客户端的角色。 | | |
从客户端范围中删除客户端级别角色。 | | |
可用的客户端级别角色 返回可与客户端范围关联的客户端角色 | | |
获取有效的客户端角色 返回与客户端范围关联的客户端角色。 | | |
将一组领域级角色添加到客户端范围 | | |
获取与客户端范围关联的领域级角色 | | |
从客户端范围中删除一组领域级角色 | | |
获取可附加到此客户端范围的领域级角色 | | |
获取与客户端范围关联的有效领域级角色 其作用是递归与客户端范围关联的任何复合角色,并将这些角色添加到此列表中。 | | |
用户存储提供商
应用程序编程接口 | 函数名称 | 支持 |
---|
管理控制台需要这个才能在显示客户详细信息时显示提供商的简单名称 KEYCLOAK-4328 | | |
管理控制台需要这个才能在显示用户详细信息时显示提供商的简单名称 KEYCLOAK-4328 | | |
删除导入的用户 | | |
触发用户同步操作可以是“triggerFullSync”或“triggerChangedUsersSync” | | |
取消导入用户与存储提供商的链接 | | |
与 ldap 映射器(角色、组等)方向相关的映射器数据的触发同步是“fedToKeycloak”或“keycloakToFed” | | |
用户
应用程序编程接口 | 函数名称 | 支持 |
---|
创建新用户 用户名必须是唯一的。 | 创建用户 | ✔️ |
获取用户 返回根据查询参数过滤的用户列表 | 获取用户 | ✔️ |
GET /{领域}/用户/计数 | 获取用户数 | ✔️ |
获取用户的代表 | 获取用户 | ️️️✔️ |
更新用户 | 更新用户 | ️️️✔️ |
删除用户 | 删除用户 | ️️️✔️ |
获得用户的同意 | | ️✔️ |
撤销用户对特定客户端的同意和离线令牌 | | |
禁用特定类型用户的所有凭据 | | |
向用户发送更新帐户电子邮件 电子邮件中包含一个链接,用户可以单击该链接来执行一组所需的操作。 | 执行操作电子邮件 | ✔️ |
获取与用户关联的社交登录信息 | | ✔️ |
向用户添加社交登录提供商 | | ✔️ |
从用户中删除社交登录提供商 | | ✔️ |
GET /{领域}/用户/{id}/组 | 获取用户组 | ✔️ |
GET /{realm}/users/{id}/groups/count | 获取用户组计数 | ✔️ |
PUT /{realm}/users/{id}/groups/{groupId} | 添加用户到组 | ✔️ |
删除 /{realm}/users/{id}/groups/{groupId} | 从组中删除用户 | ✔️ |
冒充用户 | 冒充用户 | ✔️ |
删除与该用户关联的所有用户会话 还向具有管理 URL 的所有客户端发送通知,以使特定用户的会话失效。 | 注销用户 | ✔️ |
获取与用户和客户端关联的离线会话 | | |
从用户中删除 TOTP | | |
为用户设置新密码。 | 重置用户密码 | ✔️ |
向用户发送电子邮件验证电子邮件 电子邮件中包含一个链接,用户可以单击该链接来验证其电子邮件地址。 | 发送验证邮件 | ✔️ |
获取与用户关联的会话 | 获取用户会话 | ✔️ |
获取与用户关联的凭据 | 获取用户凭证 | ✔️ |
删除与用户关联的凭据 | 删除用户凭证 | ✔️ |
根
应用程序编程接口 | 函数名称 | 支持 |
---|
获取此服务器上可用的主题、社交提供程序、身份验证提供程序和事件侦听器 | | |
CORS 预检 | | |