python-keycloak 404 error

184 views
Skip to first unread message

Y Chen

unread,
Feb 12, 2024, 12:09:20 PM2/12/24
to cBioPortal for Cancer Genomics Discussion Group
Hi,
We are trying to use python-keycloak (https://python-keycloak.readthedocs.io/en/latest/) to manage keycloak users through python. However, we get 404 error when doing that. I hope some people here use this package. Suggestions are highly appreciated.

=========
Command:
from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnection

keycloak_connection = KeycloakOpenIDConnection(
                        server_url="http://<ip>:9080/auth/",
                        username='admin',
                        password=password,
                        realm_name="cbioportal",
                        user_realm_name="admin",
                        client_id="account",
                        client_secret_key="f542.....617e",
                        verify=True)

Error message:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/site-packages/keycloak/openid_connection.py", line 119, in __init__
    self.get_token()
  File "/usr/local/lib/python3.8/site-packages/keycloak/openid_connection.py", line 320, in get_token
    self.token = self.keycloak_openid.token(
  File "/usr/local/lib/python3.8/site-packages/keycloak/keycloak_openid.py", line 319, in token
    return raise_error_from_response(data_raw, KeycloakPostError)
  File "/usr/local/lib/python3.8/site-packages/keycloak/exceptions.py", line 192, in raise_error_from_response
    raise error(
keycloak.exceptions.KeycloakPostError: 404: b''


David

unread,
Feb 13, 2024, 12:57:29 PM2/13/24
to cBioPortal for Cancer Genomics Discussion Group
Hi,
Make connection through 'admin-cli' of  'Master' Realm and then switch to your custom realm for further process.


from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnection

keycloak_connection = KeycloakOpenIDConnection(
                        server_url="http://<ip>:9080/",
                        username='admin',
                        password=password,
                        realm_name="master",
                        client_id="admin-cli",
                        verify=True)
keycloak_admin =  KeycloakAdmin(connection =  keycloak_connection)
keycloak_admin.change_current_realm('cbiooportal')
// Now, you're in 'cbioportal' realm 

Make sure to use latest version of keycloak & python-keycloak


Thanks,
David

Y Chen

unread,
Feb 14, 2024, 12:57:33 PM2/14/24
to cBioPortal for Cancer Genomics Discussion Group
Hi David,
Thank you so much, that works!

This is the command, verify=False because we don't set up ssl certificate yet. 
keycloak_connection = KeycloakOpenIDConnection(
                        server_url="http://<ip>:9080/auth/",
                        username='admin',
                        password=password,
                        realm_name="master",
                        client_id="admin-cli",
                        verify=False)

keycloak_admin =  KeycloakAdmin(connection =  keycloak_connection)
keycloak_admin.change_current_realm('cbiooportal')

Thanks,
Yingfei
Reply all
Reply to author
Forward
0 new messages