- 浏览: 2242322 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
关键字:Zookeeper 和 SASL
介绍
这是一个描述ZooKeeper和SASL(Simple Authentication and Security Layer)整合建议的设计文档。
JIRA 和 源代码
JIRA问题ZOOKEEPER-938,来自JIRA的可用补丁。
请注意:这个JIRA文章只描述了客户端-服务器的相互认证。服务器-服务器的相互认证存在单独的JIRA:ZOOKEEPER-1045。
Zookeeper ACLs 和 SASL
这个功能是在Zookeeper已有的认证和授权设计上的最直接的实现。简要的回顾,Zookeeper支持的可插拔的认证方案(authentication scheme)。一个Node有任意数量的对。对的左边成员为认证方案(authentication scheme)指定认证类型和认证的主体。对的右边成员是表示授权给认证主体的权限。例如,在指定Node的一个ACL对可能是
1
<ip:19.22.0.0/16 , READ>
左边的ip:19.22.0.0/16,意思是 使用互联网地址认证,ipv4地址以”19.22″开头的客户端,拥有右边指定任意权限。右边的READ表示在指定Node上用户”读”的权限。
SASL认证方案标示名是”sasl”,因此如果你使用Kerberos协议,你可以如下设置Node:
1
2
<sasl:myclient@EXAMPLE.COM<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script> , READ>
意思是 Kerberos协议主体是 myclient@EXAMPLE.COM 的客户端 拥有指定Node的读权限。
Zookeeper 命令的差异
1.create
在非SASL认证的Zookeeper,当你创建Node时可能添加认证条件,例如:使用org.apache.zookeeper.server.auth.DigestAuthenticationProvider,你可以:
password
1
2
3
# create a digest form of the password "password":
$ java -cp build/classes:build/lib/log4j-1.2.15.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider user:password
user:password->user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=
之后再连接Zookeeper,你可以按如下代码使用 密码”password” 将所有权限赋给 用户”user” :
create
1
create /mynode content digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa
2.addauth
SASL的认证方案不同于其他的方案,在命令”addauth “中,如果scheme是”sasl”,命令无效。这是因为SASL认证在建立后会立即启用令牌交换,而不是在链接后的任意时间执行addauth。
3.addAcl
因为在create时,不会包含认证信息。因此使用DigestAuthenticationProvider时你需要:
addAcl
1
addAcl /mynode digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa
在使用SaslAuthenticationProvider,替换为:
addAcl
1
2
addAcl /mynode sasl:user@EXAMPLE.COM<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script>:cdrwa
SASL 和 现有的authProviders
你可能会继续使用 现有的ZooKeeper authentication providers,例如:DigestAuthenticationProvider 配合着SaslAuthenticationProvider。如果你愿意,现有的单元测试的authentication providers使用这些 authentication providers 依然可以正常工作。
org.apache.zookeeper.LoginThread
LoginThread 是一个新类,会启动一下新线程,用于定期刷新zookeeper的server和client 上的javax.security.auth.Subject 证书。如果zookeeper 配置使用 Kerberos (下面的 “服务器配置” ,会教怎么配置),client和server会缓存缓存秘钥或证书。LoginThread 将会刷新 Subject 的证书。
Zookeeper Client 的改进
org.apache.zookeeper.ZooKeeper
如果定义了系统环境变量java.security.auth.login.config,ZooKeeper的构造器会初始化成员变量 org.apache.zookeeper.LoginThread loginThread:
ZooKeeper.java
1
2
3
4
5
6
7
8
9
10
LoginThread loginThread = null;
if (System.getProperty("java.security.auth.login.config") != null) {
// zookeeper.client.ticket.renewal defaults to 19 hours (about 80% of 24 hours, which is a typical ticket expiry interval).
loginThread = new LoginThread("Client",new ClientCallbackHandler(null),Integer.getInteger("zookeeper.client.ticket.renewal",19*60*60*1000));
}
cnxn = new ClientCnxn(connectStringParser.getChrootPath(),
hostProvider, sessionTimeout, this, watchManager,
getClientCnxnSocket(), canBeReadOnly, loginThread);
cnxn.start();
正如上面展示的,loginThread之后传递到类ClientCnxn 的构造器,下一小节中会继续讨论。
未完待续
原英文页:https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zookeeper+and+SASL
介绍
这是一个描述ZooKeeper和SASL(Simple Authentication and Security Layer)整合建议的设计文档。
JIRA 和 源代码
JIRA问题ZOOKEEPER-938,来自JIRA的可用补丁。
请注意:这个JIRA文章只描述了客户端-服务器的相互认证。服务器-服务器的相互认证存在单独的JIRA:ZOOKEEPER-1045。
Zookeeper ACLs 和 SASL
这个功能是在Zookeeper已有的认证和授权设计上的最直接的实现。简要的回顾,Zookeeper支持的可插拔的认证方案(authentication scheme)。一个Node有任意数量的对。对的左边成员为认证方案(authentication scheme)指定认证类型和认证的主体。对的右边成员是表示授权给认证主体的权限。例如,在指定Node的一个ACL对可能是
1
<ip:19.22.0.0/16 , READ>
左边的ip:19.22.0.0/16,意思是 使用互联网地址认证,ipv4地址以”19.22″开头的客户端,拥有右边指定任意权限。右边的READ表示在指定Node上用户”读”的权限。
SASL认证方案标示名是”sasl”,因此如果你使用Kerberos协议,你可以如下设置Node:
1
2
<sasl:myclient@EXAMPLE.COM<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script> , READ>
意思是 Kerberos协议主体是 myclient@EXAMPLE.COM 的客户端 拥有指定Node的读权限。
Zookeeper 命令的差异
1.create
在非SASL认证的Zookeeper,当你创建Node时可能添加认证条件,例如:使用org.apache.zookeeper.server.auth.DigestAuthenticationProvider,你可以:
password
1
2
3
# create a digest form of the password "password":
$ java -cp build/classes:build/lib/log4j-1.2.15.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider user:password
user:password->user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=
之后再连接Zookeeper,你可以按如下代码使用 密码”password” 将所有权限赋给 用户”user” :
create
1
create /mynode content digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa
2.addauth
SASL的认证方案不同于其他的方案,在命令”addauth “中,如果scheme是”sasl”,命令无效。这是因为SASL认证在建立后会立即启用令牌交换,而不是在链接后的任意时间执行addauth。
3.addAcl
因为在create时,不会包含认证信息。因此使用DigestAuthenticationProvider时你需要:
addAcl
1
addAcl /mynode digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa
在使用SaslAuthenticationProvider,替换为:
addAcl
1
2
addAcl /mynode sasl:user@EXAMPLE.COM<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script>:cdrwa
SASL 和 现有的authProviders
你可能会继续使用 现有的ZooKeeper authentication providers,例如:DigestAuthenticationProvider 配合着SaslAuthenticationProvider。如果你愿意,现有的单元测试的authentication providers使用这些 authentication providers 依然可以正常工作。
org.apache.zookeeper.LoginThread
LoginThread 是一个新类,会启动一下新线程,用于定期刷新zookeeper的server和client 上的javax.security.auth.Subject 证书。如果zookeeper 配置使用 Kerberos (下面的 “服务器配置” ,会教怎么配置),client和server会缓存缓存秘钥或证书。LoginThread 将会刷新 Subject 的证书。
Zookeeper Client 的改进
org.apache.zookeeper.ZooKeeper
如果定义了系统环境变量java.security.auth.login.config,ZooKeeper的构造器会初始化成员变量 org.apache.zookeeper.LoginThread loginThread:
ZooKeeper.java
1
2
3
4
5
6
7
8
9
10
LoginThread loginThread = null;
if (System.getProperty("java.security.auth.login.config") != null) {
// zookeeper.client.ticket.renewal defaults to 19 hours (about 80% of 24 hours, which is a typical ticket expiry interval).
loginThread = new LoginThread("Client",new ClientCallbackHandler(null),Integer.getInteger("zookeeper.client.ticket.renewal",19*60*60*1000));
}
cnxn = new ClientCnxn(connectStringParser.getChrootPath(),
hostProvider, sessionTimeout, this, watchManager,
getClientCnxnSocket(), canBeReadOnly, loginThread);
cnxn.start();
正如上面展示的,loginThread之后传递到类ClientCnxn 的构造器,下一小节中会继续讨论。
未完待续
原英文页:https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zookeeper+and+SASL
发表评论
-
Dubbo Main启动方式浅析
2015-05-27 13:54 15403关键字:Dubbo Main启动方式浅析 服务容器是一个s ... -
淘宝可伸缩高性能互联网架构--整体架构介绍
2015-05-14 13:21 12636推荐综合架构交流群:JAVA开发高级群 点击入群!!! 关键 ... -
各大巨头电商提供的IP库API接口-新浪、搜狐、阿里...
2015-04-22 13:18 15849关键字:各大巨头电商提供的IP库API接口-新浪、搜狐、阿里. ... -
用Java来获取访问者真实的IP地址-超准确
2015-04-22 12:55 6196关键字:用Java来获取访问者真实的IP地址-超准确 下面分享 ... -
Shiro集成OAuth2
2015-04-21 10:31 12347关键字:Shiro集成OAuth2 参考:http://jin ... -
淘宝网架构分享总结 - 架构,分布式,淘宝,虚拟化,水平伸缩
2015-04-19 00:25 7584推荐综合架构交流群:JAVA开发高级群 点击入群!!! 关键 ... -
高可用、开源的Redis缓存集群方案
2015-04-16 12:25 3712推荐综合架构交流群:J ... -
非对称加密(RSA)加密解密实现通信JAVA端工具类(教程)
2015-04-15 17:27 1132关键字:非对称加密(RSA)加密解密实现通信JAVA端工具类( ... -
对称加密(AES)加密实现工具类(教程)
2015-04-15 17:11 2096关键字:对称加密(AES)加密实现工具类(教程) Java加 ... -
各种Nosql数据库系统对比及应用场景分析
2015-04-15 16:29 719关键字:各种Nosql数据库系统对比及应用场景分析 导读:Kr ... -
Curator-Framework开源Zookeeper快速开发框架介绍
2015-04-14 18:41 648关键字:Curator-Framework开源Zookeepe ... -
IM消息推送之Openfire
2015-04-13 13:40 2154关键字:IM消息推送之Openfire Openfire 采用 ... -
Nio框架之Mina的demo
2015-04-12 13:38 572关键字:Nio框架之Mina的demo 官网:http://m ... -
Zookeeper中ACL(访问控制列表)
2015-04-10 17:21 2789关键字:Zookeeper中ACL( ... -
Mongodb命令大全
2015-03-18 11:18 759关键字:Mongodb命令大全 他支持的数据结构非常松散,是类 ... -
AMQP中文版协议规范
2015-01-23 17:12 2934关键字:AMQP中文版协议规范 AMQP中文版协议规范:ht ... -
安装ZooKeeper(单机、伪集群、集群)
2015-01-15 11:02 10422关键字:安装ZooKeeper(单机、伪集群、集群) 推荐 ... -
Zookeeper Api(java)入门详解与应用场景
2015-01-14 14:36 1606关键字:Zookeeper Api(java)入门详解与应用场 ... -
数据库连接池选型
2014-12-04 18:32 1125关键字:数据库连接池选型 proxool(与spring不太 ... -
spring中的数据源配置信息加密方案
2014-10-22 10:36 1031关键字:spring中的数据源配置信息加密方案 附件是完整的 ...
相关推荐
zookeeper集群SASL认证&KAFKA权限配置SASL/PLAIN身份验证 配置环境 JKD: 1.8 Kafka: 2.3.0 Zookeeper: 3.4.14 服务器名 kafka内网IP:PORT kafka外网IP:PORT zookeeper内网IP:PORT KAFKA01 192.168.1.157:...
解决Opening socket connection to server 172.31.0.3/172.31.0.3:2181. Will not attempt to authenticate using SASL (unknown error)
本教程清晰地介绍的zookeeper构建集群的完整过程,可以在本地环境下安装和拷贝出多个VMware虚拟机,然后通过zookeeper将多个VMware虚拟机构建成一个集群
资源来自pypi官网。 资源全名:pure-sasl-0.1.5.tar.gz
zoonavigator:基于Web的ZooKeeper UI编辑器浏览器
1、下载zookeeper安装包 2、安装zookeeper 3、服务启动 4、检查状态 5、连接测试 1、下载kafka安装包 2、修改文件server.pr
关于Zookeeper ,它还与Kerberos身份验证不兼容,仅与SSL,SASL和DIGEST身份验证兼容。 安装 在您的剧本的requirements.yml中添加以下要求: --- # from GitHub, overriding the name and specifying a specific ...
7.3使用SASL进行身份验证 7.4授权和ACL 7.5在正在运行的群集中加入安全功能 7.6 ZooKeeper认证 新集群 迁移群集 迁移ZooKeeper Ensemble 8. KAFKA CONNECT 8.1概述 8.2用户指南 运行Kafka ...
简介 Zookeeper搭建 bin/zkServer.sh start ... Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn) [2020-02-19 14:58:13,672] WARN Session 0x0 for serve
kafka-manager 将用于自己的簿记的 zookeeper。 不需要为您的任何 kafka 集群匹配 zookeeper。使用自己的动物园管理员启动 kafkamanager $ > docker-compose up 打开http://localhost:9000开始探索
它是一个运行在Spring Boot上的轻量级应用程序,易于配置,支持SASL和TLS安全的代理。产品特点查看Kafka代理-主题和分区分配以及控制器状态查看主题-分区数,复制状态和自定义配置浏览消息-JSON,纯文本和Avro编码...
资源分类:Python库 所属语言:Python 资源全名:ms_active_directory-1.8.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Set up Mesos on different ...Configure Mesos for high availability using Zookeeper Secure your Mesos clusters with SASL and Authorization ACLs Solve everyday problems and discover the best practices
支持PLAINTEXT,SASL_PLAINTEXT,SASL_SSL和SSL侦听器。将Kafka-JUnit与JUnit 4结合使用。 请查看以获取JUnit4的使用说明。将Kafka-JUnit与JUnit 5结合使用。 请查看以获取JUnit5的使用说明。使用Kafka-JUnit-Core...