garpix-keycloak


Namegarpix-keycloak JSON
Version 1.2.1 PyPI version JSON
download
home_pagehttps://github.com/garpixcms/garpix_keycloak
Summary
upload_time2023-03-22 15:15:59
maintainer
docs_urlNone
authorGarpix LTD
requires_python
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Garpix Keycloak

Keycloak uth module for Django/DRF projects. Part of GarpixCMS.

Used packages: 

* [django rest framework](https://www.django-rest-framework.org/api-guide/authentication/)
* etc; see setup.py

## Quickstart

Install with pip:

```bash
pip install garpix_keycloak
```

Add the `garpix_keycloak` to your `INSTALLED_APPS`:

```python
# settings.py

# ...
INSTALLED_APPS = [
    # ...
    'garpix_keycloak',
]
```

Add `KeycloakUserMixin` to your `User` model:

```python
from django.contrib.auth.models import AbstractUser

from garpix_keycloak.mixins import KeycloakUserMixin


class User(AbstractUser, KeycloakUserMixin):

    class Meta:
        verbose_name = 'Пользователь'
        verbose_name_plural = 'Пользователи'

    def __str__(self):
        return self.username

```

Add `KeycloakAuthMiddleware` to `MIDDLEWARE` settings after `django.contrib.auth.middleware.AuthenticationMiddleware`:

```python
# settings.py


MIDDLEWARE = [
    # ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'garpix_keycloak.middlewares.KeycloakAuthMiddleware',
]
```

Add authentication backend:

```python
AUTHENTICATION_BACKENDS = [
    # ...
    'garpix_keycloak.backends.KeycloakAuthenticationBackend'
]
```

Add keycloak parameters to `settings.py`:

```python
# settings.py


KEYCLOAK = {
    'SERVER_URL': 'your_server_url',
    'REALM': 'your_realm',
    'CLIENT_ID': 'your_client_id',
    'CLIENT_SECRET_KEY': 'your_client_secret_key'
}

```

Use `get_keycloak_url` from `KeycloakService` to generate keycloak log in link.

`garpix_keycloak` creates `User` model instance, using `create_keycloak_user` class method. 
You can override it if you need some customization in your project.

Enjoy!


# Changelog

See [CHANGELOG.md](CHANGELOG.md).

# Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).

# License

[MIT](LICENSE)

---

Developed by Garpix / [https://garpix.com](https://garpix.com)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/garpixcms/garpix_keycloak",
    "name": "garpix-keycloak",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Garpix LTD",
    "author_email": "info@garpix.com",
    "download_url": "https://files.pythonhosted.org/packages/07/cf/619f6a362ac5316584a4274e747d5a6834c631b786b47b101af3ad554f4f/garpix_keycloak-1.2.1.tar.gz",
    "platform": null,
    "description": "# Garpix Keycloak\n\nKeycloak uth module for Django/DRF projects. Part of GarpixCMS.\n\nUsed packages: \n\n* [django rest framework](https://www.django-rest-framework.org/api-guide/authentication/)\n* etc; see setup.py\n\n## Quickstart\n\nInstall with pip:\n\n```bash\npip install garpix_keycloak\n```\n\nAdd the `garpix_keycloak` to your `INSTALLED_APPS`:\n\n```python\n# settings.py\n\n# ...\nINSTALLED_APPS = [\n    # ...\n    'garpix_keycloak',\n]\n```\n\nAdd `KeycloakUserMixin` to your `User` model:\n\n```python\nfrom django.contrib.auth.models import AbstractUser\n\nfrom garpix_keycloak.mixins import KeycloakUserMixin\n\n\nclass User(AbstractUser, KeycloakUserMixin):\n\n    class Meta:\n        verbose_name = '\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c'\n        verbose_name_plural = '\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438'\n\n    def __str__(self):\n        return self.username\n\n```\n\nAdd `KeycloakAuthMiddleware` to `MIDDLEWARE` settings after `django.contrib.auth.middleware.AuthenticationMiddleware`:\n\n```python\n# settings.py\n\n\nMIDDLEWARE = [\n    # ...\n    'django.contrib.sessions.middleware.SessionMiddleware',\n    'django.contrib.auth.middleware.AuthenticationMiddleware',\n    'garpix_keycloak.middlewares.KeycloakAuthMiddleware',\n]\n```\n\nAdd authentication backend:\n\n```python\nAUTHENTICATION_BACKENDS = [\n    # ...\n    'garpix_keycloak.backends.KeycloakAuthenticationBackend'\n]\n```\n\nAdd keycloak parameters to `settings.py`:\n\n```python\n# settings.py\n\n\nKEYCLOAK = {\n    'SERVER_URL': 'your_server_url',\n    'REALM': 'your_realm',\n    'CLIENT_ID': 'your_client_id',\n    'CLIENT_SECRET_KEY': 'your_client_secret_key'\n}\n\n```\n\nUse `get_keycloak_url` from `KeycloakService` to generate keycloak log in link.\n\n`garpix_keycloak` creates `User` model instance, using `create_keycloak_user` class method. \nYou can override it if you need some customization in your project.\n\nEnjoy!\n\n\n# Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md).\n\n# Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n# License\n\n[MIT](LICENSE)\n\n---\n\nDeveloped by Garpix / [https://garpix.com](https://garpix.com)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "",
    "version": "1.2.1",
    "project_urls": {
        "Homepage": "https://github.com/garpixcms/garpix_keycloak"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01ac92be7cdb89deb6a920ee27a8e4f5cb843095aff0fd95811df29877892cae",
                "md5": "ef7b40aa72b2a521fa605470558f4aac",
                "sha256": "4bd756fe1253f70c2d552f3c40878671fe6095e3ea42098e7233d5f7a6425956"
            },
            "downloads": -1,
            "filename": "garpix_keycloak-1.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ef7b40aa72b2a521fa605470558f4aac",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 12872,
            "upload_time": "2023-03-22T15:15:56",
            "upload_time_iso_8601": "2023-03-22T15:15:56.465049Z",
            "url": "https://files.pythonhosted.org/packages/01/ac/92be7cdb89deb6a920ee27a8e4f5cb843095aff0fd95811df29877892cae/garpix_keycloak-1.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "07cf619f6a362ac5316584a4274e747d5a6834c631b786b47b101af3ad554f4f",
                "md5": "1d4b84da76219560b9104ac945aff420",
                "sha256": "f9e1ae1654e7abc580958ea7f13de08e243eba54175068b166afb646e6a77e1f"
            },
            "downloads": -1,
            "filename": "garpix_keycloak-1.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "1d4b84da76219560b9104ac945aff420",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 8771,
            "upload_time": "2023-03-22T15:15:59",
            "upload_time_iso_8601": "2023-03-22T15:15:59.041198Z",
            "url": "https://files.pythonhosted.org/packages/07/cf/619f6a362ac5316584a4274e747d5a6834c631b786b47b101af3ad554f4f/garpix_keycloak-1.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-22 15:15:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "garpixcms",
    "github_project": "garpix_keycloak",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "garpix-keycloak"
}
        
Elapsed time: 0.25793s