sssd_test_framework.roles.keycloak

Classes

Keycloak(*args, **kwargs)

Keycloak service management.

KeycloakGroup(role, name)

Keycloak group management.

KeycloakObject(role, name)

Keycloak Object.

KeycloakUser(role, name)

Keycloak user management.

class sssd_test_framework.roles.keycloak.Keycloak(*args, **kwargs)

Bases: BaseLinuxRole[KeycloakHost]

Keycloak service management.

setup() None

Make sure we have admin’s TGT so we can run ipa cli commands.

kcadm(command: str) ProcessResult

Run kcadm command on the Keycloak server.

This is the CLI to interface with the Keycloak API to perform functions like adding users, deleting groups, etc.

Parameters:

command (str) – kcadm command

Returns:

Remote process result

Return type:

ProcessResult

user(name: str) KeycloakUser

Get user object.

Parameters:

name (str) – User name.

Returns:

New user object.

Return type:

KeycloakUser

group(name: str) KeycloakGroup

Get group object.

Parameters:

name (str) – Group name.

Returns:

New group object.

Return type:

KeycloakGroup

class sssd_test_framework.roles.keycloak.KeycloakUser(role: Keycloak, name: str)

Bases: KeycloakObject

Keycloak user management.

Parameters:
  • role (Keycloak) – Keycloak role object.

  • name (str) – User name.

add(*, password: str | None = 'Secret123') KeycloakUser

Create new Keycloak user.

Parameters that are not set are ignored.

Parameters:

password (str | None, optional) – Password, defaults to ‘Secret123’

Returns:

Self.

Return type:

KeycloakUser

delete() None

Delete Keycloak user.

modify(*, firstName: str | None = None, lastName: str | None = None, email: str | None = None, enabled: bool | None = None) KeycloakUser

Modify keycloak user attributes.

Parameters:
  • firstName (str | None, optional) – User’s first name

  • lastName (str | None, optional) – User’s last name

  • email (str | None, optional) – User’s email address

  • enabled (bool | None, optional) – User account enabled/disabled status

Returns:

Remote process result

Return type:

ProcessResult

set_password(password: str | None = 'Secret123') KeycloakUser

Set Keycloak user password.

Parameters:

password (str | None, optional) – Password, defaults to ‘Secret123’

Returns:

Self

Return type:

KeycloakUser

password_change_at_logon(**kwargs) KeycloakUser

Force user to change password next logon.

Returns:

Self.

Return type:

KeycloakUser

get() dict[str, list[str]]

Get Keycloak user details.

Returns:

Dict of user info

Return type:

Dict

get_groups() list[dict[str, list[str]]]

Get Keycloak groups that user is a member of.

Returns:

Dict of user info

Return type:

Dict

class sssd_test_framework.roles.keycloak.KeycloakGroup(role: Keycloak, name: str)

Bases: KeycloakObject

Keycloak group management.

Parameters:
  • role (Keycloak) – Keycloak role object.

  • name (str) – Group name.

add() KeycloakGroup

Create new Keycloak group.

Parameters that are not set are ignored.

Returns:

Self.

Return type:

KeycloakGroup

get() dict[str, list[str]]

Get Keycloak group details.

Returns:

Dict of group info.

Return type:

Dict

add_member(member: KeycloakUser | KeycloakGroup) KeycloakGroup

Add group member.

Parameters:

member (KeycloakUser | KeycloakGroup) – User or group to add as a member.

Returns:

Self.

Return type:

KeycloakGroup

add_members(members: list[KeycloakUser | KeycloakGroup]) KeycloakGroup

Add multiple group members.

Parameters:

members (list[KeycloakUser | KeycloakGroup]) – List of users or groups to add as members.

Returns:

Self.

Return type:

KeycloakGroup

remove_member(member: KeycloakUser | KeycloakGroup) KeycloakGroup

Remove group member.

Parameters:

member (KeycloakUser | KeycloakGroup) – User or group to remove from the group.

Returns:

Self.

Return type:

KeycloakGroup

remove_members(members: list[KeycloakUser | KeycloakGroup]) KeycloakGroup

Remove multiple group members.

Parameters:

members (list[KeycloakUser | KeycloakGroup]) – List of users or groups to remove from the group.

Returns:

Self.

Return type:

KeycloakGroup