diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/apps.component.html b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/apps.component.html index 822e6ad67cc4da74e08e2807d60b5cffcd209715..816da7a58d9274f2caf8c9dece01e601f0d8ef97 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/apps.component.html +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/apps.component.html @@ -47,22 +47,9 @@
- - -
    -
  • {{ 'mxk.apps.protocol.oauth2.0' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.saml2.0' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.cas' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.jwt' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.tokenbased' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.formbased' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.extendapi' | i18n }}
  • -
  • {{ 'mxk.apps.protocol.basic' | i18n }}
  • -
-
+ + + + + {{ 'mxk.apps.protocol.oidc' | i18n }} + {{ 'mxk.apps.protocol.oidc.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.saml2.0' | i18n }} + {{ 'mxk.apps.protocol.saml2.0.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.cas' | i18n }} + {{ 'mxk.apps.protocol.cas.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.jwt' | i18n }} + {{ 'mxk.apps.protocol.jwt.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.tokenbased' | i18n }} + {{ 'mxk.apps.protocol.tokenbased.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.formbased' | i18n }} + {{ 'mxk.apps.protocol.formbased.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.extendapi' | i18n }} + {{ 'mxk.apps.protocol.extendapi.discription' | i18n }} + + + + + {{ 'mxk.apps.protocol.basic' | i18n }} + {{ 'mxk.apps.protocol.basic.discription' | i18n }} + + + + + +
\ No newline at end of file diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.less b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.less new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.spec.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..9de4d8171ce9c00236256bd81994436f13c7a0ba --- /dev/null +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SelectProtocolComponent } from './select-protocol.component'; + +describe('SelectProtocolComponent', () => { + let component: SelectProtocolComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SelectProtocolComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SelectProtocolComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..74fc0af4b42a3544003d6975c337ec6bf7eb22e3 --- /dev/null +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/apps/select-protocol/select-protocol.component.ts @@ -0,0 +1,18 @@ +import { Component, OnInit } from '@angular/core'; +import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; + +@Component({ + selector: 'app-select-protocol', + templateUrl: './select-protocol.component.html', + styleUrls: ['./select-protocol.component.less'] +}) +export class SelectProtocolComponent implements OnInit { + constructor(private modalRef: NzModalRef) {} + + ngOnInit(): void {} + + onSelect(e: MouseEvent, protocol: String): void { + e.preventDefault(); + this.modalRef.destroy({ refresh: true, data: protocol }); + } +} diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/routes.module.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/routes.module.ts index 3bdfe325db1c2190f496ea7ba2a4831bcf021e21..2c18cb1b2bed700de32354c176bc8b920be4fab3 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/routes.module.ts +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/routes.module.ts @@ -29,6 +29,7 @@ import { AppSaml20DetailsEditerComponent } from './apps/app-saml20-details-edite import { AppTokenBasedDetailsEditerComponent } from './apps/app-token-based-details-editer/app-token-based-details-editer.component'; import { AppsComponent } from './apps/apps.component'; import { SelectAppsComponent } from './apps/select-apps/select-apps.component'; +import { SelectProtocolComponent } from './apps/select-protocol/select-protocol.component'; import { OrganizationEditerComponent } from './organizations/organization-editer/organization-editer.component'; import { OrganizationsComponent } from './organizations/organizations.component'; import { RouteRoutingModule } from './routes-routing.module'; @@ -52,6 +53,7 @@ const COMPONENTS: Array> = []; UserEditerComponent, AccountEditerComponent, SelectUserComponent, + SelectProtocolComponent, AppCasDetailsEditerComponent, AppFormBasedDetailsEditerComponent, AppJwtDetailsEditerComponent, diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json index 7ac063676172081652595212d473a71256c8402d..940f63479c345f58eb5fc0dce4e8962f27574767 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json @@ -276,15 +276,27 @@ "icon": "Icon", "protocol": "Protocol", "protocol.formbased": "formbased", + "protocol.formbased.discription": "HTTP+HTML simple form-based authentication. A website uses a Web form to collect and then perform authentication; The credential information for authentication comes from user agents, usually web browsers.", "protocol.desktop": "desktop", + "protocol.desktop.discription": "desktop", "protocol.tokenbased": "tokenbased", + "protocol.tokenbased.discription": "Simple token is a certificate or digital certificate shared by the authentication center and the application. The authentication center uses HTTP POST to submit the token to the application system, which then performs authentication.", "protocol.oauth2.0": "OAuth2.x", + "protocol.oauth2.0.discription": "OAuth (Open Authorization) is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. ", + "protocol.oidc": "OpenID Connect", + "protocol.oidc.discription": "OpenID Connect (OIDC) extends the OAuth 2.0 authorization protocol for use also as an authentication protocol, OIDC=(Identity, Authentication)+OAuth 2.0. Use OIDC for single sign-on (SSO) of distributed sites.", "protocol.saml2.0": "SAML2.0", + "protocol.saml2.0.discription": "Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorization data between an identity provider and a service provider. SAML is an XML-based markup language for security assertions, which are statements that service providers use to make access-control decisions.", "protocol.ltpa": "Lightweight Third-Party(LTPA)", - "protocol.cas": "CAS ", - "protocol.jwt": "JwtToken", + "protocol.ltpa.discription": "Lightweight Third-Party(LTPA)", + "protocol.cas": "CAS", + "protocol.cas.discription": "Enterprise Single Sign-On - CAS is an enterprise multilingual single sign-on solution and identity provider for the web and attempts to be a comprehensive platform for your authentication and authorization needs.CAS is an open and well-documented authentication protocol,It is a widely used.", + "protocol.jwt": "JWT Token", + "protocol.jwt.discription": "JWT, or JSON Web Token is JSON Object which is used to securely transfer information over the web(between two parties). It can be used for an authentication system and can also be used for information exchange.", "protocol.extendapi": "API Extend", + "protocol.extendapi.discription": "Extending the API that provides authentication for application services, the authentication of application systems can be realized, such as Tencent corporate mailbox, Netease corporate mailbox, etc.", "protocol.basic": "Basic", + "protocol.basic.discription": "The basic login URL link is convenient for users access.", "category": "Category", "category.none": "None", "category.1011": "Enterprise Services/Data Analysis", diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json index 1959bcfeeaa88eb11ec47b4bdeb72a3dbfc25821..451c4a73a675dc8c40070cc34be309c4bc272303 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json @@ -277,15 +277,27 @@ "icon": "图标", "protocol": "协议", "protocol.formbased": "表单认证", + "protocol.formbased.discription": "HTTP+HTML 简单的基于表单的认证,一个网站使用一个Web表单收集,并随后进行身份验证;认证的凭证信息来源于用户代理,通常web浏览器。", "protocol.desktop": "桌面认证", + "protocol.desktop.discription": "桌面认证", "protocol.tokenbased": "令牌认证", + "protocol.tokenbased.discription": "简单令牌即认证中心和应用共享凭证或者数字证书,认证中心使用HTTP POST的方式提交令牌到应用系统,应用系统并随后进行身份验证。", "protocol.oauth2.0": "OAuth2.x", + "protocol.oauth2.0.discription": "OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频等),而无需将用户名和密码提供给第三方应用。", + "protocol.oidc": "OpenID Connect", + "protocol.oidc.discription": "OIDC 是 OpenID Connect 的简称,OIDC = (Identity, Authentication) + OAuth 2.0。使用 OIDC 进行分布式站点的单点登录 (SSO)。", "protocol.saml2.0": "SAML2.0", + "protocol.saml2.0.discription": "SAML 基于XML协议,使用包含断言(Assertion)的安全令牌,在授权方(IDP)和消费方(应用)之间传递身份信息,实现基于网络跨域的单点登录。", "protocol.ltpa": "轻量级认证(LTPA)", + "protocol.ltpa.discription": "轻量级认证(LTPA)", "protocol.cas": "CAS认证", + "protocol.cas.discription": "CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议,具有广泛的使用。", "protocol.jwt": "JWT令牌", + "protocol.jwt.discription": "JSON Web Token是一个开放标准,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。", "protocol.extendapi": "API扩展认证", + "protocol.extendapi.discription": "通过对应用服务提供认证的API进行扩展,实现应用系统的认证,例如腾讯企业邮箱、网易企业邮箱等。", "protocol.basic": "基本登录", + "protocol.basic.discription": "基本登录地址访问链接,方便用户使用。", "category": "分类", "category.none": "暂无", "category.1011": "企业服务/数据分析", diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json index 38802eae0ffdeaf5293fd4a49c0207ee1f50eae9..70ac32bc0917bb654012feb67247efecb2c6d259 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json @@ -277,16 +277,28 @@ "name": "應用名稱", "icon": "圖標", "protocol": "協議", - "protocol.formbased": "表單認證", - "protocol.desktop": "桌面認證", - "protocol.tokenbased": "令牌認證", - "protocol.oauth2.0": "OAuth2.x", - "protocol.saml2.0": "SAML2.0", - "protocol.ltpa": "輕量級認證(LTPA)", - "protocol.cas": "CAS認證", - "protocol.jwt": "JWT令牌", - "protocol.extendapi": "API擴展認證", - "protocol.basic": "基本登錄", + "protocol.formbased":"表單認證", + "protocol.formbased.discription":"HTTP+HTML簡單的基於表單的認證,一個網站使用一個Web表單收集,並隨後進行身份驗證;認證的憑證資訊來源於用戶代理,通常web瀏覽器。", + "protocol.desktop":"案頭認證", + "protocol.desktop.discription":"案頭認證", + "protocol.tokenbased":"令牌認證", + "protocol.tokenbased.discription":"簡單令牌即認證中心和應用共亯憑證或者數位憑證,認證中心使用HTTP POST的管道提交權杖到應用系統,應用系統並隨後進行身份驗證。", + "protocol.oauth2.0":"OAuth2.x", + "protocol.oauth2.0.discription":"OAuth(開放授權)是一個開放標準,允許用戶讓協力廠商應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻等),而無需將用戶名和密碼提供給協力廠商應用。", + "protocol.oidc":"OpenID Connect", + "protocol.oidc.discription":"OIDC是OpenID Connect的簡稱,OIDC =(Identity,Authentication)+ OAuth 2.0。使用OIDC進行分佈式網站的單點登錄(SSO)。", + "protocol.saml2.0":"SAML2.0", + "protocol.saml2.0.discription":"SAML基於XML協定,使用包含斷言(Assertion)的安全權杖,在授權方(IDP)和消費方(應用)之間傳遞身份資訊,實現基於網絡跨域的單點登錄。", + "protocol.ltpa":"輕量級認證(LTPA)", + "protocol.ltpa.discription":"輕量級認證(LTPA)", + "protocol.cas":"CAS認證", + "protocol.cas.discription":"CAS是Central Authentication Service的縮寫,中央認證服務,一種獨立開放指令協定,具有廣泛的使用。", + "protocol.jwt":"JWT令牌", + "protocol.jwt.discription":"JSON Web Token是一個開放標準,用於在各方之間安全地將資訊作為JSON對象傳輸。由於此資訊是經過數位簽章的,囙此可以被驗證和信任。", + "protocol.extendapi":"API擴展認證", + "protocol.extendapi.discription":"通過對應用服務提供認證的API進行擴展,實現應用系統的認證,例如騰訊企業郵箱、網易企業郵箱等。", + "protocol.basic":"基本登入", + "protocol.basic.discription":"基本登入地址訪問連結,方便用戶使用。", "category": "分類", "category.none": "暫無", "category.1011": "企業服務/數據分析", diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/api.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/api.png new file mode 100644 index 0000000000000000000000000000000000000000..951a8b33974a7f9ee4c88dc10be501452995dfea Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/api.png differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/basic.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/basic.png new file mode 100644 index 0000000000000000000000000000000000000000..b3c3a4bd38a92e5c538992b0d49d544c7109d4aa Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/basic.png differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/cas.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/cas.png new file mode 100644 index 0000000000000000000000000000000000000000..1f69615fff58373f7792ce19f32dd876bb2fb9c8 Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/cas.png differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/form.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/form.png new file mode 100644 index 0000000000000000000000000000000000000000..9907415466191ed78b73f87e784868795762a3fc Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/form.png differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/jwt.jpg b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/jwt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79dc5af97946bbe841719079e0952825a1b8ce48 Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/jwt.jpg differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/oauth2.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/oauth2.png new file mode 100644 index 0000000000000000000000000000000000000000..41a8d35aa834108cdfb86d5b9d8eef369367c324 Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/oauth2.png differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/oidc.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/oidc.png new file mode 100644 index 0000000000000000000000000000000000000000..1a17826bc3f963d5280a34030c87e721f55e3529 Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/oidc.png differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/saml.jpg b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/saml.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a999fb8f76d8465f8cd875501357d21186d9e67f Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/saml.jpg differ diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/token.png b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/token.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8694b55159771a0260974b7f4347f893ca5873 Binary files /dev/null and b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/protocol/token.png differ