
* set auth_via Signed-off-by: Jens Langhammer <jens@goauthentik.io> * allow requests with json content type Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix group schema Signed-off-by: Jens Langhammer <jens@goauthentik.io> * start improving error handling Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add scim group patch for members Signed-off-by: Jens Langhammer <jens@goauthentik.io> * unrelated #1: fix debug check on startup Signed-off-by: Jens Langhammer <jens@goauthentik.io> * unrelated fix #2: fix path for user page Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add group view tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add more user tests too Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
"""SCIM Meta views"""
|
|
|
|
from django.conf import settings
|
|
from rest_framework.request import Request
|
|
from rest_framework.response import Response
|
|
|
|
from authentik.sources.scim.views.v2.base import SCIMView
|
|
|
|
|
|
class ServiceProviderConfigView(SCIMView):
|
|
"""ServiceProviderConfig, https://ldapwiki.com/wiki/SCIM%20ServiceProviderConfig%20endpoint"""
|
|
|
|
# pylint: disable=unused-argument
|
|
def get(self, request: Request, source_slug: str) -> Response:
|
|
"""Get ServiceProviderConfig"""
|
|
auth_schemas = [
|
|
{
|
|
"type": "oauthbearertoken",
|
|
"name": "OAuth Bearer Token",
|
|
"description": "Authentication scheme using the OAuth Bearer Token Standard",
|
|
"primary": True,
|
|
},
|
|
]
|
|
if settings.TEST or settings.DEBUG:
|
|
auth_schemas.append(
|
|
{
|
|
"type": "httpbasic",
|
|
"name": "HTTP Basic",
|
|
"description": "Authentication scheme using HTTP Basic authorization",
|
|
},
|
|
)
|
|
return Response(
|
|
{
|
|
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"],
|
|
"authenticationSchemes": auth_schemas,
|
|
# We only support patch for groups currently, so don't broadly advertise it.
|
|
# Implementations that require Group patch will use it regardless of this flag.
|
|
"patch": {"supported": False},
|
|
"bulk": {"supported": False, "maxOperations": 0, "maxPayloadSize": 0},
|
|
"filter": {
|
|
"supported": True,
|
|
"maxResults": int(settings.REST_FRAMEWORK["PAGE_SIZE"]),
|
|
},
|
|
"changePassword": {"supported": False},
|
|
"sort": {"supported": False},
|
|
"etag": {"supported": False},
|
|
}
|
|
)
|