- 浏览: 2259911 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 15450关键字:Dubbo Main启动方式浅析 服务容器是一个s ... -
淘宝可伸缩高性能互联网架构--整体架构介绍
2015-05-14 13:21 12679推荐综合架构交流群:JAVA开发高级群 点击入群!!! 关键 ... -
各大巨头电商提供的IP库API接口-新浪、搜狐、阿里...
2015-04-22 13:18 15907关键字:各大巨头电商提供的IP库API接口-新浪、搜狐、阿里. ... -
用Java来获取访问者真实的IP地址-超准确
2015-04-22 12:55 6253关键字:用Java来获取访问者真实的IP地址-超准确 下面分享 ... -
Shiro集成OAuth2
2015-04-21 10:31 12439关键字:Shiro集成OAuth2 参考:http://jin ... -
淘宝网架构分享总结 - 架构,分布式,淘宝,虚拟化,水平伸缩
2015-04-19 00:25 7633推荐综合架构交流群:JAVA开发高级群 点击入群!!! 关键 ... -
高可用、开源的Redis缓存集群方案
2015-04-16 12:25 3754推荐综合架构交流群:J ... -
非对称加密(RSA)加密解密实现通信JAVA端工具类(教程)
2015-04-15 17:27 1180关键字:非对称加密(RSA)加密解密实现通信JAVA端工具类( ... -
对称加密(AES)加密实现工具类(教程)
2015-04-15 17:11 2142关键字:对称加密(AES)加密实现工具类(教程) Java加 ... -
各种Nosql数据库系统对比及应用场景分析
2015-04-15 16:29 755关键字:各种Nosql数据库系统对比及应用场景分析 导读:Kr ... -
Curator-Framework开源Zookeeper快速开发框架介绍
2015-04-14 18:41 699关键字:Curator-Framework开源Zookeepe ... -
IM消息推送之Openfire
2015-04-13 13:40 2202关键字:IM消息推送之Openfire Openfire 采用 ... -
Nio框架之Mina的demo
2015-04-12 13:38 638关键字:Nio框架之Mina的demo 官网:http://m ... -
Zookeeper中ACL(访问控制列表)
2015-04-10 17:21 2828关键字:Zookeeper中ACL( ... -
Mongodb命令大全
2015-03-18 11:18 799关键字:Mongodb命令大全 他支持的数据结构非常松散,是类 ... -
AMQP中文版协议规范
2015-01-23 17:12 2986关键字:AMQP中文版协议规范 AMQP中文版协议规范:ht ... -
安装ZooKeeper(单机、伪集群、集群)
2015-01-15 11:02 10465关键字:安装ZooKeeper(单机、伪集群、集群) 推荐 ... -
Zookeeper Api(java)入门详解与应用场景
2015-01-14 14:36 1651关键字:Zookeeper Api(java)入门详解与应用场 ... -
数据库连接池选型
2014-12-04 18:32 1166关键字:数据库连接池选型 proxool(与spring不太 ... -
spring中的数据源配置信息加密方案
2014-10-22 10:36 1072关键字:spring中的数据源配置信息加密方案 附件是完整的 ...
相关推荐
通过指定镜像、端口映射、环境变量和依赖关系等配置,实现了Zookeeper和Kafka的快速部署和集成。同时,在定义了一个名为"mynetwork"的网络来连接这些服务,确保它们可以相互通信。整体而言,这个Docker Compose 文件...
6.2 SASL认证:ZooKeeper支持SASL(Simple Authentication and Security Layer),可实现客户端和服务端的身份验证。 七、监控与维护 7.1 监控工具:使用JMX(Java Management Extensions)监控ZooKeeper的运行...
Zookeeper是Apache Hadoop项目的一部分,它在分布式环境中起到关键的角色,尤其是在大数据处理和分布式计算领域。 **Zookeeper的核心概念:** 1. **节点(Znode)**:Zookeeper中的数据存储单元,类似于文件系统的...
5.1 认证与授权:Zookeeper支持SASL和ACL(Access Control Lists)机制,确保只有授权的用户和应用才能访问服务。 5.2 加密通信:通过SSL/TLS实现客户端与服务器间的加密通信,保证数据传输的安全性。 总结,...
ZooKeeper 支持 SASL 认证和 ACL(Access Control Lists)权限控制,可以对不同用户或角色设置不同的访问权限,确保数据的安全。 8. **ZooKeeper 集群** 在实际应用中,ZooKeeper 通常运行在多个服务器组成的集群...
1. **安全性**:Zookeeper支持SASL和ACL,可以实现用户认证和访问控制,保护数据的安全。 2. **监控**:通过JMX接口,Zookeeper提供了丰富的监控指标,可以监控服务器状态、会话、操作等信息。 3. **日志与快照**...
- **SASL(Simple Authentication and Security Layer)**:ZooKeeper支持SASL进行认证,可以与其他系统(如Kafka)集成,提供更高级别的安全保护。 5. **应用案例**: - **Hadoop**:ZooKeeper在Hadoop中用于...
- ZooKeeper 支持 SASL 和 SSL 认证,提供用户身份验证和数据加密,保障集群安全。 - 在配置文件中启用认证功能并配置相应的权限策略,可以限制对 ZooKeeper 资源的访问。 8. **监控与日志**: - ZooKeeper 生成...
- **安全增强**:支持 SASL 认证和 ACL 策略,提升了系统的安全性。 - **监控与日志**:提供了更详细的监控指标和日志记录,便于诊断和调试。 - **API 更新**:优化了 Java 和 C API,增强了易用性和兼容性。 ###...
5. 安全性:ZooKeeper支持SASL和SSL两种安全认证方式,可以为服务提供身份验证和数据加密,保障通信安全。 6. 性能调优:为了提升ZooKeeper的服务性能,可能需要调整缓存大小、心跳间隔、会话超时时间等参数。同时...
- ZooKeeper支持SASL(Simple Authentication and Security Layer)和SSL/TLS加密,以保护通信安全和数据隐私。 8. **监控与日志**: - ZooKeeper提供了丰富的监控指标,可以通过JMX进行监控。 - 日志文件位于`...
8. **安全性**:3.5.x版本中,ZooKeeper增强了安全性,可以配置SASL、SSL等安全认证方式,保护集群免受未授权访问。 9. **API使用**:ZooKeeper提供了Java和C语言的API,允许应用程序进行数据操作、监听数据变化等...
- Zookeeper 支持 SASL 认证和 ACL(Access Control List),可以为不同的节点设置权限控制,确保数据安全。 8. **应用示例**: - 多个分布式项目依赖 Zookeeper,如 Hadoop、Kafka、HBase 等。了解 Zookeeper 的...
10. **安全管理**:Zookeeper支持SASL和SSL安全认证,可以根据实际需求配置相关安全设置,增强服务的安全性。 了解了这些基本操作后,你可以进一步探索Zookeeper的高级特性,如选举算法、watch机制、ZNode的数据...
9. **安全性**:Zookeeper支持SASL(Simple Authentication and Security Layer)和ACL(Access Control List)机制,可以实现对不同用户和客户端的权限控制,保证服务的安全性。 10. **故障恢复**:Zookeeper具有...
6. **安全性**:Zookeeper支持简单的认证和授权机制,如SASL(Simple Authentication and Security Layer)和ACL(Access Control Lists),以保护Zookeeper的数据和服务不被非法访问。 7. **监控与管理**:...
Zookeeper权限控制是Apache ZooKeeper系统中的一个重要特性,它允许管理员和用户对Zookeeper的数据节点进行细粒度的访问控制,以确保数据的安全性。在Java开发中,理解和使用Zookeeper的权限控制对于构建分布式系统...
9. **安全性**:该版本加强了安全特性,支持SASL和SSL加密,确保了在分布式环境中的数据传输安全。 10. **监控与诊断**:Zookeeper提供了丰富的监控指标和日志,便于开发者进行问题排查和系统调优。同时,通过JMX...
标签中提到了"zookeeper 分布式 云原生 cloud native Python库",这意味着`pure-sasl`可能与Apache ZooKeeper相关,ZooKeeper是一个开源的分布式协调服务,广泛应用于分布式系统中,如数据存储、配置管理、命名服务...
2. **安全性**:支持SASL和Kerberos认证,保证了数据访问的安全性。 总结,Apache Zookeeper 3.4.12版本以其强大的功能和稳定性在分布式领域扮演着重要角色。理解并掌握Zookeeper的工作原理和使用方法,对于构建高...