使用Key Cloak创建的组并为组分配角色。 比创建用户并将用户分配给特定组。
要在我的应用程序中访问所有这些,我使用的是Python-Keycloak
如github doc中所述,使用以下代码访问用户信息。
from keycloak import KeycloakOpenID
keycloak_openid = KeycloakOpenID(server_url="http://localhost:8080/auth/",
client_id="account",
realm_name="demo",
client_secret_key="my_secret_key")
config_well_know = keycloak_openid.well_know()
token = keycloak_openid.token("username", "password")
userinfo = keycloak_openid.userinfo(token['access_token'])
获取以下userinfo
{
'family_name': 'Lastname',
'preferred_username': 'user_name',
'sub': 'some_key',
'given_name': 'Fistname',
'name': 'Firstname Lastname',
'email': 'email@example.com'
}
如何访问用户的组和角色信息。
答案 0 :(得分:1)
您需要在同一库(python-keycloak)中使用“ KeycloakAdmin”类:
from keycloak import KeycloakAdmin
admin = KeycloakAdmin(server_url='https://server-url',
username='username',
password='password',
realm_name='realm',
verify=True)
user_groups = admin.get_user_groups(user_id="user-id")
要使用KeycloakAdmin,您需要一个有权访问“ admin-cli”的用户。
答案 1 :(得分:0)
为我的领域创建了一个管理员用户。并继承像这样的类
from keycloak import KeycloakAdmin
from keycloak.exceptions import raise_error_from_response, KeycloakGetError
class CustomKeycloakAdmin(KeycloakAdmin):
def get_user_group(self,user_name):
USER_GROUP_URL = "admin/realms/{realm-name}/users/{user-id}/groups"
params_path = {"user-id":self.get_user_id(user_name),"realm-name": self.realm_name}
data_raw = self.connection.raw_get(USER_GROUP_URL.format(**params_path))
return raise_error_from_response(data_raw, KeycloakGetError)
if __name__=="__main__":
keycloak_admin = CustomKeycloakAdmin(server_url="http://localhost:8080/auth/",username='admin_user',password='admin_password',realm_name="my_realm",verify=True)
user_group = keycloak_admin.get_user_group("user_name")
答案 2 :(得分:0)
答案 3 :(得分:0)
我认为我们必须在 Keycloak 中为用户设置领域或客户端角色。 设置后,您将自动获取“user_groups”中的角色详细信息
干杯 SG
答案 4 :(得分:0)
您还可以使用 keycloak API 来检索特定用户组和角色的详细信息
示例 CURL 以获取组详细信息:
GET /{realm}/users/{id}/groups
curl 'http://keycloak.local:8000/auth/admin/realms/master/groups?first=0&max=20' \
-H 'Connection: keep-alive' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Authorization: Bearer <access_token>' \
--compressed \
--insecure
Users API可以参考keycloak官方文档keycloak Website