The Ponddy Auth SSO authentication library
Project description
Ponddy Auth Library
Provide the class for the Django restful framework authentication, accept the Auth
token and check the name of <API_AGENT_PREFIX>_<API_ID> in django.contrib.auth.models.Group or not.
If the group exists then append the API_AGENT_PROPERTY_NAME into request.user
let you can check either API or user permissions.
Provide the Django model permission class compatible with the restful framework, let it can support valid the permission what in this request contains the API's permission validation.
Usage
Install package
pip install -U ponddy-auth
Install into restful framework authentication setting
REST_FRAMEWORK = {
# ...
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
'ponddy_auth.authentication.SSOAuthentication', # Add this line
),
}
Settings
AUTH_TOKEN_VALID_URL
The real Auth server URL
- None default
API_AGENT_PREFIX
The prefix of API name of group
- Default: api_agent_
API_AGENT_PROPERTY_NAME
The property name what injects into the request.user
object
- Default: _api_agent
Permission
Check permission manually
# project/app/views.py
from rest_framework.decorators import api_view
@api_view(['GET'])
def my_view(request):
if request.user._api_agent.has_perm('auth.view_users') or \
request.user._api_agent.has_perms(['app.perm', 'app.perm']):
# do something
pass
Use Permission class
# project/app/views.py
from django.contrib.auth.models import User
from rest_framework import viewsets
from ponddy_auth.permissions import SSODjangoModelPermissions
from .serializers import UserSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = [SSODjangoModelPermissions, ]
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 Distributions
Built Distribution
Hashes for ponddy_auth-0.0.12-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50fee96d4b6486117fc79c5f571db7c3bea0cd2318ad5fd8e104d230779fcfe1 |
|
MD5 | 3bbcf7f4fa93e735cee81f0de1d3ab48 |
|
BLAKE2b-256 | 5785b8143aee172cb0bf23f240dd86535f5d76f3d4dddac1a1929d2b978c5a28 |