关于oauth2.0:MaxKey-单点登录认证系统-v353GA-发布

English|中文 概述MaxKey单点登录认证零碎,谐音马克思的钥匙寓意是最大钥匙,是业界当先的IAM身份治理和认证产品,反对OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供平安、规范和凋谢的用户身份治理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限治理和资源管理等。 官方网站官网|官网二线 官网QQ:1054466084 邮箱email:support@maxsso.net 代码托管Gitee|GitHub 单点登录(Single Sign On)简称为SSO,用户只须要登录认证核心一次就能够拜访所有相互信任的利用零碎,无需再次登录。 次要性能: 所有利用零碎共享一个身份认证零碎所有利用零碎可能辨认和提取ticket信息产品个性标准协议序号协定反对1.1OAuth 2.0/OpenID Connect高1.2SAML 2.0高1.3JWT高1.4CAS高1.5FormBased中1.6TokenBased(Post/Cookie)中1.7ExtendApi低1.8EXT低登录反对序号登录形式2.1动静验证码 字母/数字/算术2.2双因素认证2.3短信认证 腾讯云短信/阿里云短信/网易云信2.4登录易/Google/Microsoft Authenticator/FreeOTP/反对TOTP或者HOTP2.5Kerberos/SPNEGO/AD域2.6OpenLDAP/ActiveDirectory/规范LDAP服务器2.7社交账号 微信/QQ/微博/钉钉/Google/Facebook/其余2.8扫码登录 企业微信/钉钉/飞书扫码登录提供规范的认证接口以便于其余利用集成SSO,平安的挪动接入,平安的API、第三方认证和互联网认证的整合。提供用户生命周期治理,反对SCIM 2协定;开箱即用的连接器(Connector)实现身份供应同步。简化微软Active Directory域控、规范LDAP服务器机构和账号治理,明码自助服务重置明码。认证多租户性能,反对团体下多企业独立治理或企业下不同部门数据隔离的,升高运维老本。认证核心具备平台无关性、环境多样性,反对Web、手机、挪动设施等, 如Apple iOS,Andriod等,将认证能力从B/S到挪动利用全面笼罩。基于Java EE平台,微服务架构,采纳Spring、MySQL、Tomcat、Redis、MQ等开源技术,扩展性强。开源、平安、自主可控,许可证 Apache 2.0 License &MaxKey版权申明。界面 下载以后版本百度网盘下载,历史版本 版本日期Docker网盘网盘提取码v 3.5.3 GA2022/07/23链接下载mxk9Roadmap序号打算工夫1Java 17+2022Q32Jakarta EE 9+2022Q33Spring Framework 62022Q44Spring Boot 32022Q4版本发行阐明MaxKey v 3.5.3 GA 2022/07/23 *(MAXKEY-220801) formbase用户初始化跳转问题修复     *(MAXKEY-220802) OAuth2 select多选保留问题     *(MAXKEY-220803) OAuth2明码保留不统一修复     *(MAXKEY-220804) HttpSessionListenerAdapter中userinfo空指针异样     *(MAXKEY-220805) 减少LDAP登录认证的参数配置     *(MAXKEY-220806) 组织减少公司、分支机构、部门、组四种类型     *(MAXKEY-220807) REDIS的key对立MXK_结尾     *(MAXKEY-220808) HttpRequestAdapter减少REST办法     *(MAXKEY-220809) 新增利用时减少初始化默认值     *(MAXKEY-220810) Ldap认证配置的判断     *(MAXKEY-220811) 前端refresh_token报错问题,Header可为空,在程序中进行判断     *(MAXKEY-220812) 新增或者编辑图片无奈上传的问题     *(MAXKEY-220813) JWT减少GET形式     *(MAXKEY-220814) 验证码字段调整     *(MAXKEY-220815) 账号治理中利用抉择未显示问题     *(MAXKEY-220816) 删除打jar包时maxkey-web-resources依赖问题     *(MAXKEY-220817) 依赖项援用、更新和降级         log4j                   2.18.0         tomcat                  9.0.64         druid                   1.2.11         druidspringboot         1.2.11 ...

July 22, 2022 · 1 min · jiezi

关于oauth2.0:OAuth20通俗理解

注:浏览之前忘掉受权码、token那一套,只了解这个模型参考起源 注释OAuth2.0提供了一种客户端获取资源的受权模型,这一模型解决了客户端在获取别人资源时不用要求资源持有者提供明确的身份验证信息,而把这个工作交给了一个可信赖的受权者,这个授权人对资源的持有人是可信赖的,对资源的托管方也是可信赖的。因而,OAuth2.0标准定义了四种角色: 首先,客户端的用意很明确,向资源服务器获取资源;这个时候客户端须要出示一个凭证——令牌;令牌由受权服务器颁发,资源服务器在拿到令牌之后本人想方法验证令牌的合法性;因而,客户端的上一步就须要想方法去受权服务器拿到 指标资源 的令牌受权服务器保留了资源所有者的身份信息,因而,客户端须要获得资源所有者的批准,从而向受权服务器拿到受权的凭证,这一步由客户端疏导资源所有者与受权服务器进行身份校验,促使受权服务器给客户端一个受权凭证(这个受权的凭证意味着资源所有者认可客户端的合法性,阐明客户端有获取令牌的资格);客户端在获得这个资格之后,能够释怀地向受权服务器申请资源凭证——令牌;在拿到令牌之后,客户端能够释怀地去资源服务器申请资源所有者指定的资源这么做有个前提:资源持有者认可以后客户端。这个就要靠持有人本人负责验证客户端的合法性了。这么做的益处就是:令牌的解释权在受权服务或资源服务器,资源持有人能够随时告诉两者,使令牌生效。

November 3, 2021 · 1 min · jiezi

关于oauth2.0:MaxKey单点登录认证系统-v240GA-发布

English | 中文 概述MaxKey(马克思的钥匙)单点登录认证零碎(Single Sign On System),寓意是最大钥匙,是业界当先的企业级开源IAM身份治理和身份认证产品,反对OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供简略、规范、平安和凋谢的用户身份治理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限治理和资源管理等。 官方网站 官网 | 官网二线 QQ交换群:434469201 邮箱email: maxkeysupport@163.com 代码托管 GitHub | 码云(Gitee) 什么是单点登录(Single Sign On),简称为SSO? 用户只须要登录认证核心一次就能够拜访所有相互信任的利用零碎,无需再次登录。 次要性能: 1) 所有利用零碎共享一个身份认证零碎 2) 所有利用零碎可能辨认和提取ticket信息 产品个性规范认证协定:序号协定反对1.1OAuth 2.0/OpenID Connect高1.2SAML 2.0高1.3JWT高1.4CAS高1.5FormBased中1.6TokenBased(Post/Cookie)中1.7ExtendApi低1.8EXT低登录反对序号登录形式2.1动静验证码 字母/数字/算术2.2双因素认证2.3短信认证 腾讯云短信/阿里云短信/网易云信2.4登录易/Google/Microsoft Authenticator/FreeOTP/反对TOTP或者HOTP2.5Kerberos/SPNEGO/AD域2.6社交账号 微信/QQ/微博/钉钉/Google/Facebook/其余提供规范的认证接口以便于其余利用集成SSO,平安的挪动接入,平安的API、第三方认证和互联网认证的整合。提供用户生命周期治理,反对SCIM 2协定,基于Apache Kafka代理,通过连接器(Connector)实现身份供应同步。认证核心具备平台无关性、环境多样性,反对Web、手机、挪动设施等, 如Apple iOS,Andriod等,将认证能力从B/S到挪动利用全面笼罩。多种认证机制并存,各利用零碎可保留原有认证机制,同时集成认证核心的认证;利用具备高度独立性,不依赖认证核心,又可用应用认证核心的认证,实现单点登录。基于Java平台开发,采纳Spring、MySQL、Tomcat、Apache Kafka、Redis等开源技术,反对微服务,扩展性强。开源、平安、自主可控,许可证 Apache 2.0 License & MaxKey版权申明。界面MaxKey认证 登录界面   主界面   MaxKey治理 拜访报表   用户治理   利用治理   下载以后版本百度网盘下载, 历史版本 版本日期下载地址提取码v 2.4.0 GA2021/01/01链接下载i5xbRoadmap1.MaxKey Cloud(微服务版)-2021年 2.零信赖场景整合 ...

January 5, 2021 · 1 min · jiezi

关于oauth2.0:JustAuth-1159-版发布支持飞书喜马拉雅企业微信网页登录

新增修复并正式启用 飞书 平台的第三方登录AuthToken 类中新增 refreshTokenExpireIn 记录 refresh token 的有效期PR合并 Github #101:反对喜马拉雅登录合并 Github #105:反对企业微信网页受权登录合并 Github #107:增加AuthAlipayRequest网络代理结构器,解决 Github Issue #102批改批改喜马拉雅配置参数,将ClientOsType参数提到 AuthConfig 中AuthChecker 中减少对喜马拉雅平台的校验降级 facebook api 版本到 v9.0,解决 Gitee Issue #I2AR5S!!!留神!!!批改原来的企业微信 Request 类名为 AuthWeChatEnterpriseQrcodeRequest,降级后留神该点留神可能有些开发者对于 JA 集成的四个微信平台不太了解,这儿对立阐明: 依照类名AuthWeChatEnterpriseQrcodeRequest:企业微信二维码登录AuthWeChatEnterpriseWebRequest:企业微信网页登录AuthWeChatOpenRequest:微信开放平台AuthWeChatMpRequest:微信公众平台依照枚举WECHAT_ENTERPRISE:企业微信二维码登录WECHAT_ENTERPRISE_WEB:企业微信网页登录WECHAT_OPEN:微信开放平台WECHAT_MP:微信公众平台对于 Just AuthJustAuth,如你所见,它仅仅是一个第三方受权登录的工具类库,它能够让咱们脱离繁琐的第三方登录SDK,让登录变得So easy! 目前已反对Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么和推特等第三方平台的受权登录。 Login, so easy! 局部用户 特点废话不多说,就俩字: 全:已集成十多家第三方平台(国内外罕用的根本都已蕴含),依然还在继续扩大中(开发计划)!简:API就是奔着最简略去设计的,尽量让您用起来没有阻碍感!我的项目源码库https://gitee.com/yadong.zhang/JustAuthhttps://github.com/justauth/JustAuth

January 2, 2021 · 1 min · jiezi

关于oauth2.0:OAuth-20

简介第三方认证解决方案。用来获取令牌和应用令牌的协定,自身不解决用户信息。用来受权第三方利用,获取用户数据,而不须要将用户名、明码提供给第三方。 场景第三方客户端拜访用户的资源,须要向用户申请受权。用户批准后,资源给第三方客户端令牌(access token)。令牌的权限范畴、有效期可控。 角色RolesResource Owner: User资源resource的拥有者,受权给第三方利用来拜访。这种受权有限度。Resource Server/Authorization Server: API资源服务器保留用户资源。受权服务器验证用户。Client: Application第三方利用。 协定示意整体流程 The application requests authorization to access service resources from the userIf the user authorized the request, the application receives an authorization grantThe application requests an access token from the authorization server (API) by presenting authentication of its own identity, and the authorization grantIf the application identity is authenticated and the authorization grant is valid, the authorization server (API) issues an access token to the application. Authorization is complete.The application requests the resource from the resource server (API) and presents the access token for authenticationIf the access token is valid, the resource server (API) serves the resource to the application第三方治理在资源零碎(Authorization Server)申请注册,会生成客户端凭证:客户端标识符(client identifier/client ID)、客户端秘钥(client secret)。 ...

November 21, 2020 · 1 min · jiezi

关于oauth2.0:手工方式执行OAuth20流程

后面一篇文章钻研了OAuth2.0标准的工作原理,纸上得来终觉浅,明天就以纯手工的形式跑下整个流程。 本示例以GitHub提供的OAuth2.0受权服务来进行试验,所以你必须先有一个GitHub账号,而且没有被墙,试验的步骤如下: 注册OAuth客户端获取Authorization Code获取Access Token应用Access Token拜访资源注册OAuth客户端先登录GitHub,顺次拜访 Settings->Developer settings->OAuth Apps,点击 New OAuth App注册页面 注册后果 注册次要关注三个参数: Authorization callback URL: 获取Authorization Code后的跳转地址Client ID:注册的客户端的惟一标识Client Secret:注册客户端的Secret信息获取Authorization Code获取Authorization Code为GET申请,能够间接拼装URL后在浏览器间接拜访,地址如下: https://github.com/login/oauth/authorize?client_id=9b4cxxxxxxx60b98cd21&redirect_uri=http://127.0.0.1:8000/oauth拜访后,先跳转到登录界面进行用户认证 认证后,间接进入受权确认页面 用户受权后,跳转到redirect_uri地址http://127.0.0.1:8000/oauth?code=ccxxx92a0cef2c024dd2注:这个地址不肯定须要可拜访,间接跳404也能够,次要是要能获取这个code字段。 获取Access Token应用上述个步骤获取的code,Client ID,Client Secret,因为这个是Post申请,所以须要借助Postman来发送(不过我测试了下,浏览器间接GET拜访也能够,会把返回数据当文件下载)。获取Access Token的地址和参数如下: 地址:https://github.com/login/oauth/access_token参数:client_id=xxx&client_secret=xxx&code=xxxPostman截图如下: 留神:基于设计平安,每个code只能申请一次Access Token,应用后就生效了。 应用Access Token拜访资源以获取用户信息为例,获取用户信息URL: https://api.github.com/user在申请头中减少Authorization字段,值为Bearer access_token_value Postman截图如下: 以上就是简略的通过OAuth2.0协定拜访GitHub资源的过程,这个过程还是比较顺利的。 另外在应用过程中,发现Postman曾经集成了OAuth2.0的受权过程,在申请的Authorization页签中抉择OAuth2.0,软件提供了一个填写Get New Access Token的表单。

September 4, 2020 · 1 min · jiezi

Spring-Security-Oauth2-验证和授权服务开发之MongoDBJWT

前言oauth2规范中具备了四种授权模式,分别如下: ·授权码模式:authorization code ·简化模式:implicit ·密码模式:resource owner password credentials ·客户端模式:client credentials 注:本示例只演示密码模式,感兴趣的同学自己花时间测试另外三种授权模式。 配置mongodb和jwt1、新建Application入口应用类 @SpringBootApplication@RestController@EnableEurekaClient// 该服务将作为OAuth2服务@EnableAuthorizationServer// 注意:不加@EnableResourceServer注解,下面user信息为空@EnableResourceServerpublic class Application { @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @GetMapping("/user") public Map<String, Object> user(OAuth2Authentication user){ Map<String, Object> userInfo = new HashMap<>(); userInfo.put("user", user.getUserAuthentication().getPrincipal()); userInfo.put("authorities", AuthorityUtils.authorityListToSet(user.getUserAuthentication().getAuthorities())); return userInfo; } public static void main(String[] args) { SpringApplication.run(Application.class, args); }}2、新建JWTOAuth2Config类 @Configurationpublic class JWTOAuth2Config extends AuthorizationServerConfigurerAdapter { @Autowired private AuthenticationManager authenticationManager; @Autowired private ClientDetailsService mongoClientDetailsService; @Autowired private UserDetailsService mongoUserDetailsService; @Autowired private TokenStore tokenStore; @Autowired private DefaultTokenServices tokenServices; // 将JWTTokenStore类中的JwtAccessTokenConverter关联到OAUTH2 @Autowired private JwtAccessTokenConverter jwtAccessTokenConverter; // 自动将JWTTokenEnhancer装配到TokenEnhancer类中 // token增强类,需要添加额外信息内容的就用这个类 @Autowired private TokenEnhancer jwtTokenEnhancer; @Override public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { // /oauth/token // 如果配置支持allowFormAuthenticationForClients的,且url中有client_id和client_secret的会走 // ClientCredentialsTokenEndpointFilter来保护 // 如果没有支持allowFormAuthenticationForClients或者有支持但是url中没有client_id和client_secret的,走basic认证保护 security.tokenKeyAccess("permitAll()") .checkTokenAccess("permitAll()") .allowFormAuthenticationForClients(); } @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { // Spring Oauth 允许开发人员挂载多个令牌增强器,因此将令牌增强器添加到TokenEnhancerChain类中 // 设置jwt签名和jwt增强器到TokenEnhancerChain TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain(); tokenEnhancerChain.setTokenEnhancers(Arrays.asList(jwtTokenEnhancer, jwtAccessTokenConverter)); endpoints.tokenStore(tokenStore) // 在jwt和oauth2服务器之间充当翻译(签名) .accessTokenConverter(jwtAccessTokenConverter) // 令牌增强器类:扩展jwt token .tokenEnhancer(tokenEnhancerChain) .authenticationManager(authenticationManager) .userDetailsService(mongoUserDetailsService); } @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { // 使用mongodb保存客户端信息 clients.withClientDetails(mongoClientDetailsService); }}3、新建JWTTokenEnhancer令牌增强器类 ...

July 6, 2020 · 4 min · jiezi