diff --git a/authentik/providers/oauth2/api/provider.py b/authentik/providers/oauth2/api/provider.py index 53dcf57b7b..f7d77b9c3c 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 9ef696f6d1..2884e04d90 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 98359cd89e..2697f70195 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 212245d973..dea6d06020 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 a03edbe8c1..ca24104634 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 6f3e35f837..c6753fabf6 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 7e228103b8..c56520cc1f 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 a415d164ca..8238a09699 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 70b975172a..8540c97632 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 68a9dfb4a7..6e12090f06 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 c0fdf243a8..c1e709751b 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 231e6cbbc3..c5b7391768 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 7289010f22..bbb6a3a2ab 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`-`}" /> +