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:
Jens L 2022-12-21 12:13:11 +01:00 committed by GitHub
parent 0181a90d98
commit 609f95ac97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 886 additions and 227 deletions

View file

@ -49,11 +49,12 @@ from authentik.policies.hibp.api import HaveIBeenPwendPolicyViewSet
from authentik.policies.password.api import PasswordPolicyViewSet from authentik.policies.password.api import PasswordPolicyViewSet
from authentik.policies.reputation.api import ReputationPolicyViewSet, ReputationViewSet from authentik.policies.reputation.api import ReputationPolicyViewSet, ReputationViewSet
from authentik.providers.ldap.api import LDAPOutpostConfigViewSet, LDAPProviderViewSet from authentik.providers.ldap.api import LDAPOutpostConfigViewSet, LDAPProviderViewSet
from authentik.providers.oauth2.api.provider import OAuth2ProviderViewSet from authentik.providers.oauth2.api.providers import OAuth2ProviderViewSet
from authentik.providers.oauth2.api.scope import ScopeMappingViewSet from authentik.providers.oauth2.api.scopes import ScopeMappingViewSet
from authentik.providers.oauth2.api.tokens import AuthorizationCodeViewSet, RefreshTokenViewSet from authentik.providers.oauth2.api.tokens import AuthorizationCodeViewSet, RefreshTokenViewSet
from authentik.providers.proxy.api import ProxyOutpostConfigViewSet, ProxyProviderViewSet 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.ldap.api import LDAPPropertyMappingViewSet, LDAPSourceViewSet
from authentik.sources.oauth.api.source import OAuthSourceViewSet from authentik.sources.oauth.api.source import OAuthSourceViewSet
from authentik.sources.oauth.api.source_connection import UserOAuthSourceConnectionViewSet from authentik.sources.oauth.api.source_connection import UserOAuthSourceConnectionViewSet

View file

@ -2,7 +2,7 @@
from typing import Any from typing import Any
from django.db.models import Model 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 from rest_framework.serializers import Serializer, SerializerMethodField, ValidationError
@ -23,6 +23,12 @@ class PassiveSerializer(Serializer):
return Model() 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): class MetaNameSerializer(PassiveSerializer):
"""Add verbose names to response""" """Add verbose names to response"""

View file

@ -8,11 +8,12 @@ from rest_framework.request import Request
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet from rest_framework.viewsets import ModelViewSet
from authentik.api.decorators import permission_required
from authentik.core.api.providers import ProviderSerializer from authentik.core.api.providers import ProviderSerializer
from authentik.core.api.used_by import UsedByMixin 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.core.models import Provider
from authentik.providers.oauth2.models import OAuth2Provider from authentik.providers.oauth2.models import OAuth2Provider, RefreshToken, ScopeMapping
class OAuth2ProviderSerializer(ProviderSerializer): class OAuth2ProviderSerializer(ProviderSerializer):
@ -115,7 +116,7 @@ class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet):
) )
data["logout"] = request.build_absolute_uri( data["logout"] = request.build_absolute_uri(
reverse( reverse(
"authentik_core:if-session-end", "authentik_providers_oauth2:end-session",
kwargs={"application_slug": provider.application.slug}, kwargs={"application_slug": provider.application.slug},
) )
) )
@ -128,3 +129,28 @@ class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet):
except Provider.application.RelatedObjectDoesNotExist: # pylint: disable=no-member except Provider.application.RelatedObjectDoesNotExist: # pylint: disable=no-member
pass pass
return Response(data) 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)

View file

@ -12,7 +12,7 @@ from rest_framework.viewsets import GenericViewSet
from authentik.core.api.used_by import UsedByMixin from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.users import UserSerializer from authentik.core.api.users import UserSerializer
from authentik.core.api.utils import MetaNameSerializer 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 from authentik.providers.oauth2.models import AuthorizationCode, RefreshToken

View file

@ -128,7 +128,7 @@ class ScopeMapping(PropertyMapping):
@property @property
def serializer(self) -> type[Serializer]: def serializer(self) -> type[Serializer]:
from authentik.providers.oauth2.api.scope import ScopeMappingSerializer from authentik.providers.oauth2.api.scopes import ScopeMappingSerializer
return ScopeMappingSerializer return ScopeMappingSerializer
@ -300,7 +300,7 @@ class OAuth2Provider(Provider):
@property @property
def serializer(self) -> type[Serializer]: def serializer(self) -> type[Serializer]:
from authentik.providers.oauth2.api.provider import OAuth2ProviderSerializer from authentik.providers.oauth2.api.providers import OAuth2ProviderSerializer
return OAuth2ProviderSerializer return OAuth2ProviderSerializer

View file

@ -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/")

View file

@ -52,7 +52,7 @@ class ProviderInfoView(View):
), ),
"end_session_endpoint": self.request.build_absolute_uri( "end_session_endpoint": self.request.build_absolute_uri(
reverse( reverse(
"authentik_core:if-session-end", "authentik_providers_oauth2:end-session",
kwargs={"application_slug": provider.application.slug}, kwargs={"application_slug": provider.application.slug},
) )
), ),

View file

View file

@ -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"]

View file

@ -7,15 +7,8 @@ from django.http.response import Http404, HttpResponse
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.urls import reverse from django.urls import reverse
from django.utils.translation import gettext_lazy as _ 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.types import OpenApiTypes
from drf_spectacular.utils import ( from drf_spectacular.utils import OpenApiParameter, OpenApiResponse, extend_schema
OpenApiParameter,
OpenApiResponse,
extend_schema,
extend_schema_field,
)
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.fields import CharField, FileField, SerializerMethodField from rest_framework.fields import CharField, FileField, SerializerMethodField
from rest_framework.parsers import MultiPartParser from rest_framework.parsers import MultiPartParser
@ -28,15 +21,16 @@ from rest_framework.viewsets import ModelViewSet
from structlog.stdlib import get_logger from structlog.stdlib import get_logger
from authentik.api.decorators import permission_required 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.providers import ProviderSerializer
from authentik.core.api.used_by import UsedByMixin 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.core.models import Provider
from authentik.flows.models import Flow, FlowDesignation 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 import MetadataProcessor
from authentik.providers.saml.processors.metadata_parser import ServiceProviderMetadataParser 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 from authentik.sources.saml.processors.constants import SAML_BINDING_POST, SAML_BINDING_REDIRECT
LOGGER = get_logger() LOGGER = get_logger()
@ -236,34 +230,31 @@ class SAMLProviderViewSet(UsedByMixin, ModelViewSet):
) )
return Response(status=204) return Response(status=204)
@permission_required(
class SAMLPropertyMappingSerializer(PropertyMappingSerializer): "authentik_providers_saml.view_samlprovider",
"""SAMLPropertyMapping Serializer""" )
@extend_schema(
class Meta: responses={
200: PropertyMappingPreviewSerializer(),
model = SAMLPropertyMapping 400: OpenApiResponse(description="Bad request"),
fields = PropertyMappingSerializer.Meta.fields + [ },
"saml_name", )
"friendly_name", @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"""
class SAMLPropertyMappingFilter(FilterSet): provider: SAMLProvider = self.get_object()
"""Filter for SAMLPropertyMapping""" processor = AssertionProcessor(provider, request._request, AuthNRequest())
attributes = processor.get_attributes()
managed = extend_schema_field(OpenApiTypes.STR)(AllValuesMultipleFilter(field_name="managed")) name_id = processor.get_name_id()
data = []
class Meta: for attribute in attributes:
model = SAMLPropertyMapping item = {"Value": []}
fields = "__all__" item.update(attribute.attrib)
for value in attribute:
item["Value"].append(value.text)
class SAMLPropertyMappingViewSet(UsedByMixin, ModelViewSet): data.append(item)
"""SAMLPropertyMapping Viewset""" serializer = PropertyMappingPreviewSerializer(
instance={"preview": {"attributes": data, "nameID": name_id.text}}
queryset = SAMLPropertyMapping.objects.all() )
serializer_class = SAMLPropertyMappingSerializer return Response(serializer.data)
filterset_class = SAMLPropertyMappingFilter
search_fields = ["name"]
ordering = ["name"]

View file

@ -164,7 +164,7 @@ class SAMLProvider(Provider):
@property @property
def serializer(self) -> type[Serializer]: def serializer(self) -> type[Serializer]:
from authentik.providers.saml.api import SAMLProviderSerializer from authentik.providers.saml.api.providers import SAMLProviderSerializer
return SAMLProviderSerializer return SAMLProviderSerializer
@ -193,7 +193,7 @@ class SAMLPropertyMapping(PropertyMapping):
@property @property
def serializer(self) -> type[Serializer]: def serializer(self) -> type[Serializer]:
from authentik.providers.saml.api import SAMLPropertyMappingSerializer from authentik.providers.saml.api.property_mapping import SAMLPropertyMappingSerializer
return SAMLPropertyMappingSerializer return SAMLPropertyMappingSerializer

View file

@ -1,13 +1,15 @@
"""SAML Provider API Tests""" """SAML Provider API Tests"""
from json import loads
from tempfile import TemporaryFile from tempfile import TemporaryFile
from django.urls import reverse from django.urls import reverse
from rest_framework.test import APITestCase from rest_framework.test import APITestCase
from authentik.blueprints.tests import apply_blueprint
from authentik.core.models import Application from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_flow from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.flows.models import FlowDesignation 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 from authentik.providers.saml.tests.test_metadata import METADATA_SIMPLE
@ -107,3 +109,24 @@ class TestSAMLProviderAPI(APITestCase):
format="multipart", format="multipart",
) )
self.assertEqual(400, response.status_code) 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],
)

View file

@ -8,7 +8,7 @@ from rest_framework.viewsets import ModelViewSet
from authentik.core.api.sources import SourceSerializer from authentik.core.api.sources import SourceSerializer
from authentik.core.api.used_by import UsedByMixin 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.models import SAMLSource
from authentik.sources.saml.processors.metadata import MetadataProcessor from authentik.sources.saml.processors.metadata import MetadataProcessor

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -988,11 +988,11 @@ msgstr ""
msgid "Proxy Providers" msgid "Proxy Providers"
msgstr "" msgstr ""
#: authentik/providers/saml/api.py:225 #: authentik/providers/saml/api.py:227
msgid "Invalid XML Syntax" msgid "Invalid XML Syntax"
msgstr "" msgstr ""
#: authentik/providers/saml/api.py:235 #: authentik/providers/saml/api.py:237
#, python-format #, python-format
msgid "Failed to import Metadata: %(message)s" msgid "Failed to import Metadata: %(message)s"
msgstr "" msgstr ""

View file

@ -14663,6 +14663,36 @@ paths:
schema: schema:
$ref: '#/components/schemas/GenericError' $ref: '#/components/schemas/GenericError'
description: '' 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/: /providers/oauth2/{id}/setup_urls/:
get: get:
operationId: providers_oauth2_setup_urls_retrieve operationId: providers_oauth2_setup_urls_retrieve
@ -15424,6 +15454,36 @@ paths:
schema: schema:
$ref: '#/components/schemas/GenericError' $ref: '#/components/schemas/GenericError'
description: '' 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/: /providers/saml/{id}/used_by/:
get: get:
operationId: providers_saml_used_by_list operationId: providers_saml_used_by_list
@ -35719,6 +35779,17 @@ components:
- pk - pk
- verbose_name - verbose_name
- verbose_name_plural - 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: PropertyMappingTestResult:
type: object type: object
description: Result of a Property-mapping test description: Result of a Property-mapping test
@ -36455,6 +36526,8 @@ components:
minLength: 1 minLength: 1
authorization_flow: authorization_flow:
type: string type: string
minLength: 1
description: Visible in the URL.
file: file:
type: string type: string
format: binary format: binary

View file

@ -57,7 +57,7 @@ class TestProviderOAuth2OAuth(SeleniumTestCase):
"GF_AUTH_GENERIC_OAUTH_API_URL": (self.url("authentik_providers_oauth2:userinfo")), "GF_AUTH_GENERIC_OAUTH_API_URL": (self.url("authentik_providers_oauth2:userinfo")),
"GF_AUTH_SIGNOUT_REDIRECT_URL": ( "GF_AUTH_SIGNOUT_REDIRECT_URL": (
self.url( self.url(
"authentik_core:if-session-end", "authentik_providers_oauth2:end-session",
application_slug=self.app_slug, application_slug=self.app_slug,
) )
), ),

View file

@ -192,7 +192,7 @@ export class ApplicationForm extends ModelForm<Application, string> {
<input <input
type="checkbox" type="checkbox"
class="pf-c-check__input" 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> <label class="pf-c-check__label"> ${t`Open in new tab`} </label>
</div> </div>

View file

@ -122,8 +122,13 @@ export class ApplicationViewPage extends AKElement {
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
<a <a
href="#/core/providers/${this.application href=${`#/core/applications/${
.providerObj?.pk}" this.application.slug
};${encodeURIComponent(
JSON.stringify({
page: "page-provider",
}),
)}`}
> >
${this.application.providerObj?.name} ${this.application.providerObj?.name}
(${this.application.providerObj?.verboseName}) (${this.application.providerObj?.verboseName})

View file

@ -8,8 +8,6 @@ import "@goauthentik/elements/EmptyState";
import "@goauthentik/elements/PageHeader"; import "@goauthentik/elements/PageHeader";
import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/buttons/SpinnerButton";
import { t } from "@lingui/macro";
import { CSSResult, TemplateResult, html } from "lit"; import { CSSResult, TemplateResult, html } from "lit";
import { customElement, property } from "lit/decorators.js"; import { customElement, property } from "lit/decorators.js";
import { ifDefined } from "lit/directives/if-defined.js"; import { ifDefined } from "lit/directives/if-defined.js";
@ -70,25 +68,6 @@ export class ProviderViewPage extends AKElement {
description=${ifDefined(this.provider?.verboseName)} description=${ifDefined(this.provider?.verboseName)}
> >
</ak-page-header> </ak-page-header>
<ak-tabs> ${this.renderProvider()}`;
<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>`;
} }
} }

View file

@ -80,13 +80,33 @@ export class LDAPProviderViewPage extends AKElement {
if (!this.provider) { if (!this.provider) {
return html``; return html``;
} }
return html`${ return html` <ak-tabs>
this.provider?.assignedApplicationName <section slot="page-overview" data-tab-title="${t`Overview`}">
? html`` ${this.renderTabOverview()}
: html`<div slot="header" class="pf-c-banner pf-m-warning"> </section>
${t`Warning: Provider is not used by an Application.`} <section
</div>` 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 this.provider?.outpostSet.length < 1
? html`<div slot="header" class="pf-c-banner pf-m-warning"> ? html`<div slot="header" class="pf-c-banner pf-m-warning">

View file

@ -16,6 +16,7 @@ import { t } from "@lingui/macro";
import { CSSResult, TemplateResult, html } from "lit"; import { CSSResult, TemplateResult, html } from "lit";
import { customElement, property } from "lit/decorators.js"; import { customElement, property } from "lit/decorators.js";
import { until } from "lit/directives/until.js";
import AKGlobal from "@goauthentik/common/styles/authentik.css"; import AKGlobal from "@goauthentik/common/styles/authentik.css";
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css"; import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
@ -79,6 +80,35 @@ export class OAuth2ProviderViewPage extends AKElement {
} }
render(): TemplateResult { 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) { if (!this.provider) {
return html``; return html``;
} }
@ -277,4 +307,30 @@ export class OAuth2ProviderViewPage extends AKElement {
</div> </div>
</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>`;
}
} }

View file

@ -171,6 +171,32 @@ export class ProxyProviderViewPage extends AKElement {
} }
render(): TemplateResult { 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) { if (!this.provider) {
return html``; return html``;
} }

View file

@ -25,12 +25,21 @@ import PFContent from "@patternfly/patternfly/components/Content/content.css";
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css"; import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.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 PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css"; import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css";
import { CryptoApi, ProvidersApi, SAMLProvider } from "@goauthentik/api"; import { CryptoApi, ProvidersApi, SAMLProvider } from "@goauthentik/api";
interface SAMLPreviewAttribute {
attributes: {
Name: string;
Value: string[];
}[];
nameID: string;
}
@customElement("ak-provider-saml-view") @customElement("ak-provider-saml-view")
export class SAMLProviderViewPage extends AKElement { export class SAMLProviderViewPage extends AKElement {
@property() @property()
@ -58,6 +67,7 @@ export class SAMLProviderViewPage extends AKElement {
PFGrid, PFGrid,
PFContent, PFContent,
PFCard, PFCard,
PFList,
PFDescriptionList, PFDescriptionList,
PFForm, PFForm,
PFFormControl, PFFormControl,
@ -134,6 +144,36 @@ export class SAMLProviderViewPage extends AKElement {
} }
render(): TemplateResult { 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) { if (!this.provider) {
return html``; return html``;
} }
@ -220,104 +260,184 @@ export class SAMLProviderViewPage extends AKElement {
${ ${
this.provider.assignedApplicationName this.provider.assignedApplicationName
? html` <div class="pf-c-card pf-l-grid__item pf-m-12-col"> ? html` <div class="pf-c-card pf-l-grid__item pf-m-12-col">
<div class="pf-c-card__title">${t`SAML Configuration`}</div> <div class="pf-c-card__title">${t`SAML Configuration`}</div>
<div class="pf-c-card__body"> <div class="pf-c-card__body">
<form class="pf-c-form"> <form class="pf-c-form">
<div class="pf-c-form__group"> <div class="pf-c-form__group">
<label class="pf-c-form__label"> <label class="pf-c-form__label">
<span class="pf-c-form__label-text" <span class="pf-c-form__label-text"
>${t`EntityID/Issuer`}</span >${t`EntityID/Issuer`}</span
> >
</label> </label>
<input <input
class="pf-c-form-control" class="pf-c-form-control"
readonly readonly
type="text" type="text"
value="${ifDefined(this.provider?.issuer)}" value="${ifDefined(this.provider?.issuer)}"
/> />
</div> </div>
<div class="pf-c-form__group"> <div class="pf-c-form__group">
<label class="pf-c-form__label"> <label class="pf-c-form__label">
<span class="pf-c-form__label-text" <span class="pf-c-form__label-text"
>${t`SSO URL (Post)`}</span >${t`SSO URL (Post)`}</span
> >
</label> </label>
<input <input
class="pf-c-form-control" class="pf-c-form-control"
readonly readonly
type="text" type="text"
value="${ifDefined(this.provider.urlSsoPost)}" value="${ifDefined(this.provider.urlSsoPost)}"
/> />
</div> </div>
<div class="pf-c-form__group"> <div class="pf-c-form__group">
<label class="pf-c-form__label"> <label class="pf-c-form__label">
<span class="pf-c-form__label-text" <span class="pf-c-form__label-text"
>${t`SSO URL (Redirect)`}</span >${t`SSO URL (Redirect)`}</span
> >
</label> </label>
<input <input
class="pf-c-form-control" class="pf-c-form-control"
readonly readonly
type="text" type="text"
value="${ifDefined(this.provider.urlSsoRedirect)}" value="${ifDefined(this.provider.urlSsoRedirect)}"
/> />
</div> </div>
<div class="pf-c-form__group"> <div class="pf-c-form__group">
<label class="pf-c-form__label"> <label class="pf-c-form__label">
<span class="pf-c-form__label-text" <span class="pf-c-form__label-text"
>${t`SSO URL (IdP-initiated Login)`}</span >${t`SSO URL (IdP-initiated Login)`}</span
> >
</label> </label>
<input <input
class="pf-c-form-control" class="pf-c-form-control"
readonly readonly
type="text" type="text"
value="${ifDefined(this.provider.urlSsoInit)}" value="${ifDefined(this.provider.urlSsoInit)}"
/> />
</div> </div>
</form> </form>
</div>
</div> </div>
<div class="pf-c-card pf-l-grid__item pf-m-12-col"> </div>`
<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"
href=${this.provider.urlDownloadMetadata}
>
${t`Download`}
</a>
<ak-action-button
class="pf-m-secondary"
.apiRequest=${() => {
return navigator.clipboard.writeText(
this.provider?.urlDownloadMetadata || "",
);
}}
>
${t`Copy download URL`}
</ak-action-button>
</div>
</div>`
: html`` : html``
} }
</div> </div>
</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">
<a
class="pf-c-button pf-m-primary"
target="_blank"
href=${this.provider.urlDownloadMetadata}
>
${t`Download`}
</a>
<ak-action-button
class="pf-m-secondary"
.apiRequest=${() => {
return navigator.clipboard.writeText(
this.provider?.urlDownloadMetadata || "",
);
}}
>
${t`Copy download URL`}
</ak-action-button>
</div>
<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>`;
}
} }

View file

@ -35,7 +35,7 @@ export class Diagram extends AKElement {
const matcher = window.matchMedia("(prefers-color-scheme: light)"); const matcher = window.matchMedia("(prefers-color-scheme: light)");
const handler = (ev?: MediaQueryListEvent) => { const handler = (ev?: MediaQueryListEvent) => {
mermaid.initialize({ mermaid.initialize({
logLevel: "error", logLevel: 3,
startOnLoad: false, startOnLoad: false,
theme: ev?.matches || matcher.matches ? "default" : "dark", theme: ev?.matches || matcher.matches ? "default" : "dark",
flowchart: { flowchart: {

View file

@ -956,7 +956,10 @@ msgstr "Ändern Sie Ihr Passwort"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1357,6 +1360,7 @@ msgstr "Kopieren"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "Kopiere Schlüssel" #~ msgstr "Kopiere Schlüssel"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "Download URL kopieren" msgstr "Download URL kopieren"
@ -1895,7 +1899,6 @@ msgstr "Zertifikat herunterladen"
msgid "Download Private key" msgid "Download Private key"
msgstr "Privaten Schlüssel herunterladen" msgstr "Privaten Schlüssel herunterladen"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "Signierzertifikat herunterladen" msgstr "Signierzertifikat herunterladen"
@ -2171,6 +2174,14 @@ msgstr "Ereignisse"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "Alles funktioniert." 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "Metadaten" msgstr "Metadaten"
@ -3649,6 +3662,10 @@ msgstr "NameID Richtlinie"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "NameID Eigenschaft" msgstr "NameID Eigenschaft"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4142,7 +4159,10 @@ msgstr "Outposts sind Installationen von authentik-Komponenten, die Unterstützu
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4378,6 +4398,11 @@ msgstr "Erstellt durch Authentik"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "Vor-Authentifizierungs Ablauf" 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/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" msgid "Private Key"
@ -6970,7 +6995,6 @@ msgstr "Warnung: Keine Einladungsphase ist an einen Ablauf gebunden. Einladungen
msgid "Warning: Policy is not assigned." msgid "Warning: Policy is not assigned."
msgstr "Warnung: Keine Richtlinie zugewiesen" msgstr "Warnung: Keine Richtlinie zugewiesen"
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -950,7 +950,10 @@ msgstr "Change your password"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1361,6 +1364,7 @@ msgstr "Copy"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "Copy Key" #~ msgstr "Copy Key"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "Copy download URL" msgstr "Copy download URL"
@ -1915,7 +1919,6 @@ msgstr "Download Certificate"
msgid "Download Private key" msgid "Download Private key"
msgstr "Download Private key" msgstr "Download Private key"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "Download signing certificate" msgstr "Download signing certificate"
@ -2203,6 +2206,14 @@ msgstr "Events"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "Metadata" msgstr "Metadata"
@ -3706,6 +3719,10 @@ msgstr "NameID Policy"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "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 #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "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/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4463,6 +4483,11 @@ msgstr "Powered by authentik"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "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/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" 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." msgid "Warning: Policy is not assigned."
msgstr "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/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -934,7 +934,10 @@ msgstr "Cambia tu contraseña"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1333,6 +1336,7 @@ msgstr "Copiar"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "Copiar clave" #~ msgstr "Copiar clave"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "Copiar URL de descarga" msgstr "Copiar URL de descarga"
@ -1871,7 +1875,6 @@ msgstr "Descargar certificado"
msgid "Download Private key" msgid "Download Private key"
msgstr "Descargar clave privada" msgstr "Descargar clave privada"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "Descargar certificado de firma" msgstr "Descargar certificado de firma"
@ -2147,6 +2150,14 @@ msgstr "Eventos"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "Está todo bien." 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "Metadatos" msgstr "Metadatos"
@ -3625,6 +3638,10 @@ msgstr "Política de NameID"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "Mapeo de propiedades NameID" msgstr "Mapeo de propiedades NameID"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4118,7 +4135,10 @@ msgstr "Los puestos avanzados son implementaciones de componentes auténticos pa
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4354,6 +4374,11 @@ msgstr "Desarrollado por authentik"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "Flujo de autenticación previa" 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/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" 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." msgid "Warning: Policy is not assigned."
msgstr "Advertencia: la política no está asignada." msgstr "Advertencia: la política no está asignada."
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -939,7 +939,10 @@ msgstr "Changer votre mot de pass"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1338,6 +1341,7 @@ msgstr "Copier"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "Copier la clé" #~ msgstr "Copier la clé"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "Copier l'URL de téléchargement" msgstr "Copier l'URL de téléchargement"
@ -1874,7 +1878,6 @@ msgstr "Télécharger le certificat"
msgid "Download Private key" msgid "Download Private key"
msgstr "Télécharger la clé privée" msgstr "Télécharger la clé privée"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "Télécharger le certificat de signature" msgstr "Télécharger le certificat de signature"
@ -2150,6 +2153,14 @@ msgstr "Évènements"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "Tout va bien." 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "Métadonnées" msgstr "Métadonnées"
@ -3626,6 +3639,10 @@ msgstr "Politique NameID"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "Mappage de la propriété NameID" msgstr "Mappage de la propriété NameID"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4119,7 +4136,10 @@ msgstr "Les avant-postes sont des déploiements de composants Authentik pour pre
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4355,6 +4375,11 @@ msgstr "Propulsé par authentik"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "Flux de pré-authentification" 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/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" msgid "Private Key"
@ -6937,7 +6962,6 @@ msgstr "Attention : aucune étape dinvitation na été ajoutée à aucun f
msgid "Warning: Policy is not assigned." msgid "Warning: Policy is not assigned."
msgstr "Avertissement : la politique n'est pas assignée." msgstr "Avertissement : la politique n'est pas assignée."
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -938,7 +938,10 @@ msgstr "Zmień swoje hasło"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1339,6 +1342,7 @@ msgstr "Kopiuj"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "Kopiuj klucz" #~ msgstr "Kopiuj klucz"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "Skopiuj URL pobierania" msgstr "Skopiuj URL pobierania"
@ -1877,7 +1881,6 @@ msgstr "Pobierz certyfikat"
msgid "Download Private key" msgid "Download Private key"
msgstr "Pobierz klucz prywatny" msgstr "Pobierz klucz prywatny"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "Pobierz certyfikat podpisywania" msgstr "Pobierz certyfikat podpisywania"
@ -2153,6 +2156,14 @@ msgstr "Zdarzenia"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "Wszystko w porządku." 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "Metadane" msgstr "Metadane"
@ -3633,6 +3646,10 @@ msgstr "Zasada NameID"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "Mapowanie właściwości NameID" msgstr "Mapowanie właściwości NameID"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4126,7 +4143,10 @@ msgstr "Placówki (Outposts) to wdrożenia komponentów uwierzytelniających do
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4364,6 +4384,11 @@ msgstr "Napędzane przez authentik"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "Przepływ wstępnego uwierzytelniania" 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/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" 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." msgid "Warning: Policy is not assigned."
msgstr "Ostrzeżenie: zasada nie jest przypisana." msgstr "Ostrzeżenie: zasada nie jest przypisana."
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -942,7 +942,10 @@ msgstr ""
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1349,6 +1352,7 @@ msgstr ""
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "" #~ msgstr ""
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "" msgstr ""
@ -1901,7 +1905,6 @@ msgstr ""
msgid "Download Private key" msgid "Download Private key"
msgstr "" msgstr ""
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "" msgstr ""
@ -2189,6 +2192,14 @@ msgstr ""
msgid "Everything is ok." msgid "Everything is ok."
msgstr "" 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "" msgstr ""
@ -3688,6 +3701,10 @@ msgstr ""
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "" msgstr ""
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4195,7 +4212,10 @@ msgstr ""
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4443,6 +4463,11 @@ msgstr ""
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "" msgstr ""
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Preview"
msgstr ""
#: src/admin/crypto/CertificateKeyPairForm.ts #: src/admin/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" msgid "Private Key"
@ -7096,7 +7121,6 @@ msgstr ""
msgid "Warning: Policy is not assigned." msgid "Warning: Policy is not assigned."
msgstr "" msgstr ""
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -934,7 +934,10 @@ msgstr "Parolanızı değiştirin"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1333,6 +1336,7 @@ msgstr "Kopya"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "Anahtar Kopyala" #~ msgstr "Anahtar Kopyala"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "İndirme URL'sini" msgstr "İndirme URL'sini"
@ -1871,7 +1875,6 @@ msgstr "Sertifikayı İndirin"
msgid "Download Private key" msgid "Download Private key"
msgstr "Indir Özel anahtar" msgstr "Indir Özel anahtar"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "İmzalama sertifikasını indirme" msgstr "İmzalama sertifikasını indirme"
@ -2147,6 +2150,14 @@ msgstr "Olaylar"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "Her şey yolunda." 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "Meta veriler" msgstr "Meta veriler"
@ -3625,6 +3638,10 @@ msgstr "NameID İlkesi"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "NameID Özellik Eşlemesi" msgstr "NameID Özellik Eşlemesi"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4118,7 +4135,10 @@ msgstr "Outposts, ters proxy'ler gibi farklı ortamları ve protokolleri destekl
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4354,6 +4374,11 @@ msgstr "Auentik tarafından desteklenmektedir"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "Ön kimlik doğrulama akışı" 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/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" 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." msgid "Warning: Policy is not assigned."
msgstr "Uyarı: İlke atanmamış." msgstr "Uyarı: İlke atanmamış."
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -940,7 +940,10 @@ msgstr "更改您的密码"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1341,6 +1344,7 @@ msgstr "复制"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "复制密钥" #~ msgstr "复制密钥"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "复制下载 URL" msgstr "复制下载 URL"
@ -1879,7 +1883,6 @@ msgstr "下载证书"
msgid "Download Private key" msgid "Download Private key"
msgstr "下载私钥" msgstr "下载私钥"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "下载签名证书" msgstr "下载签名证书"
@ -2155,6 +2158,14 @@ msgstr "事件"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "一切正常。" 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "元数据" msgstr "元数据"
@ -3633,6 +3646,10 @@ msgstr "NameID 策略"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "NameID 属性映射" msgstr "NameID 属性映射"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4126,7 +4143,10 @@ msgstr "前哨是对 authentik 组件的部署,用于支持不同的环境和
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4362,6 +4382,11 @@ msgstr "由 authentik 强力驱动"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "身份验证前流程" msgstr "身份验证前流程"
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Preview"
msgstr ""
#: src/admin/crypto/CertificateKeyPairForm.ts #: src/admin/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" msgid "Private Key"
@ -6954,7 +6979,6 @@ msgstr "警告:没有邀请阶段绑定到任何流程。邀请将无法按预
msgid "Warning: Policy is not assigned." msgid "Warning: Policy is not assigned."
msgstr "警告:策略未分配。" msgstr "警告:策略未分配。"
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -940,7 +940,10 @@ msgstr "更改你的密码"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1341,6 +1344,7 @@ msgstr "复制"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "复制密钥" #~ msgstr "复制密钥"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "复制下载 URL" msgstr "复制下载 URL"
@ -1879,7 +1883,6 @@ msgstr "下载证书"
msgid "Download Private key" msgid "Download Private key"
msgstr "下载私钥" msgstr "下载私钥"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "下载签名证书" msgstr "下载签名证书"
@ -2155,6 +2158,14 @@ msgstr "事件"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "一切正常。" 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "元数据" msgstr "元数据"
@ -3633,6 +3646,10 @@ msgstr "NameID 政策"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "nameID 属性映射" msgstr "nameID 属性映射"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4126,7 +4143,10 @@ msgstr "Outpost 是对 authentik 组件的部署,以支持不同的环境和
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4362,6 +4382,11 @@ msgstr "由 authentik 强力驱动"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "身份验证前流程" msgstr "身份验证前流程"
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Preview"
msgstr ""
#: src/admin/crypto/CertificateKeyPairForm.ts #: src/admin/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" msgid "Private Key"
@ -6954,7 +6979,6 @@ msgstr "警告:没有邀请阶段绑定到任何流程。邀请将无法按预
msgid "Warning: Policy is not assigned." msgid "Warning: Policy is not assigned."
msgstr "警告:策略未分配。" msgstr "警告:策略未分配。"
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -940,7 +940,10 @@ msgstr "更改你的密码"
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/flows/FlowViewPage.ts #: src/admin/flows/FlowViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -1341,6 +1344,7 @@ msgstr "复制"
#~ msgid "Copy Key" #~ msgid "Copy Key"
#~ msgstr "复制密钥" #~ msgstr "复制密钥"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Copy download URL" msgid "Copy download URL"
msgstr "复制下载 URL" msgstr "复制下载 URL"
@ -1879,7 +1883,6 @@ msgstr "下载证书"
msgid "Download Private key" msgid "Download Private key"
msgstr "下载私钥" msgstr "下载私钥"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Download signing certificate" msgid "Download signing certificate"
msgstr "下载签名证书" msgstr "下载签名证书"
@ -2155,6 +2158,14 @@ msgstr "事件"
msgid "Everything is ok." msgid "Everything is ok."
msgstr "一切正常。" 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 #: 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/applications/wizard/saml/TypeSAMLImportApplicationWizardPage.ts
#: src/admin/providers/saml/SAMLProviderImportForm.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 #: src/admin/sources/saml/SAMLSourceViewPage.ts
msgid "Metadata" msgid "Metadata"
msgstr "元数据" msgstr "元数据"
@ -3633,6 +3646,10 @@ msgstr "NameID 政策"
msgid "NameID Property Mapping" msgid "NameID Property Mapping"
msgstr "nameID 属性映射" msgstr "nameID 属性映射"
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "NameID attribute"
msgstr ""
#: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts #: src/admin/applications/wizard/oauth/TypeOAuthApplicationWizardPage.ts
msgid "Native application" msgid "Native application"
msgstr "" msgstr ""
@ -4126,7 +4143,10 @@ msgstr "Outpost 是对 authentik 组件的部署,以支持不同的环境和
#: src/admin/AdminInterface.ts #: src/admin/AdminInterface.ts
#: src/admin/applications/ApplicationViewPage.ts #: src/admin/applications/ApplicationViewPage.ts
#: src/admin/groups/GroupViewPage.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/ldap/LDAPSourceViewPage.ts
#: src/admin/sources/oauth/OAuthSourceViewPage.ts #: src/admin/sources/oauth/OAuthSourceViewPage.ts
#: src/admin/sources/plex/PlexSourceViewPage.ts #: src/admin/sources/plex/PlexSourceViewPage.ts
@ -4362,6 +4382,11 @@ msgstr "由 authentik 强力驱动"
msgid "Pre-authentication flow" msgid "Pre-authentication flow"
msgstr "身份验证前流程" msgstr "身份验证前流程"
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts
msgid "Preview"
msgstr ""
#: src/admin/crypto/CertificateKeyPairForm.ts #: src/admin/crypto/CertificateKeyPairForm.ts
#: src/admin/stages/captcha/CaptchaStageForm.ts #: src/admin/stages/captcha/CaptchaStageForm.ts
msgid "Private Key" msgid "Private Key"
@ -6954,7 +6979,6 @@ msgstr "警告:没有邀请阶段绑定到任何流程。邀请将无法按预
msgid "Warning: Policy is not assigned." msgid "Warning: Policy is not assigned."
msgstr "警告:策略未分配。" msgstr "警告:策略未分配。"
#: src/admin/providers/ldap/LDAPProviderViewPage.ts
#: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts #: src/admin/providers/oauth2/OAuth2ProviderViewPage.ts
#: src/admin/providers/proxy/ProxyProviderViewPage.ts #: src/admin/providers/proxy/ProxyProviderViewPage.ts
#: src/admin/providers/saml/SAMLProviderViewPage.ts #: src/admin/providers/saml/SAMLProviderViewPage.ts

View file

@ -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/). 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 ## Upgrading
This release does not introduce any new requirements. This release does not introduce any new requirements.