0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-03-10 22:22:45 -05:00

feat(console,phrases): add issuer endpoint to application form (#6094)

* feat(console,phrases): add issuer endpoint to application form

add issuer endpoint to the application form

* chore: add changeset

add changeset
This commit is contained in:
simeng-li 2024-06-24 13:44:14 +08:00 committed by GitHub
parent 2f456ff371
commit d81e13d215
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 84 additions and 60 deletions

View file

@ -0,0 +1,6 @@
---
"@logto/console": patch
"@logto/phrases": patch
---
display OIDC issuer endpoint in the application details form

View file

@ -1 +1,2 @@
export const openIdProviderConfigPath = 'oidc/.well-known/openid-configuration'; export const openIdProviderConfigPath = 'oidc/.well-known/openid-configuration';
export const openIdProviderPath = 'oidc';

View file

@ -1,7 +1,7 @@
import { import {
type Application,
ApplicationType, ApplicationType,
DomainStatus, DomainStatus,
type Application,
type SnakeCaseOidcConfig, type SnakeCaseOidcConfig,
} from '@logto/schemas'; } from '@logto/schemas';
import { appendPath } from '@silverhand/essentials'; import { appendPath } from '@silverhand/essentials';
@ -11,7 +11,7 @@ import { Trans, useTranslation } from 'react-i18next';
import CaretDown from '@/assets/icons/caret-down.svg'; import CaretDown from '@/assets/icons/caret-down.svg';
import CaretUp from '@/assets/icons/caret-up.svg'; import CaretUp from '@/assets/icons/caret-up.svg';
import FormCard from '@/components/FormCard'; import FormCard from '@/components/FormCard';
import { openIdProviderConfigPath } from '@/consts/oidc'; import { openIdProviderConfigPath, openIdProviderPath } from '@/consts/oidc';
import { AppDataContext } from '@/contexts/AppDataProvider'; import { AppDataContext } from '@/contexts/AppDataProvider';
import Button from '@/ds-components/Button'; import Button from '@/ds-components/Button';
import CopyToClipboard from '@/ds-components/CopyToClipboard'; import CopyToClipboard from '@/ds-components/CopyToClipboard';
@ -61,16 +61,25 @@ function EndpointsAndCredentials({ app: { type, secret, id, isThirdParty }, oidc
</FormField> </FormField>
)} )}
{tenantEndpoint && ( {tenantEndpoint && (
<FormField title="application_details.config_endpoint"> <FormField title="application_details.issuer_endpoint">
<CopyToClipboard <CopyToClipboard
displayType="block" displayType="block"
value={applyCustomDomain(appendPath(tenantEndpoint, openIdProviderConfigPath).href)} value={applyCustomDomain(appendPath(tenantEndpoint, openIdProviderPath).href)}
variant="border" variant="border"
/> />
</FormField> </FormField>
)} )}
{showMoreEndpoints && ( {showMoreEndpoints && (
<> <>
{tenantEndpoint && (
<FormField title="application_details.config_endpoint">
<CopyToClipboard
displayType="block"
value={applyCustomDomain(appendPath(tenantEndpoint, openIdProviderConfigPath).href)}
variant="border"
/>
</FormField>
)}
<FormField <FormField
title="application_details.authorization_endpoint" title="application_details.authorization_endpoint"
tip={(closeTipHandler) => ( tip={(closeTipHandler) => (

View file

@ -23,6 +23,7 @@ const application_details = {
description: 'Description', description: 'Description',
description_placeholder: 'Enter your application description', description_placeholder: 'Enter your application description',
config_endpoint: 'OpenID provider configuration endpoint', config_endpoint: 'OpenID provider configuration endpoint',
issuer_endpoint: 'Issuer endpoint',
authorization_endpoint: 'Authorization endpoint', authorization_endpoint: 'Authorization endpoint',
authorization_endpoint_tip: authorization_endpoint_tip:
"The endpoint to perform authentication and authorization. It's used for OpenID Connect <a>Authentication</a>.", "The endpoint to perform authentication and authorization. It's used for OpenID Connect <a>Authentication</a>.",

View file

@ -1,72 +1,79 @@
const enterprise_sso_details = { const enterprise_sso_details = {
back_to_sso_connectors: '企业SSO返回', back_to_sso_connectors: '企業SSOに戻る',
page_title: '企业SSO连接器详情', page_title: '企業SSOコネクタの詳細',
readme_drawer_title: '企SSO', readme_drawer_title: '企SSO',
readme_drawer_subtitle: '设置企业SSO连接器以启用终端用户SSO', readme_drawer_subtitle: 'エンドユーザーのSSOを有効にするために企業SSOコネクタを設定します',
tab_experience: 'SSO体', tab_experience: 'SSO体',
tab_connection: '接', tab_connection: '',
general_settings_title: '常规', general_settings_title: '一般設定',
custom_branding_title: '示', custom_branding_title: '示',
custom_branding_description: custom_branding_description:
'自定义终端用户单点登录流程中显示的名称和标识。如果为空,将使用默认值。', 'エンドユーザーのシングルサインオンプロセスで表示される名前とロゴをカスタマイズします。空白の場合、デフォルト値が使用されます。',
email_domain_field_name: '企业邮箱域', email_domain_field_name: '企業メールドメイン',
email_domain_field_description: email_domain_field_description:
'使用此邮箱域的用户可以使用SSO进行身份验证。请验证该域名属于企业。', 'このメールドメインを使用するユーザーは、SSOで認証できます。このドメインが企業のものであることを確認してください。',
email_domain_field_placeholder: '邮箱域', email_domain_field_placeholder: 'メールドメイン',
sync_profile_field_name: '从身份提供商同步配置文件信息', sync_profile_field_name: 'アイデンティティプロバイダーからプロファイル情報を同期',
sync_profile_option: { sync_profile_option: {
register_only: '仅在首次登录时同步', register_only: '初回ログイン時のみ同期',
each_sign_in: '每次登录都同步', each_sign_in: '毎回ログイン時に同期',
}, },
connector_name_field_name: '连接器名称', connector_name_field_name: 'コネクタ名',
display_name_field_name: '显示名称', display_name_field_name: '表示名',
connector_logo_field_name: '显示标识', connector_logo_field_name: 'ロゴ表示',
connector_logo_field_description: '每张图片应不超过500KB支持SVG、PNG、JPG、JPEG格式。', connector_logo_field_description:
branding_logo_context: '上传标识', '各画像は500KB以下にしてください。SVG、PNG、JPG、JPEG形式をサポートしています。',
branding_logo_error: '上传标识错误: {{error}}', branding_logo_context: 'ロゴをアップロード',
branding_light_logo_context: '上传浅色模式标识', branding_logo_error: 'ロゴのアップロードエラー: {{error}}',
branding_light_logo_error: '上传浅色模式标识错误: {{error}}', branding_light_logo_context: 'ライトモードのロゴをアップロード',
branding_logo_field_name: '标识', branding_light_logo_error: 'ライトモードのロゴアップロードエラー: {{error}}',
branding_logo_field_name: 'ロゴ',
branding_logo_field_placeholder: 'https://your.domain/logo.png', branding_logo_field_placeholder: 'https://your.domain/logo.png',
branding_dark_logo_context: '上传深色模式标识', branding_dark_logo_context: 'ダークモードのロゴをアップロード',
branding_dark_logo_error: '上传深色模式标识错误: {{error}}', branding_dark_logo_error: 'ダークモードのロゴアップロードエラー: {{error}}',
branding_dark_logo_field_name: '标识(深色模式', branding_dark_logo_field_name: 'ロゴ(ダークモード',
branding_dark_logo_field_placeholder: 'https://your.domain/dark-mode-logo.png', branding_dark_logo_field_placeholder: 'https://your.domain/dark-mode-logo.png',
check_connection_guide: '连接指南', check_connection_guide: '接続ガイド',
enterprise_sso_deleted: '企业SSO连接器已成功删除', enterprise_sso_deleted: '企業SSOコネクタが正常に削除されました',
delete_confirm_modal_title: '删除企业SSO连接器', delete_confirm_modal_title: '企業SSOコネクタを削除',
delete_confirm_modal_content: delete_confirm_modal_content:
'您确定要删除此企业连接器吗?来自身份提供商的用户将不会使用单点登录。', 'この企業コネクタを削除してもよろしいですか?アイデンティティプロバイダーからのユーザーはシングルサインオンを使用できなくなります。',
upload_idp_metadata_title_saml: '上传元数据', upload_idp_metadata_title_saml: 'メタデータをアップロード',
upload_idp_metadata_description_saml: '配置从身份提供商复制的元数据。', upload_idp_metadata_description_saml:
upload_idp_metadata_title_oidc: '上传凭证', 'アイデンティティプロバイダーからコピーしたメタデータを設定します。',
upload_idp_metadata_description_oidc: '配置从身份提供商复制的凭证和OIDC令牌信息。', upload_idp_metadata_title_oidc: '証明書をアップロード',
upload_idp_metadata_button_text: '上传元数据XML文件', upload_idp_metadata_description_oidc:
upload_signing_certificate_button_text: '上传签名证书文件', 'アイデンティティプロバイダーからコピーした証明書およびOIDCトークン情報を設定します。',
configure_domain_field_info_text: '添加邮箱域以引导企业用户到其身份提供商进行单点登录。', upload_idp_metadata_button_text: 'メタデータXMLファイルをアップロード',
email_domain_field_required: '要启用企业SSO需要填写邮箱域。', upload_signing_certificate_button_text: '署名証明書ファイルをアップロード',
upload_saml_idp_metadata_info_text_url: '粘贴来自身份提供商的元数据URL以连接。', configure_domain_field_info_text:
upload_saml_idp_metadata_info_text_xml: '粘贴从身份提供商复制的元数据以连接。', '企業ユーザーをアイデンティティプロバイダーに誘導するためにメールドメインを追加します。',
upload_saml_idp_metadata_info_text_manual: '填写从身份提供商复制的元数据以连接。', email_domain_field_required: '企業SSOを有効にするには、メールドメインを入力する必要があります。',
upload_oidc_idp_info_text: '填写从身份提供商复制的信息以连接。', upload_saml_idp_metadata_info_text_url:
service_provider_property_title: '在身份提供商中配置', 'アイデンティティプロバイダーからのメタデータURLを貼り付けて接続します。',
upload_saml_idp_metadata_info_text_xml:
'アイデンティティプロバイダーからコピーしたメタデータを貼り付けて接続します。',
upload_saml_idp_metadata_info_text_manual:
'アイデンティティプロバイダーからコピーしたメタデータを入力して接続します。',
upload_oidc_idp_info_text: 'アイデンティティプロバイダーからコピーした情報を入力して接続します。',
service_provider_property_title: 'アイデンティティプロバイダーに設定',
service_provider_property_description: service_provider_property_description:
'通过您的身份提供商使用 {{protocol}} 配置一个应用程序集成。 输入Logto提供的详细信息。', 'アイデンティティプロバイダーを使用して {{protocol}} でアプリケーション統合を設定します。Logtoが提供する詳細情報を入力してください。',
attribute_mapping_title: '属性映射', attribute_mapping_title: '属性マッピング',
attribute_mapping_description: attribute_mapping_description:
'通过在身份提供商或Logto端配置用户属性映射从而同步用户配置文件。', 'アイデンティティプロバイダーまたはLogto側でユーザー属性マッピングを設定して、ユーザープロファイルを同期します。',
saml_preview: { saml_preview: {
sign_on_url: '登录URL', sign_on_url: 'サインオンURL',
entity_id: '行者', entity_id: '行者',
x509_certificate: '签名证书', x509_certificate: '署名証明書',
certificate_content: '到期于{{date}}', certificate_content: '有効期限: {{date}}',
}, },
oidc_preview: { oidc_preview: {
authorization_endpoint: '授权端点', authorization_endpoint: '認可エンドポイント',
token_endpoint: '令牌端点', token_endpoint: 'トークンエンドポイント',
userinfo_endpoint: '用户信息端点', userinfo_endpoint: 'ユーザー情報エンドポイント',
jwks_uri: 'JSON网页密钥集端点', jwks_uri: 'JSON Webキーセットエンドポイント',
issuer: '行者', issuer: '行者',
}, },
}; };