diff --git a/authentik/providers/oauth2/api/provider.py b/authentik/providers/oauth2/api/provider.py index 53dcf57b7..f7d77b9c3 100644 --- a/authentik/providers/oauth2/api/provider.py +++ b/authentik/providers/oauth2/api/provider.py @@ -48,6 +48,7 @@ class OAuth2ProviderSetupURLs(PassiveSerializer): user_info = CharField(read_only=True) provider_info = CharField(read_only=True) logout = CharField(read_only=True) + jwks = CharField(read_only=True) class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet): @@ -119,6 +120,12 @@ class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet): kwargs={"application_slug": provider.application.slug}, ) ) + data["jwks"] = request.build_absolute_uri( + reverse( + "authentik_providers_oauth2:jwks", + kwargs={"application_slug": provider.application.slug}, + ) + ) except Provider.application.RelatedObjectDoesNotExist: # pylint: disable=no-member pass return Response(data) diff --git a/schema.yml b/schema.yml index 9ef696f6d..2884e04d9 100644 --- a/schema.yml +++ b/schema.yml @@ -23367,9 +23367,13 @@ components: logout: type: string readOnly: true + jwks: + type: string + readOnly: true required: - authorize - issuer + - jwks - logout - provider_info - token diff --git a/web/src/locales/de.po b/web/src/locales/de.po index 98359cd89..2697f7019 100644 --- a/web/src/locales/de.po +++ b/web/src/locales/de.po @@ -62,6 +62,7 @@ msgstr "(Format: hours=-1;minutes=-2;seconds=-3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2745,6 +2746,10 @@ msgstr "Ausstellermodus" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "JWT Algorithmus" diff --git a/web/src/locales/en.po b/web/src/locales/en.po index 212245d97..dea6d0602 100644 --- a/web/src/locales/en.po +++ b/web/src/locales/en.po @@ -46,6 +46,7 @@ msgstr "(Format: hours=1;minutes=2;seconds=3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2794,6 +2795,10 @@ msgstr "Issuer mode" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "JWKS URL" + #: src/pages/providers/oauth2/OAuth2ProviderForm.ts #~ msgid "JWT Algorithm" #~ msgstr "JWT Algorithm" diff --git a/web/src/locales/es.po b/web/src/locales/es.po index a03edbe8c..ca2410463 100644 --- a/web/src/locales/es.po +++ b/web/src/locales/es.po @@ -49,6 +49,7 @@ msgstr "(Formato: horas = 1; minutos = 2; segundos = 3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2738,6 +2739,10 @@ msgstr "Modo emisor" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "algoritmo JWT" diff --git a/web/src/locales/fr_FR.po b/web/src/locales/fr_FR.po index 6f3e35f83..c6753fabf 100644 --- a/web/src/locales/fr_FR.po +++ b/web/src/locales/fr_FR.po @@ -52,6 +52,7 @@ msgstr "" #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2767,6 +2768,10 @@ msgstr "Mode de l'émetteur" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #: src/pages/providers/oauth2/OAuth2ProviderForm.ts #~ msgid "JWT Algorithm" #~ msgstr "Algorithme JWT" diff --git a/web/src/locales/pl.po b/web/src/locales/pl.po index 7e228103b..c56520cc1 100644 --- a/web/src/locales/pl.po +++ b/web/src/locales/pl.po @@ -49,6 +49,7 @@ msgstr "(Format: hours=1;minutes=2;seconds=3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2735,6 +2736,10 @@ msgstr "Tryb wystawcy" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "Algorytm JWT" diff --git a/web/src/locales/pseudo-LOCALE.po b/web/src/locales/pseudo-LOCALE.po index a415d164c..8238a0969 100644 --- a/web/src/locales/pseudo-LOCALE.po +++ b/web/src/locales/pseudo-LOCALE.po @@ -46,6 +46,7 @@ msgstr "" #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2776,6 +2777,10 @@ msgstr "" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #: src/pages/providers/oauth2/OAuth2ProviderForm.ts #~ msgid "JWT Algorithm" #~ msgstr "" diff --git a/web/src/locales/tr.po b/web/src/locales/tr.po index 70b975172..8540c9763 100644 --- a/web/src/locales/tr.po +++ b/web/src/locales/tr.po @@ -49,6 +49,7 @@ msgstr "(Biçim: saat=1; dakika=2; saniye= 3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2739,6 +2740,10 @@ msgstr "Yayımcı kipi" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "JWT Algoritması" diff --git a/web/src/locales/zh-Hans.po b/web/src/locales/zh-Hans.po index 68a9dfb4a..6e12090f0 100644 --- a/web/src/locales/zh-Hans.po +++ b/web/src/locales/zh-Hans.po @@ -50,6 +50,7 @@ msgstr "(格式:hours=1;minutes=2;seconds=3)。" #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2723,6 +2724,10 @@ msgstr "Issuer 模式" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "JSON Web Key URL。来自此 URL 的 Key 将被用于验证此身份来源的 JWT。" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "JWT 算法" diff --git a/web/src/locales/zh-Hant.po b/web/src/locales/zh-Hant.po index c0fdf243a..c1e709751 100644 --- a/web/src/locales/zh-Hant.po +++ b/web/src/locales/zh-Hant.po @@ -51,6 +51,7 @@ msgstr "(格式: hours=1;minutes=2;seconds=3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2726,6 +2727,10 @@ msgstr "Issuer mode" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "JWT 算法" diff --git a/web/src/locales/zh_TW.po b/web/src/locales/zh_TW.po index 231e6cbbc..c5b739176 100644 --- a/web/src/locales/zh_TW.po +++ b/web/src/locales/zh_TW.po @@ -51,6 +51,7 @@ msgstr "(格式: hours=1;minutes=2;seconds=3)." #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts #: src/pages/stages/invitation/InvitationListPage.ts #: src/pages/tokens/TokenListPage.ts #: src/pages/users/RelatedUserList.ts @@ -2726,6 +2727,10 @@ msgstr "Issuer mode" msgid "JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source." msgstr "" +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +msgid "JWKS URL" +msgstr "" + #~ msgid "JWT Algorithm" #~ msgstr "JWT 算法" diff --git a/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts b/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts index 7289010f2..bbb6a3a2a 100644 --- a/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +++ b/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts @@ -256,6 +256,19 @@ export class OAuth2ProviderViewPage extends LitElement { value="${this.providerUrls?.logout || t`-`}" /> +
+ + +