python-keycloak is a Python package providing access to the Keycloak API.
Project description
Python Keycloak
python-keycloak is a Python package providing access to the Keycloak API.
Installation
Install via PyPI:
$ pip install python-keycloak
Bug reports
Please report bugs and feature requests at https://github.com/marcospereirampj/python-keycloak/issues
Documentation
The documentation for python-keycloak is available on readthedocs.
Example of Using Keycloak OpenID
from keycloak import KeycloakOpenID
# Configure client
keycloak_openid = KeycloakOpenID(server_url="http://localhost:8080/auth/",
client_id="example_client",
realm_name="example_realm",
client_secret_key="secret")
# Get WellKnown
config_well_known = keycloak_openid.well_known()
# Get Code With Oauth Authorization Request
auth_url = keycloak_openid.auth_url(
redirect_uri="your_call_back_url",
scope="email",
state="your_state_info")
# Get Access Token With Code
access_token = keycloak_openid.token(
grant_type='authorization_code',
code='the_code_you_get_from_auth_url_callback',
redirect_uri="your_call_back_url")
# Get Token
token = keycloak_openid.token("user", "password")
token = keycloak_openid.token("user", "password", totp="012345")
# Get token using Token Exchange
token = keycloak_openid.exchange_token(token['access_token'], "my_client", "other_client", "some_user")
# Get Userinfo
userinfo = keycloak_openid.userinfo(token['access_token'])
# Refresh token
token = keycloak_openid.refresh_token(token['refresh_token'])
# Logout
keycloak_openid.logout(token['refresh_token'])
Example of Using Keycloak Admin API
from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnection
keycloak_connection = KeycloakOpenIDConnection(
server_url="http://localhost:8080/",
username='example-admin',
password='secret',
realm_name="master",
user_realm_name="only_if_other_realm_than_master",
client_id="my_client",
client_secret_key="client-secret",
verify=True)
keycloak_admin = KeycloakAdmin(connection=keycloak_connection)
# Add user
new_user = keycloak_admin.create_user({"email": "example@example.com",
"username": "example@example.com",
"enabled": True,
"firstName": "Example",
"lastName": "Example"})
# Add user and raise exception if username already exists
# exist_ok currently defaults to True for backwards compatibility reasons
new_user = keycloak_admin.create_user({"email": "example@example.com",
"username": "example@example.com",
"enabled": True,
"firstName": "Example",
"lastName": "Example"},
exist_ok=False)
# Add user and set password
new_user = keycloak_admin.create_user({"email": "example@example.com",
"username": "example@example.com",
"enabled": True,
"firstName": "Example",
"lastName": "Example",
"credentials": [{"value": "secret","type": "password",}]})
For more details, see the documentation available on readthedocs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python_keycloak-3.9.0.tar.gz
(44.0 kB
view details)
Built Distribution
File details
Details for the file python_keycloak-3.9.0.tar.gz
.
File metadata
- Download URL: python_keycloak-3.9.0.tar.gz
- Upload date:
- Size: 44.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c2cd580ded92326b74a376fe453519b3a6db019803032cae26a4b9099e1afd0 |
|
MD5 | 05a6f44a66bfad041913b8325c2c8144 |
|
BLAKE2b-256 | e9d2f8802fd78101c60939f3ef498aaf92387eff08f21ee4f5ef7df9a8e8c954 |
File details
Details for the file python_keycloak-3.9.0-py3-none-any.whl
.
File metadata
- Download URL: python_keycloak-3.9.0-py3-none-any.whl
- Upload date:
- Size: 58.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce6a33af5840469e71090b8f556b67488561c723693f3581396ed088bce0665a |
|
MD5 | 2d4b21f500acb2382b8be2fd6a32ef76 |
|
BLAKE2b-256 | 2499df7bf17bceaf20202f4bcf2d459546a72ad9675542feca593d63d9e7b7c7 |