providers: add preview for mappings (#4254)
* preview Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/admin: show provider page on application page Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * use oauth2 end session url instead of direct interface Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * dont show provider page on application page for now Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * add UI for preview Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * translate and release notes Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix lint Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * separate saml api files Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * add api tests Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
0181a90d98
commit
609f95ac97
|
@ -49,11 +49,12 @@ from authentik.policies.hibp.api import HaveIBeenPwendPolicyViewSet
|
|||
from authentik.policies.password.api import PasswordPolicyViewSet
|
||||
from authentik.policies.reputation.api import ReputationPolicyViewSet, ReputationViewSet
|
||||
from authentik.providers.ldap.api import LDAPOutpostConfigViewSet, LDAPProviderViewSet
|
||||
from authentik.providers.oauth2.api.provider import OAuth2ProviderViewSet
|
||||
from authentik.providers.oauth2.api.scope import ScopeMappingViewSet
|
||||
from authentik.providers.oauth2.api.providers import OAuth2ProviderViewSet
|
||||
from authentik.providers.oauth2.api.scopes import ScopeMappingViewSet
|
||||
from authentik.providers.oauth2.api.tokens import AuthorizationCodeViewSet, RefreshTokenViewSet
|
||||
from authentik.providers.proxy.api import ProxyOutpostConfigViewSet, ProxyProviderViewSet
|
||||
from authentik.providers.saml.api import SAMLPropertyMappingViewSet, SAMLProviderViewSet
|
||||
from authentik.providers.saml.api.property_mapping import SAMLPropertyMappingViewSet
|
||||
from authentik.providers.saml.api.providers import SAMLProviderViewSet
|
||||
from authentik.sources.ldap.api import LDAPPropertyMappingViewSet, LDAPSourceViewSet
|
||||
from authentik.sources.oauth.api.source import OAuthSourceViewSet
|
||||
from authentik.sources.oauth.api.source_connection import UserOAuthSourceConnectionViewSet
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
from typing import Any
|
||||
|
||||
from django.db.models import Model
|
||||
from rest_framework.fields import CharField, IntegerField
|
||||
from rest_framework.fields import CharField, IntegerField, JSONField
|
||||
from rest_framework.serializers import Serializer, SerializerMethodField, ValidationError
|
||||
|
||||
|
||||
|
@ -23,6 +23,12 @@ class PassiveSerializer(Serializer):
|
|||
return Model()
|
||||
|
||||
|
||||
class PropertyMappingPreviewSerializer(PassiveSerializer):
|
||||
"""Preview how the current user is mapped via the property mappings selected in a provider"""
|
||||
|
||||
preview = JSONField(read_only=True)
|
||||
|
||||
|
||||
class MetaNameSerializer(PassiveSerializer):
|
||||
"""Add verbose names to response"""
|
||||
|
||||
|
|
|
@ -8,11 +8,12 @@ from rest_framework.request import Request
|
|||
from rest_framework.response import Response
|
||||
from rest_framework.viewsets import ModelViewSet
|
||||
|
||||
from authentik.api.decorators import permission_required
|
||||
from authentik.core.api.providers import ProviderSerializer
|
||||
from authentik.core.api.used_by import UsedByMixin
|
||||
from authentik.core.api.utils import PassiveSerializer
|
||||
from authentik.core.api.utils import PassiveSerializer, PropertyMappingPreviewSerializer
|
||||
from authentik.core.models import Provider
|
||||
from authentik.providers.oauth2.models import OAuth2Provider
|
||||
from authentik.providers.oauth2.models import OAuth2Provider, RefreshToken, ScopeMapping
|
||||
|
||||
|
||||
class OAuth2ProviderSerializer(ProviderSerializer):
|
||||
|
@ -115,7 +116,7 @@ class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet):
|
|||
)
|
||||
data["logout"] = request.build_absolute_uri(
|
||||
reverse(
|
||||
"authentik_core:if-session-end",
|
||||
"authentik_providers_oauth2:end-session",
|
||||
kwargs={"application_slug": provider.application.slug},
|
||||
)
|
||||
)
|
||||
|
@ -128,3 +129,28 @@ class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet):
|
|||
except Provider.application.RelatedObjectDoesNotExist: # pylint: disable=no-member
|
||||
pass
|
||||
return Response(data)
|
||||
|
||||
@permission_required(
|
||||
"authentik_providers_oauth2.view_oauth2provider",
|
||||
)
|
||||
@extend_schema(
|
||||
responses={
|
||||
200: PropertyMappingPreviewSerializer(),
|
||||
400: OpenApiResponse(description="Bad request"),
|
||||
},
|
||||
)
|
||||
@action(detail=True, methods=["GET"])
|
||||
# pylint: disable=invalid-name, unused-argument
|
||||
def preview_user(self, request: Request, pk: int) -> Response:
|
||||
"""Preview user data for provider"""
|
||||
provider: OAuth2Provider = self.get_object()
|
||||
temp_token = RefreshToken()
|
||||
temp_token.scope = ScopeMapping.objects.filter(provider=provider).values_list(
|
||||
"scope_name", flat=True
|
||||
)
|
||||
temp_token.provider = provider
|
||||
temp_token.user = request.user
|
||||
serializer = PropertyMappingPreviewSerializer(
|
||||
instance={"preview": temp_token.create_id_token(request.user, request).to_dict()}
|
||||
)
|
||||
return Response(serializer.data)
|
|
@ -12,7 +12,7 @@ from rest_framework.viewsets import GenericViewSet
|
|||
from authentik.core.api.used_by import UsedByMixin
|
||||
from authentik.core.api.users import UserSerializer
|
||||
from authentik.core.api.utils import MetaNameSerializer
|
||||
from authentik.providers.oauth2.api.provider import OAuth2ProviderSerializer
|
||||
from authentik.providers.oauth2.api.providers import OAuth2ProviderSerializer
|
||||
from authentik.providers.oauth2.models import AuthorizationCode, RefreshToken
|
||||
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ class ScopeMapping(PropertyMapping):
|
|||
|
||||
@property
|
||||
def serializer(self) -> type[Serializer]:
|
||||
from authentik.providers.oauth2.api.scope import ScopeMappingSerializer
|
||||
from authentik.providers.oauth2.api.scopes import ScopeMappingSerializer
|
||||
|
||||
return ScopeMappingSerializer
|
||||
|
||||
|
@ -300,7 +300,7 @@ class OAuth2Provider(Provider):
|
|||
|
||||
@property
|
||||
def serializer(self) -> type[Serializer]:
|
||||
from authentik.providers.oauth2.api.provider import OAuth2ProviderSerializer
|
||||
from authentik.providers.oauth2.api.providers import OAuth2ProviderSerializer
|
||||
|
||||
return OAuth2ProviderSerializer
|
||||
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
"""Test OAuth2 API"""
|
||||
from json import loads
|
||||
|
||||
from django.urls import reverse
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from authentik.blueprints.tests import apply_blueprint
|
||||
from authentik.core.models import Application
|
||||
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
|
||||
from authentik.lib.generators import generate_id, generate_key
|
||||
from authentik.providers.oauth2.models import OAuth2Provider, ScopeMapping
|
||||
|
||||
|
||||
class TestAPI(APITestCase):
|
||||
"""Test api view"""
|
||||
|
||||
@apply_blueprint("system/providers-oauth2.yaml")
|
||||
def setUp(self) -> None:
|
||||
self.provider: OAuth2Provider = OAuth2Provider.objects.create(
|
||||
name="test",
|
||||
client_id=generate_id(),
|
||||
client_secret=generate_key(),
|
||||
authorization_flow=create_test_flow(),
|
||||
redirect_uris="http://testserver",
|
||||
)
|
||||
self.provider.property_mappings.set(ScopeMapping.objects.all())
|
||||
self.app = Application.objects.create(name="test", slug="test", provider=self.provider)
|
||||
self.user = create_test_admin_user()
|
||||
self.client.force_login(self.user)
|
||||
|
||||
def test_preview(self):
|
||||
"""Test Preview API Endpoint"""
|
||||
response = self.client.get(
|
||||
reverse("authentik_api:oauth2provider-preview-user", kwargs={"pk": self.provider.pk})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
body = loads(response.content.decode())["preview"]
|
||||
self.assertEqual(body["iss"], "http://testserver/application/o/test/")
|
||||
|
||||
def test_setup_urls(self):
|
||||
"""Test Setup URLs API Endpoint"""
|
||||
response = self.client.get(
|
||||
reverse("authentik_api:oauth2provider-setup-urls", kwargs={"pk": self.provider.pk})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
body = loads(response.content.decode())
|
||||
self.assertEqual(body["issuer"], "http://testserver/application/o/test/")
|
|
@ -52,7 +52,7 @@ class ProviderInfoView(View):
|
|||
),
|
||||
"end_session_endpoint": self.request.build_absolute_uri(
|
||||
reverse(
|
||||
"authentik_core:if-session-end",
|
||||
"authentik_providers_oauth2:end-session",
|
||||
kwargs={"application_slug": provider.application.slug},
|
||||
)
|
||||
),
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
"""SAML Property mappings API Views"""
|
||||
from django_filters.filters import AllValuesMultipleFilter
|
||||
from django_filters.filterset import FilterSet
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
from rest_framework.viewsets import ModelViewSet
|
||||
|
||||
from authentik.core.api.propertymappings import PropertyMappingSerializer
|
||||
from authentik.core.api.used_by import UsedByMixin
|
||||
from authentik.providers.saml.models import SAMLPropertyMapping
|
||||
|
||||
|
||||
class SAMLPropertyMappingSerializer(PropertyMappingSerializer):
|
||||
"""SAMLPropertyMapping Serializer"""
|
||||
|
||||
class Meta:
|
||||
|
||||
model = SAMLPropertyMapping
|
||||
fields = PropertyMappingSerializer.Meta.fields + [
|
||||
"saml_name",
|
||||
"friendly_name",
|
||||
]
|
||||
|
||||
|
||||
class SAMLPropertyMappingFilter(FilterSet):
|
||||
"""Filter for SAMLPropertyMapping"""
|
||||
|
||||
managed = extend_schema_field(OpenApiTypes.STR)(AllValuesMultipleFilter(field_name="managed"))
|
||||
|
||||
class Meta:
|
||||
model = SAMLPropertyMapping
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class SAMLPropertyMappingViewSet(UsedByMixin, ModelViewSet):
|
||||
"""SAMLPropertyMapping Viewset"""
|
||||
|
||||
queryset = SAMLPropertyMapping.objects.all()
|
||||
serializer_class = SAMLPropertyMappingSerializer
|
||||
filterset_class = SAMLPropertyMappingFilter
|
||||
search_fields = ["name"]
|
||||
ordering = ["name"]
|
|
@ -7,15 +7,8 @@ from django.http.response import Http404, HttpResponse
|
|||
from django.shortcuts import get_object_or_404
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_filters.filters import AllValuesMultipleFilter
|
||||
from django_filters.filterset import FilterSet
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
from drf_spectacular.utils import (
|
||||
OpenApiParameter,
|
||||
OpenApiResponse,
|
||||
extend_schema,
|
||||
extend_schema_field,
|
||||
)
|
||||
from drf_spectacular.utils import OpenApiParameter, OpenApiResponse, extend_schema
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.fields import CharField, FileField, SerializerMethodField
|
||||
from rest_framework.parsers import MultiPartParser
|
||||
|
@ -28,15 +21,16 @@ from rest_framework.viewsets import ModelViewSet
|
|||
from structlog.stdlib import get_logger
|
||||
|
||||
from authentik.api.decorators import permission_required
|
||||
from authentik.core.api.propertymappings import PropertyMappingSerializer
|
||||
from authentik.core.api.providers import ProviderSerializer
|
||||
from authentik.core.api.used_by import UsedByMixin
|
||||
from authentik.core.api.utils import PassiveSerializer
|
||||
from authentik.core.api.utils import PassiveSerializer, PropertyMappingPreviewSerializer
|
||||
from authentik.core.models import Provider
|
||||
from authentik.flows.models import Flow, FlowDesignation
|
||||
from authentik.providers.saml.models import SAMLPropertyMapping, SAMLProvider
|
||||
from authentik.providers.saml.models import SAMLProvider
|
||||
from authentik.providers.saml.processors.assertion import AssertionProcessor
|
||||
from authentik.providers.saml.processors.metadata import MetadataProcessor
|
||||
from authentik.providers.saml.processors.metadata_parser import ServiceProviderMetadataParser
|
||||
from authentik.providers.saml.processors.request_parser import AuthNRequest
|
||||
from authentik.sources.saml.processors.constants import SAML_BINDING_POST, SAML_BINDING_REDIRECT
|
||||
|
||||
LOGGER = get_logger()
|
||||
|
@ -236,34 +230,31 @@ class SAMLProviderViewSet(UsedByMixin, ModelViewSet):
|
|||
)
|
||||
return Response(status=204)
|
||||
|
||||
|
||||
class SAMLPropertyMappingSerializer(PropertyMappingSerializer):
|
||||
"""SAMLPropertyMapping Serializer"""
|
||||
|
||||
class Meta:
|
||||
|
||||
model = SAMLPropertyMapping
|
||||
fields = PropertyMappingSerializer.Meta.fields + [
|
||||
"saml_name",
|
||||
"friendly_name",
|
||||
]
|
||||
|
||||
|
||||
class SAMLPropertyMappingFilter(FilterSet):
|
||||
"""Filter for SAMLPropertyMapping"""
|
||||
|
||||
managed = extend_schema_field(OpenApiTypes.STR)(AllValuesMultipleFilter(field_name="managed"))
|
||||
|
||||
class Meta:
|
||||
model = SAMLPropertyMapping
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class SAMLPropertyMappingViewSet(UsedByMixin, ModelViewSet):
|
||||
"""SAMLPropertyMapping Viewset"""
|
||||
|
||||
queryset = SAMLPropertyMapping.objects.all()
|
||||
serializer_class = SAMLPropertyMappingSerializer
|
||||
filterset_class = SAMLPropertyMappingFilter
|
||||
search_fields = ["name"]
|
||||
ordering = ["name"]
|
||||
@permission_required(
|
||||
"authentik_providers_saml.view_samlprovider",
|
||||
)
|
||||
@extend_schema(
|
||||
responses={
|
||||
200: PropertyMappingPreviewSerializer(),
|
||||
400: OpenApiResponse(description="Bad request"),
|
||||
},
|
||||
)
|
||||
@action(detail=True, methods=["GET"])
|
||||
# pylint: disable=invalid-name, unused-argument
|
||||
def preview_user(self, request: Request, pk: int) -> Response:
|
||||
"""Preview user data for provider"""
|
||||
provider: SAMLProvider = self.get_object()
|
||||
processor = AssertionProcessor(provider, request._request, AuthNRequest())
|
||||
attributes = processor.get_attributes()
|
||||
name_id = processor.get_name_id()
|
||||
data = []
|
||||
for attribute in attributes:
|
||||
item = {"Value": []}
|
||||
item.update(attribute.attrib)
|
||||
for value in attribute:
|
||||
item["Value"].append(value.text)
|
||||
data.append(item)
|
||||
serializer = PropertyMappingPreviewSerializer(
|
||||
instance={"preview": {"attributes": data, "nameID": name_id.text}}
|
||||
)
|
||||
return Response(serializer.data)
|
|
@ -164,7 +164,7 @@ class SAMLProvider(Provider):
|
|||
|
||||
@property
|
||||
def serializer(self) -> type[Serializer]:
|
||||
from authentik.providers.saml.api import SAMLProviderSerializer
|
||||
from authentik.providers.saml.api.providers import SAMLProviderSerializer
|
||||
|
||||
return SAMLProviderSerializer
|
||||
|
||||
|
@ -193,7 +193,7 @@ class SAMLPropertyMapping(PropertyMapping):
|
|||
|
||||
@property
|
||||
def serializer(self) -> type[Serializer]:
|
||||
from authentik.providers.saml.api import SAMLPropertyMappingSerializer
|
||||
from authentik.providers.saml.api.property_mapping import SAMLPropertyMappingSerializer
|
||||
|
||||
return SAMLPropertyMappingSerializer
|
||||
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
"""SAML Provider API Tests"""
|
||||
from json import loads
|
||||
from tempfile import TemporaryFile
|
||||
|
||||
from django.urls import reverse
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from authentik.blueprints.tests import apply_blueprint
|
||||
from authentik.core.models import Application
|
||||
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
|
||||
from authentik.flows.models import FlowDesignation
|
||||
from authentik.providers.saml.models import SAMLProvider
|
||||
from authentik.providers.saml.models import SAMLPropertyMapping, SAMLProvider
|
||||
from authentik.providers.saml.tests.test_metadata import METADATA_SIMPLE
|
||||
|
||||
|
||||
|
@ -107,3 +109,24 @@ class TestSAMLProviderAPI(APITestCase):
|
|||
format="multipart",
|
||||
)
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
@apply_blueprint("system/providers-saml.yaml")
|
||||
def test_preview(self):
|
||||
"""Test Preview API Endpoint"""
|
||||
provider: SAMLProvider = SAMLProvider.objects.create(
|
||||
name="test",
|
||||
authorization_flow=create_test_flow(),
|
||||
)
|
||||
provider.property_mappings.set(SAMLPropertyMapping.objects.all())
|
||||
Application.objects.create(name="test", provider=provider, slug="test")
|
||||
response = self.client.get(
|
||||
reverse("authentik_api:samlprovider-preview-user", kwargs={"pk": provider.pk})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
body = loads(response.content.decode())["preview"]["attributes"]
|
||||
self.assertEqual(
|
||||
[x for x in body if x["Name"] == "http://schemas.goauthentik.io/2021/02/saml/username"][
|
||||
0
|
||||
]["Value"],
|
||||
[self.user.username],
|
||||
)
|
||||
|
|
|
@ -8,7 +8,7 @@ from rest_framework.viewsets import ModelViewSet
|
|||
|
||||
from authentik.core.api.sources import SourceSerializer
|
||||
from authentik.core.api.used_by import UsedByMixin
|
||||
from authentik.providers.saml.api import SAMLMetadataSerializer
|
||||
from authentik.providers.saml.api.providers import SAMLMetadataSerializer
|
||||
from authentik.sources.saml.models import SAMLSource
|
||||
from authentik.sources.saml.processors.metadata import MetadataProcessor
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-12-15 15:01+0000\n"
|
||||
"POT-Creation-Date: 2022-12-20 23:41+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -988,11 +988,11 @@ msgstr ""
|
|||
msgid "Proxy Providers"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/providers/saml/api.py:225
|
||||
#: authentik/providers/saml/api.py:227
|
||||
msgid "Invalid XML Syntax"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/providers/saml/api.py:235
|
||||
#: authentik/providers/saml/api.py:237
|
||||
#, python-format
|
||||
msgid "Failed to import Metadata: %(message)s"
|
||||
msgstr ""
|
||||
|
|
73
schema.yml
73
schema.yml
|
@ -14663,6 +14663,36 @@ paths:
|
|||
schema:
|
||||
$ref: '#/components/schemas/GenericError'
|
||||
description: ''
|
||||
/providers/oauth2/{id}/preview_user/:
|
||||
get:
|
||||
operationId: providers_oauth2_preview_user_retrieve
|
||||
description: Preview user data for provider
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
schema:
|
||||
type: integer
|
||||
description: A unique integer value identifying this OAuth2/OpenID Provider.
|
||||
required: true
|
||||
tags:
|
||||
- providers
|
||||
security:
|
||||
- authentik: []
|
||||
responses:
|
||||
'200':
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PropertyMappingPreview'
|
||||
description: ''
|
||||
'400':
|
||||
description: Bad request
|
||||
'403':
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GenericError'
|
||||
description: ''
|
||||
/providers/oauth2/{id}/setup_urls/:
|
||||
get:
|
||||
operationId: providers_oauth2_setup_urls_retrieve
|
||||
|
@ -15424,6 +15454,36 @@ paths:
|
|||
schema:
|
||||
$ref: '#/components/schemas/GenericError'
|
||||
description: ''
|
||||
/providers/saml/{id}/preview_user/:
|
||||
get:
|
||||
operationId: providers_saml_preview_user_retrieve
|
||||
description: Preview user data for provider
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
schema:
|
||||
type: integer
|
||||
description: A unique integer value identifying this SAML Provider.
|
||||
required: true
|
||||
tags:
|
||||
- providers
|
||||
security:
|
||||
- authentik: []
|
||||
responses:
|
||||
'200':
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PropertyMappingPreview'
|
||||
description: ''
|
||||
'400':
|
||||
description: Bad request
|
||||
'403':
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GenericError'
|
||||
description: ''
|
||||
/providers/saml/{id}/used_by/:
|
||||
get:
|
||||
operationId: providers_saml_used_by_list
|
||||
|
@ -35719,6 +35779,17 @@ components:
|
|||
- pk
|
||||
- verbose_name
|
||||
- verbose_name_plural
|
||||
PropertyMappingPreview:
|
||||
type: object
|
||||
description: Preview how the current user is mapped via the property mappings
|
||||
selected in a provider
|
||||
properties:
|
||||
preview:
|
||||
type: object
|
||||
additionalProperties: {}
|
||||
readOnly: true
|
||||
required:
|
||||
- preview
|
||||
PropertyMappingTestResult:
|
||||
type: object
|
||||
description: Result of a Property-mapping test
|
||||
|
@ -36455,6 +36526,8 @@ components:
|
|||
minLength: 1
|
||||
authorization_flow:
|
||||
type: string
|
||||
minLength: 1
|
||||
description: Visible in the URL.
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
|
|
|
@ -57,7 +57,7 @@ class TestProviderOAuth2OAuth(SeleniumTestCase):
|
|||
"GF_AUTH_GENERIC_OAUTH_API_URL": (self.url("authentik_providers_oauth2:userinfo")),
|
||||
"GF_AUTH_SIGNOUT_REDIRECT_URL": (
|
||||
self.url(
|
||||
"authentik_core:if-session-end",
|
||||
"authentik_providers_oauth2:end-session",
|
||||
application_slug=self.app_slug,
|
||||
)
|
||||
),
|
||||
|
|
|
@ -192,7 +192,7 @@ export class ApplicationForm extends ModelForm<Application, string> {
|
|||
<input
|
||||
type="checkbox"
|
||||
class="pf-c-check__input"
|
||||
?checked=${first(this.instance?.openInNewTab, true)}
|
||||
?checked=${first(this.instance?.openInNewTab, false)}
|
||||
/>
|
||||
<label class="pf-c-check__label"> ${t`Open in new tab`} </label>
|
||||
</div>
|
||||
|
|
|
@ -122,8 +122,13 @@ export class ApplicationViewPage extends AKElement {
|
|||
<dd class="pf-c-description-list__description">
|
||||
<div class="pf-c-description-list__text">
|
||||
<a
|
||||
href="#/core/providers/${this.application
|
||||
.providerObj?.pk}"
|
||||
href=${`#/core/applications/${
|
||||
this.application.slug
|
||||
};${encodeURIComponent(
|
||||
JSON.stringify({
|
||||
page: "page-provider",
|
||||
}),
|
||||
)}`}
|
||||
>
|
||||
${this.application.providerObj?.name}
|
||||
(${this.application.providerObj?.verboseName})
|
||||
|
|
|
@ -8,8 +8,6 @@ import "@goauthentik/elements/EmptyState";
|
|||
import "@goauthentik/elements/PageHeader";
|
||||
import "@goauthentik/elements/buttons/SpinnerButton";
|
||||
|
||||
import { t } from "@lingui/macro";
|
||||
|
||||
import { CSSResult, TemplateResult, html } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { ifDefined } from "lit/directives/if-defined.js";
|
||||
|
@ -70,25 +68,6 @@ export class ProviderViewPage extends AKElement {
|
|||
description=${ifDefined(this.provider?.verboseName)}
|
||||
>
|
||||
</ak-page-header>
|
||||
<ak-tabs>
|
||||
<section slot="page-overview" data-tab-title="${t`Overview`}">
|
||||
${this.renderProvider()}
|
||||
</section>
|
||||
<section
|
||||
slot="page-changelog"
|
||||
data-tab-title="${t`Changelog`}"
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__body">
|
||||
<ak-object-changelog
|
||||
targetModelPk=${this.provider?.pk || ""}
|
||||
targetModelName=${this.provider?.metaModelName || ""}
|
||||
>
|
||||
</ak-object-changelog>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</ak-tabs>`;
|
||||
${this.renderProvider()}`;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,13 +80,33 @@ export class LDAPProviderViewPage extends AKElement {
|
|||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html`${
|
||||
this.provider?.assignedApplicationName
|
||||
? html``
|
||||
: html`<div slot="header" class="pf-c-banner pf-m-warning">
|
||||
${t`Warning: Provider is not used by an Application.`}
|
||||
</div>`
|
||||
return html` <ak-tabs>
|
||||
<section slot="page-overview" data-tab-title="${t`Overview`}">
|
||||
${this.renderTabOverview()}
|
||||
</section>
|
||||
<section
|
||||
slot="page-changelog"
|
||||
data-tab-title="${t`Changelog`}"
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__body">
|
||||
<ak-object-changelog
|
||||
targetModelPk=${this.provider?.pk || ""}
|
||||
targetModelName=${this.provider?.metaModelName || ""}
|
||||
>
|
||||
</ak-object-changelog>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</ak-tabs>`;
|
||||
}
|
||||
|
||||
renderTabOverview(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html`
|
||||
${
|
||||
this.provider?.outpostSet.length < 1
|
||||
? html`<div slot="header" class="pf-c-banner pf-m-warning">
|
||||
|
|
|
@ -16,6 +16,7 @@ import { t } from "@lingui/macro";
|
|||
|
||||
import { CSSResult, TemplateResult, html } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { until } from "lit/directives/until.js";
|
||||
|
||||
import AKGlobal from "@goauthentik/common/styles/authentik.css";
|
||||
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
|
||||
|
@ -79,6 +80,35 @@ export class OAuth2ProviderViewPage extends AKElement {
|
|||
}
|
||||
|
||||
render(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html` <ak-tabs>
|
||||
<section slot="page-overview" data-tab-title="${t`Overview`}">
|
||||
${this.renderTabOverview()}
|
||||
</section>
|
||||
<section slot="page-preview" data-tab-title="${t`Preview`}">
|
||||
${this.renderTabPreview()}
|
||||
</section>
|
||||
<section
|
||||
slot="page-changelog"
|
||||
data-tab-title="${t`Changelog`}"
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__body">
|
||||
<ak-object-changelog
|
||||
targetModelPk=${this.provider?.pk || ""}
|
||||
targetModelName=${this.provider?.metaModelName || ""}
|
||||
>
|
||||
</ak-object-changelog>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</ak-tabs>`;
|
||||
}
|
||||
|
||||
renderTabOverview(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
|
@ -277,4 +307,30 @@ export class OAuth2ProviderViewPage extends AKElement {
|
|||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
renderTabPreview(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html` <div
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile pf-l-grid pf-m-gutter"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__title">
|
||||
${t`Example JWT payload (for currently authenticated user)`}
|
||||
</div>
|
||||
<div class="pf-c-card__body">
|
||||
${until(
|
||||
new ProvidersApi(DEFAULT_CONFIG)
|
||||
.providersOauth2PreviewUserRetrieve({
|
||||
id: this.provider?.pk,
|
||||
})
|
||||
.then((data) => {
|
||||
return html`<pre>${JSON.stringify(data.preview, null, 4)}</pre>`;
|
||||
}),
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -171,6 +171,32 @@ export class ProxyProviderViewPage extends AKElement {
|
|||
}
|
||||
|
||||
render(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html` <ak-tabs>
|
||||
<section slot="page-overview" data-tab-title="${t`Overview`}">
|
||||
${this.renderTabOverview()}
|
||||
</section>
|
||||
<section
|
||||
slot="page-changelog"
|
||||
data-tab-title="${t`Changelog`}"
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__body">
|
||||
<ak-object-changelog
|
||||
targetModelPk=${this.provider?.pk || ""}
|
||||
targetModelName=${this.provider?.metaModelName || ""}
|
||||
>
|
||||
</ak-object-changelog>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</ak-tabs>`;
|
||||
}
|
||||
|
||||
renderTabOverview(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
|
|
|
@ -25,12 +25,21 @@ import PFContent from "@patternfly/patternfly/components/Content/content.css";
|
|||
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
|
||||
import PFForm from "@patternfly/patternfly/components/Form/form.css";
|
||||
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
|
||||
import PFList from "@patternfly/patternfly/components/List/List.css";
|
||||
import PFPage from "@patternfly/patternfly/components/Page/page.css";
|
||||
import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css";
|
||||
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
||||
|
||||
import { CryptoApi, ProvidersApi, SAMLProvider } from "@goauthentik/api";
|
||||
|
||||
interface SAMLPreviewAttribute {
|
||||
attributes: {
|
||||
Name: string;
|
||||
Value: string[];
|
||||
}[];
|
||||
nameID: string;
|
||||
}
|
||||
|
||||
@customElement("ak-provider-saml-view")
|
||||
export class SAMLProviderViewPage extends AKElement {
|
||||
@property()
|
||||
|
@ -58,6 +67,7 @@ export class SAMLProviderViewPage extends AKElement {
|
|||
PFGrid,
|
||||
PFContent,
|
||||
PFCard,
|
||||
PFList,
|
||||
PFDescriptionList,
|
||||
PFForm,
|
||||
PFFormControl,
|
||||
|
@ -134,6 +144,36 @@ export class SAMLProviderViewPage extends AKElement {
|
|||
}
|
||||
|
||||
render(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html` <ak-tabs>
|
||||
<section slot="page-overview" data-tab-title="${t`Overview`}">
|
||||
${this.renderTabOverview()}
|
||||
</section>
|
||||
${this.renderTabMetadata()}
|
||||
<section slot="page-preview" data-tab-title="${t`Preview`}">
|
||||
${this.renderTabPreview()}
|
||||
</section>
|
||||
<section
|
||||
slot="page-changelog"
|
||||
data-tab-title="${t`Changelog`}"
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__body">
|
||||
<ak-object-changelog
|
||||
targetModelPk=${this.provider?.pk || ""}
|
||||
targetModelName=${this.provider?.metaModelName || ""}
|
||||
>
|
||||
</ak-object-changelog>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</ak-tabs>`;
|
||||
}
|
||||
|
||||
renderTabOverview(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
|
@ -277,25 +317,26 @@ export class SAMLProviderViewPage extends AKElement {
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>`
|
||||
: html``
|
||||
}
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
renderTabMetadata(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html`
|
||||
${this.provider.assignedApplicationName
|
||||
? html` <section slot="page-metadata" data-tab-title="${t`Metadata`}">
|
||||
<div
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile pf-l-grid pf-m-gutter"
|
||||
>
|
||||
<div class="pf-c-card pf-l-grid__item pf-m-12-col">
|
||||
<div class="pf-c-card__title">${t`SAML Metadata`}</div>
|
||||
<div class="pf-c-card__body">
|
||||
${until(
|
||||
new ProvidersApi(DEFAULT_CONFIG)
|
||||
.providersSamlMetadataRetrieve({
|
||||
id: this.provider.pk || 0,
|
||||
})
|
||||
.then((m) => {
|
||||
return html`<ak-codemirror
|
||||
mode="xml"
|
||||
?readOnly=${true}
|
||||
value="${ifDefined(m.metadata)}"
|
||||
></ak-codemirror>`;
|
||||
}),
|
||||
)}
|
||||
</div>
|
||||
<div class="pf-c-card__footer">
|
||||
<a
|
||||
class="pf-c-button pf-m-primary"
|
||||
target="_blank"
|
||||
|
@ -314,9 +355,88 @@ export class SAMLProviderViewPage extends AKElement {
|
|||
${t`Copy download URL`}
|
||||
</ak-action-button>
|
||||
</div>
|
||||
</div>`
|
||||
: html``
|
||||
<div class="pf-c-card__footer">
|
||||
${until(
|
||||
new ProvidersApi(DEFAULT_CONFIG)
|
||||
.providersSamlMetadataRetrieve({
|
||||
id: this.provider.pk || 0,
|
||||
})
|
||||
.then((m) => {
|
||||
return html`<ak-codemirror
|
||||
mode="xml"
|
||||
?readOnly=${true}
|
||||
value="${ifDefined(m.metadata)}"
|
||||
></ak-codemirror>`;
|
||||
}),
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>`
|
||||
: html``}
|
||||
`;
|
||||
}
|
||||
|
||||
renderTabPreview(): TemplateResult {
|
||||
if (!this.provider) {
|
||||
return html``;
|
||||
}
|
||||
return html` <div
|
||||
class="pf-c-page__main-section pf-m-no-padding-mobile pf-l-grid pf-m-gutter"
|
||||
>
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__title">${t`Example SAML attributes`}</div>
|
||||
${until(
|
||||
new ProvidersApi(DEFAULT_CONFIG)
|
||||
.providersSamlPreviewUserRetrieve({
|
||||
id: this.provider?.pk,
|
||||
})
|
||||
.then((data) => {
|
||||
const d = data.preview as SAMLPreviewAttribute;
|
||||
return html`
|
||||
<div class="pf-c-card__body">
|
||||
<dl class="pf-c-description-list pf-m-2-col-on-lg">
|
||||
<div class="pf-c-description-list__group">
|
||||
<dt class="pf-c-description-list__term">
|
||||
<span class="pf-c-description-list__text"
|
||||
>${t`NameID attribute`}</span
|
||||
>
|
||||
</dt>
|
||||
<dd class="pf-c-description-list__description">
|
||||
<div class="pf-c-description-list__text">
|
||||
${d.nameID}
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="pf-c-card__body">
|
||||
<dl class="pf-c-description-list pf-m-2-col-on-lg">
|
||||
${d.attributes.map((attr) => {
|
||||
return html` <div class="pf-c-description-list__group">
|
||||
<dt class="pf-c-description-list__term">
|
||||
<span class="pf-c-description-list__text"
|
||||
>${attr.Name}</span
|
||||
>
|
||||
</dt>
|
||||
<dd class="pf-c-description-list__description">
|
||||
<div class="pf-c-description-list__text">
|
||||
<ul class="pf-c-list">
|
||||
${attr.Value.map((value) => {
|
||||
return html`
|
||||
<li><pre>${value}</pre></li>
|
||||
`;
|
||||
})}
|
||||
</ul>
|
||||
</div>
|
||||
</dd>
|
||||
</div>`;
|
||||
})}
|
||||
</dl>
|
||||
</div>
|
||||
`;
|
||||
}),
|
||||
)}
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ export class Diagram extends AKElement {
|
|||
const matcher = window.matchMedia("(prefers-color-scheme: light)");
|
||||
const handler = (ev?: MediaQueryListEvent) => {
|
||||
mermaid.initialize({
|
||||
logLevel: "error",
|
||||
logLevel: 3,
|
||||
startOnLoad: false,
|
||||
theme: ev?.matches || matcher.matches ? "default" : "dark",
|
||||
flowchart: {
|
||||
|
|
|
@ -956,7 +956,10 @@ msgstr "Ändern Sie Ihr Passwort"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1357,6 +1360,7 @@ msgstr "Kopieren"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "Kopiere Schlüssel"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "Download URL kopieren"
|
||||
|
@ -1895,7 +1899,6 @@ msgstr "Zertifikat herunterladen"
|
|||
msgid "Download Private key"
|
||||
msgstr "Privaten Schlüssel herunterladen"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "Signierzertifikat herunterladen"
|
||||
|
@ -2171,6 +2174,14 @@ msgstr "Ereignisse"
|
|||
msgid "Everything is ok."
|
||||
msgstr "Alles funktioniert."
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3472,6 +3483,8 @@ msgstr "Nachrichten"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "Metadaten"
|
||||
|
@ -3649,6 +3662,10 @@ msgstr "NameID Richtlinie"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "NameID Eigenschaft"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4142,7 +4159,10 @@ msgstr "Outposts sind Installationen von authentik-Komponenten, die Unterstützu
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4378,6 +4398,11 @@ msgstr "Erstellt durch Authentik"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "Vor-Authentifizierungs Ablauf"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6970,7 +6995,6 @@ msgstr "Warnung: Keine Einladungsphase ist an einen Ablauf gebunden. Einladungen
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "Warnung: Keine Richtlinie zugewiesen"
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -950,7 +950,10 @@ msgstr "Change your password"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1361,6 +1364,7 @@ msgstr "Copy"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "Copy Key"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "Copy download URL"
|
||||
|
@ -1915,7 +1919,6 @@ msgstr "Download Certificate"
|
|||
msgid "Download Private key"
|
||||
msgstr "Download Private key"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "Download signing certificate"
|
||||
|
@ -2203,6 +2206,14 @@ msgstr "Events"
|
|||
msgid "Everything is ok."
|
||||
msgstr "Everything is ok."
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr "Example JWT payload (for currently authenticated user)"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr "Example SAML attributes"
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3528,6 +3539,8 @@ msgstr "Messages"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "Metadata"
|
||||
|
@ -3706,6 +3719,10 @@ msgstr "NameID Policy"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "NameID Property Mapping"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr "NameID attribute"
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr "Native application"
|
||||
|
@ -4213,7 +4230,10 @@ msgstr "Outposts are deployments of authentik components to support different en
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4463,6 +4483,11 @@ msgstr "Powered by authentik"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "Pre-authentication flow"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr "Preview"
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -7126,7 +7151,6 @@ msgstr "Warning: No invitation stage is bound to any flow. Invitations will not
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "Warning: Policy is not assigned."
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -934,7 +934,10 @@ msgstr "Cambia tu contraseña"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1333,6 +1336,7 @@ msgstr "Copiar"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "Copiar clave"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "Copiar URL de descarga"
|
||||
|
@ -1871,7 +1875,6 @@ msgstr "Descargar certificado"
|
|||
msgid "Download Private key"
|
||||
msgstr "Descargar clave privada"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "Descargar certificado de firma"
|
||||
|
@ -2147,6 +2150,14 @@ msgstr "Eventos"
|
|||
msgid "Everything is ok."
|
||||
msgstr "Está todo bien."
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3448,6 +3459,8 @@ msgstr "Mensajes"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "Metadatos"
|
||||
|
@ -3625,6 +3638,10 @@ msgstr "Política de NameID"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "Mapeo de propiedades NameID"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4118,7 +4135,10 @@ msgstr "Los puestos avanzados son implementaciones de componentes auténticos pa
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4354,6 +4374,11 @@ msgstr "Desarrollado por authentik"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "Flujo de autenticación previa"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6946,7 +6971,6 @@ msgstr "Advertencia: ninguna etapa de invitación está vinculada a ningún fluj
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "Advertencia: la política no está asignada."
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -939,7 +939,10 @@ msgstr "Changer votre mot de pass"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1338,6 +1341,7 @@ msgstr "Copier"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "Copier la clé"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "Copier l'URL de téléchargement"
|
||||
|
@ -1874,7 +1878,6 @@ msgstr "Télécharger le certificat"
|
|||
msgid "Download Private key"
|
||||
msgstr "Télécharger la clé privée"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "Télécharger le certificat de signature"
|
||||
|
@ -2150,6 +2153,14 @@ msgstr "Évènements"
|
|||
msgid "Everything is ok."
|
||||
msgstr "Tout va bien."
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3449,6 +3460,8 @@ msgstr "Messages"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "Métadonnées"
|
||||
|
@ -3626,6 +3639,10 @@ msgstr "Politique NameID"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "Mappage de la propriété NameID"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4119,7 +4136,10 @@ msgstr "Les avant-postes sont des déploiements de composants Authentik pour pre
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4355,6 +4375,11 @@ msgstr "Propulsé par authentik"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "Flux de pré-authentification"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6937,7 +6962,6 @@ msgstr "Attention : aucune étape d’invitation n’a été ajoutée à aucun f
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "Avertissement : la politique n'est pas assignée."
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -938,7 +938,10 @@ msgstr "Zmień swoje hasło"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1339,6 +1342,7 @@ msgstr "Kopiuj"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "Kopiuj klucz"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "Skopiuj URL pobierania"
|
||||
|
@ -1877,7 +1881,6 @@ msgstr "Pobierz certyfikat"
|
|||
msgid "Download Private key"
|
||||
msgstr "Pobierz klucz prywatny"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "Pobierz certyfikat podpisywania"
|
||||
|
@ -2153,6 +2156,14 @@ msgstr "Zdarzenia"
|
|||
msgid "Everything is ok."
|
||||
msgstr "Wszystko w porządku."
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3456,6 +3467,8 @@ msgstr "Wiadomości"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "Metadane"
|
||||
|
@ -3633,6 +3646,10 @@ msgstr "Zasada NameID"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "Mapowanie właściwości NameID"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4126,7 +4143,10 @@ msgstr "Placówki (Outposts) to wdrożenia komponentów uwierzytelniających do
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4364,6 +4384,11 @@ msgstr "Napędzane przez authentik"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "Przepływ wstępnego uwierzytelniania"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6956,7 +6981,6 @@ msgstr "Ostrzeżenie: żaden etap zaproszenia nie jest powiązany z żadnym prze
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "Ostrzeżenie: zasada nie jest przypisana."
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -942,7 +942,10 @@ msgstr ""
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1349,6 +1352,7 @@ msgstr ""
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr ""
|
||||
|
@ -1901,7 +1905,6 @@ msgstr ""
|
|||
msgid "Download Private key"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr ""
|
||||
|
@ -2189,6 +2192,14 @@ msgstr ""
|
|||
msgid "Everything is ok."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3510,6 +3521,8 @@ msgstr ""
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr ""
|
||||
|
@ -3688,6 +3701,10 @@ msgstr ""
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4195,7 +4212,10 @@ msgstr ""
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4443,6 +4463,11 @@ msgstr ""
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -7096,7 +7121,6 @@ msgstr ""
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -934,7 +934,10 @@ msgstr "Parolanızı değiştirin"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1333,6 +1336,7 @@ msgstr "Kopya"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "Anahtar Kopyala"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "İndirme URL'sini"
|
||||
|
@ -1871,7 +1875,6 @@ msgstr "Sertifikayı İndirin"
|
|||
msgid "Download Private key"
|
||||
msgstr "Indir Özel anahtar"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "İmzalama sertifikasını indirme"
|
||||
|
@ -2147,6 +2150,14 @@ msgstr "Olaylar"
|
|||
msgid "Everything is ok."
|
||||
msgstr "Her şey yolunda."
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3448,6 +3459,8 @@ msgstr "İletiler"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "Meta veriler"
|
||||
|
@ -3625,6 +3638,10 @@ msgstr "NameID İlkesi"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "NameID Özellik Eşlemesi"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4118,7 +4135,10 @@ msgstr "Outposts, ters proxy'ler gibi farklı ortamları ve protokolleri destekl
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4354,6 +4374,11 @@ msgstr "Auentik tarafından desteklenmektedir"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "Ön kimlik doğrulama akışı"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6946,7 +6971,6 @@ msgstr "Uyarı: Hiçbir davetiye aşaması herhangi bir akışa bağlı değildi
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "Uyarı: İlke atanmamış."
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -940,7 +940,10 @@ msgstr "更改您的密码"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1341,6 +1344,7 @@ msgstr "复制"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "复制密钥"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "复制下载 URL"
|
||||
|
@ -1879,7 +1883,6 @@ msgstr "下载证书"
|
|||
msgid "Download Private key"
|
||||
msgstr "下载私钥"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "下载签名证书"
|
||||
|
@ -2155,6 +2158,14 @@ msgstr "事件"
|
|||
msgid "Everything is ok."
|
||||
msgstr "一切正常。"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3456,6 +3467,8 @@ msgstr "消息"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "元数据"
|
||||
|
@ -3633,6 +3646,10 @@ msgstr "NameID 策略"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "NameID 属性映射"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4126,7 +4143,10 @@ msgstr "前哨是对 authentik 组件的部署,用于支持不同的环境和
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4362,6 +4382,11 @@ msgstr "由 authentik 强力驱动"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "身份验证前流程"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6954,7 +6979,6 @@ msgstr "警告:没有邀请阶段绑定到任何流程。邀请将无法按预
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "警告:策略未分配。"
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -940,7 +940,10 @@ msgstr "更改你的密码"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1341,6 +1344,7 @@ msgstr "复制"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "复制密钥"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "复制下载 URL"
|
||||
|
@ -1879,7 +1883,6 @@ msgstr "下载证书"
|
|||
msgid "Download Private key"
|
||||
msgstr "下载私钥"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "下载签名证书"
|
||||
|
@ -2155,6 +2158,14 @@ msgstr "事件"
|
|||
msgid "Everything is ok."
|
||||
msgstr "一切正常。"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3456,6 +3467,8 @@ msgstr "信息"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "元数据"
|
||||
|
@ -3633,6 +3646,10 @@ msgstr "NameID 政策"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "nameID 属性映射"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4126,7 +4143,10 @@ msgstr "Outpost 是对 authentik 组件的部署,以支持不同的环境和
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4362,6 +4382,11 @@ msgstr "由 authentik 强力驱动"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "身份验证前流程"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6954,7 +6979,6 @@ msgstr "警告:没有邀请阶段绑定到任何流程。邀请将无法按预
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "警告:策略未分配。"
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -940,7 +940,10 @@ msgstr "更改你的密码"
|
|||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/flows/FlowViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -1341,6 +1344,7 @@ msgstr "复制"
|
|||
#~ msgid "Copy Key"
|
||||
#~ msgstr "复制密钥"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Copy download URL"
|
||||
msgstr "复制下载 URL"
|
||||
|
@ -1879,7 +1883,6 @@ msgstr "下载证书"
|
|||
msgid "Download Private key"
|
||||
msgstr "下载私钥"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Download signing certificate"
|
||||
msgstr "下载签名证书"
|
||||
|
@ -2155,6 +2158,14 @@ msgstr "事件"
|
|||
msgid "Everything is ok."
|
||||
msgstr "一切正常。"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
msgid "Example JWT payload (for currently authenticated user)"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Example SAML attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
#: src/admin/events/EventInfo.ts
|
||||
|
@ -3456,6 +3467,8 @@ msgstr "信息"
|
|||
|
||||
#: src/admin/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderImportForm.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/saml/SAMLSourceViewPage.ts
|
||||
msgid "Metadata"
|
||||
msgstr "元数据"
|
||||
|
@ -3633,6 +3646,10 @@ msgstr "NameID 政策"
|
|||
msgid "NameID Property Mapping"
|
||||
msgstr "nameID 属性映射"
|
||||
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "NameID attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
|
||||
msgid "Native application"
|
||||
msgstr ""
|
||||
|
@ -4126,7 +4143,10 @@ msgstr "Outpost 是对 authentik 组件的部署,以支持不同的环境和
|
|||
#: src/admin/AdminInterface.ts
|
||||
#: src/admin/applications/ApplicationViewPage.ts
|
||||
#: src/admin/groups/GroupViewPage.ts
|
||||
#: src/admin/providers/ProviderViewPage.ts
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
#: src/admin/sources/ldap/LDAPSourceViewPage.ts
|
||||
#: src/admin/sources/oauth/OAuthSourceViewPage.ts
|
||||
#: src/admin/sources/plex/PlexSourceViewPage.ts
|
||||
|
@ -4362,6 +4382,11 @@ msgstr "由 authentik 强力驱动"
|
|||
msgid "Pre-authentication flow"
|
||||
msgstr "身份验证前流程"
|
||||
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: src/admin/crypto/CertificateKeyPairForm.ts
|
||||
#: src/admin/stages/captcha/CaptchaStageForm.ts
|
||||
msgid "Private Key"
|
||||
|
@ -6954,7 +6979,6 @@ msgstr "警告:没有邀请阶段绑定到任何流程。邀请将无法按预
|
|||
msgid "Warning: Policy is not assigned."
|
||||
msgstr "警告:策略未分配。"
|
||||
|
||||
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
|
||||
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
|
||||
#: src/admin/providers/proxy/ProxyProviderViewPage.ts
|
||||
#: src/admin/providers/saml/SAMLProviderViewPage.ts
|
||||
|
|
|
@ -13,6 +13,10 @@ slug: "2022.12"
|
|||
|
||||
The captcha stage now supports alternate compatible providers, like [hCaptcha](https://docs.hcaptcha.com/switch/) and [Turnstile](https://developers.cloudflare.com/turnstile/get-started/migrating-from-recaptcha/).
|
||||
|
||||
- Preview for OAuth2 and SAML providers
|
||||
|
||||
OAuth2 and SAML providers can now preview what the currently selected property/scope mappings's outcome will look like. This helps with seeing what data is sent to the client and implementing and testing custom mappings.
|
||||
|
||||
## Upgrading
|
||||
|
||||
This release does not introduce any new requirements.
|
||||
|
|
Reference in New Issue