# django-admin-keycloak
![](https://github.com/migelbd/django-admin-keycloak/raw/main/example.png)
## Keycloak
Create Client OpenID with callback url `https://keycloak.example.ru/sso/*`
add client scopes "roles" and
set client Backchannel logout URL `https://keycloak.example.ru/sso/logout`
### Settings
```python
# define static config or add provider later in admin management
KEYCLOAK_PROVIDERS = [
{
'slug': 'local', # internal django slug
'name': 'Local', # name on login form
'client_id': 'local_django',
'client_secret': 'SECRET',
'redirect_uri': '/admin', # redirect uri after login
'server_url': 'https://keycloak.example.ru',
'realm_name': 'django',
'role_staff_user': 'dev_staff', # role for staff users
'role_super_user': 'dev_super_user', # role for superusers
}
]
```
Add to INSTALLED_APPS
```python
INSTALLED_APPS = [
'django_admin_keycloak',
'django.contrib.admin',
# ...
]
```
Add to urls.py
```python
urlpatterns = [
# ...,
path('sso/', include('django_admin_keycloak.url')),
# ...
]
```
If you define static config, you must execute command for update providers.
```bash
python manage.py update_static_providers
```
## Available signals
### user_sso_login
###### On login SSO user
- session: KeycloakSession
- request: HttpRequest
- userinfo: dict
- access_token: str
#### user_sso_logout
###### On logout SSO user
- session: KeycloakSession
- request: HttpRequest
Raw data
{
"_id": null,
"home_page": "https://github.com/migelbd/django-admin-keycloak",
"name": "django-admin-keycloak",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "keycloak,django",
"author": "Mikhail Badrazhan",
"author_email": "mikhail@devilweb.ru",
"download_url": "https://files.pythonhosted.org/packages/fd/4e/7a06a14f5f895a9ef5cd9e500f42712bb58f4c4afedadef5e9f78b2c5bfd/django_admin_keycloak-0.3.1.tar.gz",
"platform": null,
"description": "# django-admin-keycloak\n\n![](https://github.com/migelbd/django-admin-keycloak/raw/main/example.png)\n\n## Keycloak\nCreate Client OpenID with callback url `https://keycloak.example.ru/sso/*`\nadd client scopes \"roles\" and \nset client Backchannel logout URL `https://keycloak.example.ru/sso/logout`\n### Settings \n```python\n\n# define static config or add provider later in admin management\nKEYCLOAK_PROVIDERS = [\n {\n 'slug': 'local', # internal django slug\n 'name': 'Local', # name on login form\n 'client_id': 'local_django',\n 'client_secret': 'SECRET',\n 'redirect_uri': '/admin', # redirect uri after login\n 'server_url': 'https://keycloak.example.ru',\n 'realm_name': 'django',\n 'role_staff_user': 'dev_staff', # role for staff users\n 'role_super_user': 'dev_super_user', # role for superusers\n }\n]\n\n```\nAdd to INSTALLED_APPS\n```python\nINSTALLED_APPS = [\n 'django_admin_keycloak',\n 'django.contrib.admin',\n # ...\n]\n```\nAdd to urls.py\n```python\nurlpatterns = [\n # ...,\n path('sso/', include('django_admin_keycloak.url')),\n # ...\n]\n```\n\nIf you define static config, you must execute command for update providers.\n```bash\npython manage.py update_static_providers\n```\n## Available signals\n### user_sso_login\n###### On login SSO user\n- session: KeycloakSession\n- request: HttpRequest\n- userinfo: dict\n- access_token: str\n#### user_sso_logout\n###### On logout SSO user\n- session: KeycloakSession\n- request: HttpRequest\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Django Admin Keycloak",
"version": "0.3.1",
"project_urls": {
"Homepage": "https://github.com/migelbd/django-admin-keycloak",
"Repository": "https://github.com/migelbd/django-admin-keycloak"
},
"split_keywords": [
"keycloak",
"django"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0f17d5633ac35d75662a83522d2036b559ccd472d0f88137318cef7305d59527",
"md5": "d2fc16ffee4e38320d59c44c675f6414",
"sha256": "733863f97b099b0a5909542eec27b7187a88a87b0a80e10d0c0f882e07bf0fac"
},
"downloads": -1,
"filename": "django_admin_keycloak-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d2fc16ffee4e38320d59c44c675f6414",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 20471,
"upload_time": "2024-02-14T11:36:34",
"upload_time_iso_8601": "2024-02-14T11:36:34.546090Z",
"url": "https://files.pythonhosted.org/packages/0f/17/d5633ac35d75662a83522d2036b559ccd472d0f88137318cef7305d59527/django_admin_keycloak-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fd4e7a06a14f5f895a9ef5cd9e500f42712bb58f4c4afedadef5e9f78b2c5bfd",
"md5": "cda1c8af8740f8aa461ea7fb83393892",
"sha256": "4a6a5d5d26227da9224f19ec15c117953b20f97db3f27c58bbf6fdd1fc72209c"
},
"downloads": -1,
"filename": "django_admin_keycloak-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "cda1c8af8740f8aa461ea7fb83393892",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 12098,
"upload_time": "2024-02-14T11:36:36",
"upload_time_iso_8601": "2024-02-14T11:36:36.426707Z",
"url": "https://files.pythonhosted.org/packages/fd/4e/7a06a14f5f895a9ef5cd9e500f42712bb58f4c4afedadef5e9f78b2c5bfd/django_admin_keycloak-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-14 11:36:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "migelbd",
"github_project": "django-admin-keycloak",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "django-admin-keycloak"
}