CN112217816A - K8s容器云平台支持企业账户身份认证的方法及系统 - Google Patents
K8s容器云平台支持企业账户身份认证的方法及系统 Download PDFInfo
- Publication number
- CN112217816A CN112217816A CN202011077779.9A CN202011077779A CN112217816A CN 112217816 A CN112217816 A CN 112217816A CN 202011077779 A CN202011077779 A CN 202011077779A CN 112217816 A CN112217816 A CN 112217816A
- Authority
- CN
- China
- Prior art keywords
- authentication
- identity
- token
- service center
- cloud platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及容器技术,公开了一种K8s容器云平台支持企业账户身份认证的方法及系统,用以解决企业原多种账户身份认证后无法在kubernetes中标识身份的问题。本发明主要采用dex作为统一认证代理来将身份认证推送到企业账户系统并设置Kubernetes集群信任dex认证来达到各企业账户能够通过Kubernetes系统身份识别,该发明能够支持企业各种账户系统的身份识别。本发明适用于Kubernetes容器平台的接入认证。
Description
技术领域
本发明涉及容器技术领域,特别涉及K8s(K8s即Kubernetes)容器云平台支持企业账户身份认证的方法及系统。
背景技术
目前Kubernetes成为各家公司做微服务及云原生架构支撑的首选平台,Kubernetes本身几乎不提供任何用户身份管理和认证功能,所有的用户信息都依赖外部的用户管理系统来存储,Kubernetes容器平台如何接入企业账户认证系统成为了各大公司首要解决的问题。
发明内容
本发明要解决的技术问题是:提供一种K8s容器云平台支持企业账户身份认证的方法及系统,用以解决企业原多种账户身份认证后无法在kubernetes中标识身份的问题。
为解决上述问题,本发明采用的技术方案是:采用统一dex认证服务来提供用户身份标识,在Kubernetes的语境下,我们也叫它Identity Provider,简称IdP。并设置Kubernetes信任该IdP,那么IdP系统中所有用户都能够访问Kubernetes。而dex支持各种认证协议如Ouath2、ldap等,能够与企业多种账户系统集成,从而解决企业原多种账户身份认证后无法在kubernetes中标识身份的问题。本发明的具体方案如下:
K8s容器云平台支持企业账户身份认证的方法,包括以下步骤:
当用户通过客户端登录认证界面时,认证服务中心首先调用企业认证接口完成企业账户身份认证,然后将用户基本信息进行签名,签名后通过一个身份令牌(ID Token)发颁发给客户端;其中,身份令牌颁发放给客户端的步骤包括:首先查询该客户端是否事先在认证服务中心注册有回调地址,如果有,且回调地址匹配后,身份令牌通过浏览器跳转的方式颁发到客户端;
客户端携带获取到的身份令牌访问Kubernetes资源时,Kubernetes集群根据配置好的IdP信息验证身份令牌中的签名是否合法,来判断用户的真实身份。
优选的,认证服务中心采用dex开发。
进一步的,认证界面加入了图形验证码。
进一步的,颁发的身份令牌时设置了身份令牌的过期时间,认证服务中心在颁发身份令牌时还同时颁发了用于换取新身份令牌的刷新令牌(refresh token)。
进一步的,认证服务中心生成身份令牌后,身份令牌采用etcd进行存储。
K8s容器云平台支持企业账户身份认证的系统,其特征在于,包括认证界面、认证服务中心和Kubernetes集群;
认证服务中心与企业认证接口对接,当用户通过客户端登录认证界面并选择企业时,认证服务中心首先调用企业认证接口完成企业账户身份认证,然后将用户基本信息进行签名,签名后通过一个身份令牌发颁发给客户端;其中,身份令牌颁发放给客户端的步骤包括:首先查询该客户端是否事先在认证服务中心注册有回调地址,如果有,且回调地址匹配后,身份令牌通过浏览器跳转的方式颁发到客户端;
Kubernetes资源中设置信任的IdP信息,当客户端携带获取到的身份令牌访问Kubernetes资源时,Kubernetes集群根据配置好的IdP信息验证身份令牌中的签名是否合法,来判断用户的真实身份。
优选的,认证服务中心采用dex开发。
进一步的,认证界面加入了图形验证码。
进一步的,认证服务中心颁发的身份令牌时设置了身份令牌的过期时间,认证服务中心在颁发身份令牌时还同时颁发了用于换取新身份令牌的刷新令牌。
进一步的,认证服务中心生成身份令牌后采用etcd进行存储。
本发明的有益效果是:本发明针对Kubernetes的容器云平台的身份认证采用统一的dex认证服务,dex认证服务能够实现多种账户身份认证,方便企业各自账户认证系统集成,这里不限制企业使用的账户认证系统多样性,dex认证服务通过认证成功后会颁发经签名的身份标识ID Token,Kubernetes通过配置信任的认证服务中心对ID Token进行用户身份识别,这样大大降低了企业账户对kubernetes资源访问时身份识别的难度。
附图说明
图1是实施例的认证流程图。
图2是实施例的认证时序图。
具体实施方式
本发明采用dex开发统一认证服务(Authentication Server),dex认证服务负责实现企业多种账户身份认证,如员工号登录、手机号登录等多种账户身份认证。这里认证与传统OAuth2认证流程完全不同,不需要引导用户去企业身份认证系统进行授权确认,而是直接通过接口进行认证,在登录认证页需加入图形验证码防止暴力破解用户信息并设置错误密码重试次数机制,保护好后端企业认证接口,统一认证服务器做一层安全防护,企业多种后端认证接口均无需再做安全防护,只需对统一认证服务增加白名单访问限制即可。dex认证成功后会将用户基本信息进行签名,签名后通过一个不记名令牌(Bear Token)发放下去,此令牌一旦发放就无法回收,因此认证服务器需要设置令牌过期时间。不记名令牌,代表着对某种资源,以某种身份访问的权利,无论是谁,任何获取该令牌的访问者,都被认为具有了相应的身份和访问权限。此Token不是直接发放到客户端,需要根据请求在dex查询该客户端是否事先注册好的回调地址,否则拒绝请求,回调地址匹配后直接通过浏览器跳转带上颁发的Token到客户端。客户端带上颁发的Token访问Kubernetes,Kubernetes接受和识别的正是这种身份令牌(ID Token)。ID Token就是一种形式的不记名令牌,它本身记录着一个权威认证机构对用户身份的认证声明,同时还可以包含对这个用户授予了哪些权限的声明,ID Token本身也属于JWT标准包含了3部分信息:加密算法、用户信息,签名串,因此我们在对kubernetes访问时可直接提供ID Token,但Kubernetes在对ID Token进行校验时,其实不需要真正和Authentication Server发生任何交互,Kubernetes能够认证IDtoken的合法性的关键在于Authentication Server在颁发token时进行了数字签名,所以只要Kubernetes中信任Authentication Server,并用Authentication Server提供的证书来验证ID Token中的签名是否合法,就可以验证ID Token的真实性,标识用户的真实身份。Kubernetes的设计逻辑是,不能设置信任单个用户,而是设置信任某个第三方的用户管理系统。一旦选择信任某个系统,那该系统中所有的用户都将默认可访问Kubernetes,所以能够通过Kubernetes合法验证即可访问Kubernetes资源。
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,下面结合附图和实施例对本发明做进一步地详细描述。
实施例提供了一种Kubernetes容器云平台支持企业多账户身份认证的方法及系统,如图1和图2所示,具体的实施步骤如下:
步骤1、采用dex开发统一认证服务中心,如图1的步骤101所示通过dex自定义connectors特性,在系统中实现企业多账户登录认证接口对接,如通过员工号认证、手机号认证等等。connectors配置采用yaml语法格式,以数组方式配置多连接器,其中包括type、name、id、config;其中type标识企业认证类型,name标识连接器名称,id标识连接器唯一编号,config存放每种连接器具体配置。
步骤2、Kubernetes容器云平台需要使用统一认证进行身份认证的应用程序需要事先在该IdP上注册自己信息,获取一个dex认证服务中心分发的Client Id,注册该应用程序认证成功后的回调地址,不管提交认证请求的客户端是真是假,认证服务器只会把认证结果返还给指定的回调地址,回调地址需要存放在dex认证系统中,dex认证服务中心在回调前会进行注册比对,否则中断认证流程。
步骤3、在Kubernetes容器云平台中开发统一认证登录页面,并针对IdP已对接企业账户登录认证接口提供多账户登录页面,用户可以在页面动态切换,该登录页的请求URL需要带上IdP颁发的Client Id和事先注册好的回调地址,登录页都加入图形验证码,防止暴力破解用户信息,并设置错误密码重试次数,最大程度保护企业认证系统接口的安全稳定,企业认证系统需要开放认证服务器白名单访问机制,错误密码重试次数可采用多种缓存机制实现,这里采用Redis缓存,设置单用户在规定时间内重试次数。
步骤4、如图2所示,用户通过客户端在统一认证登录页选择相关账户体系进行登录,dex认证服务中心通过相关接口认证成功后,对用户基本信息进行签名,颁发ID Token,根据Client Id查询该客户端事先注册好的回调地址并跟当前传过来的回调地址进行比较,若回调地址不匹配则提示错误,终止登录认证流程,只有回调地址完全匹配才会将IDToken传回回调地址,ID Token可以使用多种存储介质进行存储,如Etcd、SQLite3、Postgres、MySQL、Memory等,这里采用etcd进行存储,因为它不仅具备简单、安全、可用的特性,其底层更是使用raft算法实现多副本数据的强一致性,并同时设置ID Token的过期时间,传回客户端除了ID Token,还会传回refresh token,在ID Token过期前,客户端可以使用refresh token换取新的ID Token便于继续访问Kubernetes资源.
步骤5、在Kubernetes集群中设置信任的IdP信息,包括oidc-client-id、oidc-groups-claim、oidc-issuer-url、oidc-username-claim;其中oidc-client-id指在IdP中注册的Clinet Id,oidc-issuer-url指统一认证地址,oidc-groups-claim指用户所在组,oidc-username-claim指用户名。IdP必须提供权威机构办法的安全证书,否则Kubernetes对IdP的验证将会失效,无法识别用户身份。
步骤6、用户携带获取到的ID Token,访问Kubernetes资源,Kubernetes根据配置好的IdP信息基于OpenID Connect(OIDC)Token的认证流程验证收到的ID Token中的签名是否合法,来判断用户的真实身份。这里的IdP必须提供权威机构颁发的证书,这是Kubernetes验证用户传过来的ID Token是否合法最重要的一点。
步骤7、客户端设置定期换取ID Token策略,在ID Token失效前,带上refreshtoken换取新的ID Token保证用户能够正常访问Kubernetes资源。
Claims (10)
1.K8s容器云平台支持企业账户身份认证的方法,其特征在于,包括以下步骤:
当用户通过客户端登录认证界面时,认证服务中心首先调用企业认证接口完成企业账户身份认证,然后将用户基本信息进行签名,签名后通过一个身份令牌发颁发给客户端;其中,身份令牌颁发放给客户端的步骤包括:首先查询该客户端是否事先在认证服务中心注册有回调地址,如果有,且回调地址匹配后,身份令牌通过浏览器跳转的方式颁发到客户端;
客户端携带获取到的身份令牌访问Kubernetes资源时,Kubernetes集群根据配置好的IdP信息验证身份令牌中的签名是否合法,来判断用户的真实身份。
2.如权利要求1所述的K8s容器云平台支持企业账户身份认证的方法,其特征在于,认证服务中心采用dex开发。
3.如权利要求1所述的K8s容器云平台支持企业账户身份认证的方法,其特征在于,认证界面加入了图形验证码。
4.如权利要求1所述的K8s容器云平台支持企业账户身份认证的方法,其特征在于,颁发的身份令牌时设置了身份令牌的过期时间,认证服务中心在颁发身份令牌时还同时颁发了用于换取新身份令牌的刷新令牌。
5.如权利要求1所述的K8s容器云平台支持企业账户身份认证的方法,其特征在于,身份令牌采用etcd进行存储。
6.K8s容器云平台支持企业账户身份认证的系统,其特征在于,包括认证界面、认证服务中心和Kubernetes集群;
认证服务中心与企业认证接口对接,当用户通过客户端登录认证界面并选择企业时,认证服务中心首先调用企业认证接口完成企业账户身份认证,然后将用户基本信息进行签名,签名后通过一个身份令牌发颁发给客户端;其中,身份令牌颁发放给客户端的步骤包括:首先查询该客户端是否事先在认证服务中心注册有回调地址,如果有,且回调地址匹配后,身份令牌通过浏览器跳转的方式颁发到客户端;
Kubernetes资源中设置信任的IdP信息,当客户端携带获取到的身份令牌访问Kubernetes资源时,Kubernetes集群根据配置好的IdP信息验证身份令牌中的签名是否合法,来判断用户的真实身份。
7.如权利要求6所述的K8s容器云平台支持企业账户身份认证的系统,其特征在于,认证服务中心采用dex开发。
8.如权利要求6所述的K8s容器云平台支持企业账户身份认证的系统,其特征在于,认证界面加入了图形验证码。
9.如权利要求6所述的K8s容器云平台支持企业账户身份认证的系统,其特征在于,认证服务中心颁发的身份令牌时设置了身份令牌的过期时间,认证服务中心在颁发身份令牌时还同时颁发了用于换取新身份令牌的刷新令牌。
10.如权利要求6所述的K8s容器云平台支持企业账户身份认证的系统,其特征在于,认证服务中心生成身份令牌后采用etcd进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077779.9A CN112217816A (zh) | 2020-10-10 | 2020-10-10 | K8s容器云平台支持企业账户身份认证的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077779.9A CN112217816A (zh) | 2020-10-10 | 2020-10-10 | K8s容器云平台支持企业账户身份认证的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112217816A true CN112217816A (zh) | 2021-01-12 |
Family
ID=74053002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011077779.9A Pending CN112217816A (zh) | 2020-10-10 | 2020-10-10 | K8s容器云平台支持企业账户身份认证的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112217816A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407923A (zh) * | 2021-05-26 | 2021-09-17 | 支付宝(杭州)信息技术有限公司 | 一种核身方法、装置以及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541656A (zh) * | 2020-04-09 | 2020-08-14 | 中央电视台 | 基于融合媒体云平台的身份认证方法及系统 |
-
2020
- 2020-10-10 CN CN202011077779.9A patent/CN112217816A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541656A (zh) * | 2020-04-09 | 2020-08-14 | 中央电视台 | 基于融合媒体云平台的身份认证方法及系统 |
Non-Patent Citations (2)
Title |
---|
ALBENXIE: "Kubernetes实现SSO登录(一)", 《CSDN》 * |
阳明的博客: "通过 GitHub OAuth 和 Dex 访问 Kubernetes 集群", 《阳明的博客》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407923A (zh) * | 2021-05-26 | 2021-09-17 | 支付宝(杭州)信息技术有限公司 | 一种核身方法、装置以及设备 |
CN113407923B (zh) * | 2021-05-26 | 2023-07-14 | 支付宝(杭州)信息技术有限公司 | 一种核身方法、装置以及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327427B2 (en) | System and method for transparent single sign-on | |
CN102739658B (zh) | 一种单点登录的离线验证方法 | |
CN102710640B (zh) | 请求授权的方法、装置和系统 | |
US8800003B2 (en) | Trusted device-specific authentication | |
CN109981561A (zh) | 单体架构系统迁移到微服务架构的用户认证方法 | |
CN110401655A (zh) | 基于用户和角色的访问控制权限管理系统 | |
US20090300168A1 (en) | Device-specific identity | |
WO2014048749A1 (en) | Inter-domain single sign-on | |
CN101321068A (zh) | 实现双重身份认证的方法及装置 | |
CN109388937B (zh) | 一种多因子身份认证的单点登录方法及登录系统 | |
CN108881218B (zh) | 一种基于云存储管理平台的数据安全增强方法及系统 | |
CN108881309A (zh) | 大数据平台的访问方法、装置、电子设备及可读存储介质 | |
CN113132402A (zh) | 单点登录方法和系统 | |
CN101998387A (zh) | 客户端认证方法、密码代理装置及系统 | |
CN112583834A (zh) | 一种通过网关单点登录的方法和装置 | |
CN109962892A (zh) | 一种登录应用的认证方法及客户端、服务器 | |
CN111200601B (zh) | 一种基于通用中转服务对用户与应用进行对接的方法及系统 | |
CN114021103A (zh) | 基于身份认证的单点登录方法、装置、终端及存储介质 | |
CN114385995B (zh) | 一种基于Handle的标识解析微服务接入工业互联网的方法及标识服务系统 | |
CN110944021A (zh) | 校园统一认证和单点登录的方法和系统 | |
CN112217816A (zh) | K8s容器云平台支持企业账户身份认证的方法及系统 | |
CN109063461B (zh) | 一种第三方免密登录方法及系统 | |
KR100639992B1 (ko) | 클라이언트 모듈을 안전하게 배포하는 보안 장치 및 그방법 | |
CN111935716B (zh) | 一种认证方法、认证系统及计算设备 | |
CN114282200A (zh) | 多认证协议统一集成认证的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210112 |