使用密钥斗篷创建组并为组分配角色。然后创建用户并将用户分配到特定的组。
要在我的应用程序中访问所有这些,我使用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'
}
如何访问用户的组和角色信息。
为我的领域创建了一个管理员用户。并像这样继承类
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")
您需要在同一个库中使用“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使用