rs_server_osam/utils/keycloak_handler.md
Class to handle connection and requests to Keycloak
KeycloakHandler
Class to handle connection and requests to Keycloak
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | |
get_keycloak_user_roles(user_id)
Returns the list of roles for a given user RoleRepresentation: https://www.keycloak.org/docs-api/latest/rest-api/index.html#RoleRepresentation
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
ID of user for who we want the roles |
required |
Returns:
| Type | Description |
|---|---|
list[dict]
|
list[dict]: List of RoleRepresentation as dicts |
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | |
get_keycloak_users()
Returns the list of all Keycloak users UserRepresentation: https://www.keycloak.org/docs-api/latest/rest-api/index.html#UserRepresentation
Returns:
| Type | Description |
|---|---|
list[dict]
|
list[dict]: List of UserRepresentation as dicts |
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
84 85 86 87 88 89 90 91 | |
get_obs_user_from_keycloak_user(keycloak_user)
Retrieves the attribute 'obs-user' from the given Keycloak user. Returns None if the field doesn't exist.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
keycloak_user
|
dict
|
UserRepresentation |
required |
(https
|
//www.keycloak.org/docs-api/latest/rest-api/index.html#UserRepresentation) |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
str | None: obs user ID or None |
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | |
get_obs_user_from_keycloak_username(keycloak_user)
Fetches the 'obs-user' attribute from Keycloak for the given keycloak_user.
Returns:
| Type | Description |
|---|---|
str | None
|
str or None: The 'obs-user' value if available, otherwise None. |
Raises:
| Type | Description |
|---|---|
(KeycloakConnectionError, KeycloakAuthenticationError)
|
For critical Keycloak issues. |
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | |
set_obs_user_in_keycloak_user(keycloak_user, obs_user)
Sets the attribute 'obs-user' in the given Keycloak user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
keycloak_user
|
dict
|
UserRepresentation |
required |
(https
|
//www.keycloak.org/docs-api/latest/rest-api/index.html#UserRepresentation) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
dict |
UserRepresentation (https://www.keycloak.org/docs-api/latest/rest-api/index.html#UserRepresentation) |
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | |
update_keycloak_user(user_id, payload)
Updates the Keycloak user linked to the given user_id with the given payload. The payload must follow Keycloak's UserRepresentation: https://www.keycloak.org/docs-api/latest/rest-api/index.html#UserRepresentation
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
ID of the Keycloak user to update |
required |
payload
|
dict
|
UserRepresentation with the up-to-date data |
required |
Source code in docs/rs-server/services/osam/rs_server_osam/utils/keycloak_handler.py
166 167 168 169 170 171 172 173 174 175 176 177 178 | |