当前位置: 首页 > 知识库问答 >
问题:

Python键盘斗篷获取角色和用户组

麻宜春
2023-03-14

使用密钥斗篷创建组并为组分配角色。然后创建用户并将用户分配到特定的组。

要在我的应用程序中访问所有这些,我使用Python Keycoat

如github文档中所述,使用以下代码访问用户信息。

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'])

正在获取以下用户信息

{
    'family_name': 'Lastname', 
    'preferred_username': 'user_name', 
    'sub': 'some_key', 
    'given_name': 'Fistname', 
    'name': 'Firstname Lastname', 
    'email': 'email@example.com'
}

如何访问用户的组和角色信息。

共有3个答案

乜清野
2023-03-14

为我的领域创建了一个管理员用户。并像这样继承类

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")
花俊雄
2023-03-14
    < li >转到Keycloak,选择您的客户端-
南门欣怡
2023-03-14

您需要在同一个库中使用“KeycloakAdmin”类(python keycloke):

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”的用户。

 类似资料:
  • 我想通过postman中的api将角色添加到特定客户端密钥斗篷中的用户,但我得到了“错误”:“client not Found”这个URL:post-http://localhost:8080/auth/admin/realms/{realmName}/users/{userId}/role-mappings/clients/{clientId} 本机构:

  • 我正试图从一个用KeyClope保护的Spring Boot应用程序中获取分配给特定用户的角色列表。 我已经在配置类中声明了一个bean,如下所示: 现在我可以在控制器中自动连接,我可以获得ID和用户名等信息,但如何使用获得分配给用户的角色列表?

  • 在本文档之后,我使用KeyCloak11.0.2和Spring Security来保护我的Spring Boot应用程序。 我在中使用了基本的Keycloak配置: 我有一个单独的前端角应用程序,在Keylocak中配置为不同的客户端;但与Spring Boot应用程序的领域相同。从Angular应用程序中,我将在HTTP标头中发送KeyCloak提供的令牌: Angular示例应用程序:http

  • 我正在尝试从我的前端应用程序访问KeyClope服务器/openid connect/token/introspect中的introspectendpoint,但我遇到下一个错误: 使用邮递员,卷曲或节点应用程序此请求工作正常,但从我的前端应用程序使用获取方法会出现此错误。我不确定是否可以从浏览器中的前台应用程序查询内省endpoint,或者是否只能从服务器应用程序查询。 其他endpoint,如

  • 谁知道如何使用获取id_令牌? 我一直在(Spring,JEE)和postman中与合作。 基本的工作正常,但我需要,因为有一些声明,它们不存在于中,但它们存在于中。 使用库,我可以获得Keycloak上下文,但id_token属性始终为null。 有什么主意吗?

  • 我在Karaf(4.2.8)和Fuse(7.5.0)上与Keycloak集成进行了斗争。我分别尝试了这两种方法的集成,但没有成功。 接下来,我将包含适当内容的keycloak-direct-access.json文件添加到etc中。为了检查ssh的keycloak集成,我更改org.apache.karaf.shell并将realm设置为keycloak。但之后,我无法通过Client.bat使用