authentik.sources.scim.tests.test_auth
Test SCIM Auth
1"""Test SCIM Auth""" 2 3from django.urls import reverse 4from rest_framework.test import APITestCase 5 6from authentik.core.models import Token, TokenIntents 7from authentik.core.tests.utils import create_test_admin_user 8from authentik.lib.generators import generate_id 9from authentik.sources.scim.models import SCIMSource 10 11 12class TestSCIMAuth(APITestCase): 13 """Test SCIM Auth view""" 14 15 def setUp(self) -> None: 16 self.user = create_test_admin_user() 17 self.token3 = Token.objects.create( 18 user=self.user, 19 identifier=generate_id(), 20 intent=TokenIntents.INTENT_API, 21 ) 22 self.source = SCIMSource.objects.create(name=generate_id(), slug=generate_id()) 23 self.source2 = SCIMSource.objects.create(name=generate_id(), slug=generate_id()) 24 25 def test_auth_ok(self): 26 """Test successful auth""" 27 response = self.client.get( 28 reverse( 29 "authentik_sources_scim:v2-schema", 30 kwargs={ 31 "source_slug": self.source.slug, 32 }, 33 ), 34 HTTP_AUTHORIZATION=f"Bearer {self.source.token.key}", 35 ) 36 self.assertEqual(response.status_code, 200) 37 38 def test_auth_missing(self): 39 """Test without header""" 40 response = self.client.get( 41 reverse( 42 "authentik_sources_scim:v2-schema", 43 kwargs={ 44 "source_slug": self.source.slug, 45 }, 46 ), 47 ) 48 self.assertEqual(response.status_code, 403) 49 50 def test_auth_wrong_token(self): 51 """Test with wrong token""" 52 # Token for wrong source 53 response = self.client.get( 54 reverse( 55 "authentik_sources_scim:v2-schema", 56 kwargs={ 57 "source_slug": self.source.slug, 58 }, 59 ), 60 HTTP_AUTHORIZATION=f"Bearer {self.source2.token.key}", 61 ) 62 self.assertEqual(response.status_code, 403) 63 # Token for no source 64 response = self.client.get( 65 reverse( 66 "authentik_sources_scim:v2-schema", 67 kwargs={ 68 "source_slug": self.source.slug, 69 }, 70 ), 71 HTTP_AUTHORIZATION=f"Bearer {self.token3.key}", 72 ) 73 self.assertEqual(response.status_code, 403)
class
TestSCIMAuth(rest_framework.test.APITestCase):
13class TestSCIMAuth(APITestCase): 14 """Test SCIM Auth view""" 15 16 def setUp(self) -> None: 17 self.user = create_test_admin_user() 18 self.token3 = Token.objects.create( 19 user=self.user, 20 identifier=generate_id(), 21 intent=TokenIntents.INTENT_API, 22 ) 23 self.source = SCIMSource.objects.create(name=generate_id(), slug=generate_id()) 24 self.source2 = SCIMSource.objects.create(name=generate_id(), slug=generate_id()) 25 26 def test_auth_ok(self): 27 """Test successful auth""" 28 response = self.client.get( 29 reverse( 30 "authentik_sources_scim:v2-schema", 31 kwargs={ 32 "source_slug": self.source.slug, 33 }, 34 ), 35 HTTP_AUTHORIZATION=f"Bearer {self.source.token.key}", 36 ) 37 self.assertEqual(response.status_code, 200) 38 39 def test_auth_missing(self): 40 """Test without header""" 41 response = self.client.get( 42 reverse( 43 "authentik_sources_scim:v2-schema", 44 kwargs={ 45 "source_slug": self.source.slug, 46 }, 47 ), 48 ) 49 self.assertEqual(response.status_code, 403) 50 51 def test_auth_wrong_token(self): 52 """Test with wrong token""" 53 # Token for wrong source 54 response = self.client.get( 55 reverse( 56 "authentik_sources_scim:v2-schema", 57 kwargs={ 58 "source_slug": self.source.slug, 59 }, 60 ), 61 HTTP_AUTHORIZATION=f"Bearer {self.source2.token.key}", 62 ) 63 self.assertEqual(response.status_code, 403) 64 # Token for no source 65 response = self.client.get( 66 reverse( 67 "authentik_sources_scim:v2-schema", 68 kwargs={ 69 "source_slug": self.source.slug, 70 }, 71 ), 72 HTTP_AUTHORIZATION=f"Bearer {self.token3.key}", 73 ) 74 self.assertEqual(response.status_code, 403)
Test SCIM Auth view
def
setUp(self) -> None:
16 def setUp(self) -> None: 17 self.user = create_test_admin_user() 18 self.token3 = Token.objects.create( 19 user=self.user, 20 identifier=generate_id(), 21 intent=TokenIntents.INTENT_API, 22 ) 23 self.source = SCIMSource.objects.create(name=generate_id(), slug=generate_id()) 24 self.source2 = SCIMSource.objects.create(name=generate_id(), slug=generate_id())
Hook method for setting up the test fixture before exercising it.
def
test_auth_ok(self):
26 def test_auth_ok(self): 27 """Test successful auth""" 28 response = self.client.get( 29 reverse( 30 "authentik_sources_scim:v2-schema", 31 kwargs={ 32 "source_slug": self.source.slug, 33 }, 34 ), 35 HTTP_AUTHORIZATION=f"Bearer {self.source.token.key}", 36 ) 37 self.assertEqual(response.status_code, 200)
Test successful auth
def
test_auth_missing(self):
39 def test_auth_missing(self): 40 """Test without header""" 41 response = self.client.get( 42 reverse( 43 "authentik_sources_scim:v2-schema", 44 kwargs={ 45 "source_slug": self.source.slug, 46 }, 47 ), 48 ) 49 self.assertEqual(response.status_code, 403)
Test without header
def
test_auth_wrong_token(self):
51 def test_auth_wrong_token(self): 52 """Test with wrong token""" 53 # Token for wrong source 54 response = self.client.get( 55 reverse( 56 "authentik_sources_scim:v2-schema", 57 kwargs={ 58 "source_slug": self.source.slug, 59 }, 60 ), 61 HTTP_AUTHORIZATION=f"Bearer {self.source2.token.key}", 62 ) 63 self.assertEqual(response.status_code, 403) 64 # Token for no source 65 response = self.client.get( 66 reverse( 67 "authentik_sources_scim:v2-schema", 68 kwargs={ 69 "source_slug": self.source.slug, 70 }, 71 ), 72 HTTP_AUTHORIZATION=f"Bearer {self.token3.key}", 73 ) 74 self.assertEqual(response.status_code, 403)
Test with wrong token