diff --git a/src/i18n/langs/cn.json b/src/i18n/langs/cn.json
index 914fe7da2..4e9f74cc3 100644
--- a/src/i18n/langs/cn.json
+++ b/src/i18n/langs/cn.json
@@ -246,6 +246,7 @@
"UserLoginLimit": "用户登录限制",
"IPLoginLimit": "IP 登录限制",
"Setting": "设置",
+ "Certificate": "证书",
"ViewMore": "查看更多",
"Announcement": "公告",
"Logging": "日志记录",
@@ -903,6 +904,13 @@
"authLdapSearchOu": "用户OU",
"authLdapServerUri": "LDAP地址",
"authLdapUserAttrMap": "用户属性映射",
+ "authUserAttrMap": "用户属性映射",
+ "authUserAttrMapHelpText": "映射关系 {idp:sp}",
+ "SAML2": "SAML2",
+ "enableSAML2Auth": "开启 SAML2 认证",
+ "SAML2Auth": "SAML2 认证",
+ "authSAML2Xml": "IDP metadata XML",
+ "authSAML2MetadataUrl": "IDP metadata URL",
"authCASAttrMap": "用户属性映射",
"SignaturesAndTemplates": "Signatures and Templates",
"unselectedUser": "没有选择用户",
diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json
index ab6565590..e58bfb5ef 100644
--- a/src/i18n/langs/en.json
+++ b/src/i18n/langs/en.json
@@ -240,6 +240,7 @@
"UserLoginLimit": "User login limit",
"IPLoginLimit": "IP login limit",
"Setting": "Setting",
+ "Certificate": "Certificate",
"ViewMore": "View more",
"Announcement": "Announcement",
"Logging": "Logging",
@@ -881,7 +882,13 @@
"authLdapSearchOu": "User OU",
"authLdapServerUri": "LDAP server",
"authLdapUserAttrMap": "User attr map",
- "authCASAttrMap": "User attr map",
+ "authUserAttrMap": "User attr map",
+ "authUserAttrMapHelpText": "Mapping relationship { idp_key: sp_key}",
+ "SAML2": "SAML2",
+ "enableSAML2Auth": "Enable SAML2 Auth",
+ "SAML2Auth": "SAML2 Auth",
+ "authSAML2Xml": "IDP metadata XML",
+ "authSAML2MetadataUrl": "IDP metadata URL",
"unselectedUser": "Unselected user",
"auto": "Auto",
"basicSetting": "Basic setting",
diff --git a/src/views/settings/Auth/CAS.vue b/src/views/settings/Auth/CAS.vue
index 93c6efaea..07c4cd260 100644
--- a/src/views/settings/Auth/CAS.vue
+++ b/src/views/settings/Auth/CAS.vue
@@ -40,7 +40,7 @@ export default {
el: {
type: 'textarea'
},
- label: this.$t('setting.authCASAttrMap'),
+ label: this.$t('setting.authUserAttrMap'),
rules: [JsonRequired]
}
},
diff --git a/src/views/settings/Auth/SAML2.vue b/src/views/settings/Auth/SAML2.vue
new file mode 100644
index 000000000..da2ade674
--- /dev/null
+++ b/src/views/settings/Auth/SAML2.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
diff --git a/src/views/settings/Auth/index.vue b/src/views/settings/Auth/index.vue
index 0a3ac995f..fafb0c6a1 100644
--- a/src/views/settings/Auth/index.vue
+++ b/src/views/settings/Auth/index.vue
@@ -14,6 +14,7 @@ import DingTalk from './DingTalk'
import FeiShu from './FeiShu'
import WeCom from './WeCom'
import SSO from './SSO'
+import SAML2 from './SAML2'
export default {
name: 'Auth',
@@ -29,7 +30,7 @@ export default {
this.$t('setting.AuthMethod'), [
'AUTH_CAS', 'AUTH_OPENID',
'AUTH_WECOM', 'AUTH_DINGTALK', 'AUTH_FEISHU',
- 'AUTH_RADIUS', 'AUTH_SSO'
+ 'AUTH_RADIUS', 'AUTH_SSO', 'AUTH_SAML2'
]
],
[
@@ -62,6 +63,10 @@ export default {
AUTH_SSO: {
component: SSO
},
+ AUTH_SAML2: {
+ component: SAML2,
+ label: this.$t('setting.SAML2Auth')
+ },
FORGOT_PASSWORD_URL: {
on: {
change([value], updateForm) {