大数据安全管理 -- 用户验证与授权1
2017-12-12 13:49
375 查看
1. JaaS 介绍
Java安全框架最初集中在保护用户运行潜在的不可信任代码,是基于代码的来源(URL)和谁创建的代码(certificate)来给移动代码进行授权。Java 2 SDK 1.3引入了JAAS( Java Authentication and Authorization Service),增加了基于用户的访问控制能力,即根据谁在运行代码来进行授权。上面是百度百科对于JaaS的解释。如果我们把KDC看成一个数据库的话,那么JaaS就有点儿类似于JDBC。JDBC连接数据库,有一系列的类似于模板的代码,如果我们需要连接MySQL数据库,我们套用这些代码即可。JaaS也是一样的,它也有一系列的模板代码,我们直接套用,就可以完成kerberos的用户验证(JaaS 不仅仅用在Kerberos),下面我们一起看一下JaaS的使用
2. JaaS的使用
JDK已经提供了完整的JAAS的方案,下面我们来看一个完整的JAAS登录的代码与配置。2.1 JaaS登录样例
下面的代码为客户端进行Kerberos认证的代码。一共只有二行public class JaasTest { public static void main(String[] args) { try { LoginContext lc = new LoginContext("JaaSSampleTest", new TextCallbackHandler()); lc.login(); Subject sub = lc.getSubject(); } catch (LoginException le) { System.err.println("Authentication failed:"); System.exit(-1); } System.out.println("Authentication succeeded!"); } }
其中配置文件jaas_test.conf为:
JaaSSampleTest { com.sun.security.auth.module.Krb5LoginModule required; };
其运行的虚拟机参数为:
-Djava.security.auth.login.config=f:\kerberos\jaas.conf -Djava.security.krb5.realm=EXAMPLE.COM -Djava.security.krb5.kdc=freeipa56.example.com
运行结果如下:
2.2 JaaS的配置文件
在上例中,我们进行kerberos认证的时候,采用的是用户名与密码的方式。但是我们实际使用过程中,就会发现很多时候不是采用的这种交互式的方式,而是采用keytab文件的方式。这就与我们的这个jaas.conf的配置参数有关了。下面的一个client.conf配置文件是HMaster采用的,它包含了我们常用的一些信息。[root@ysbdh03 0]# cat /usr/hdp/current/hbase-master/conf/hbase_master_jaas.conf Client { # 这一值"Client"是在代码中设定的,就是new LoginContext()中的第一个参数 com.sun.security.auth.module.Krb5LoginModule required # 一般都是使用默认的Krb5LoginModule useKeyTab=true # 认证的时候,是否采用keytab文件 storeKey=true debug=true #是否打印debug日志 useTicketCache=false #是否采用kinit后直cache值 keyTab="/etc/security/keytabs/hbase.service.keytab" # keytab的位置 principal="hbase/ysbdh03.gdbd.com@GDBD.COM"; # keytab对应的princal的值 };
需要说明的是这些参数都是由Krb5LoginModule设定的。它还提供其它的一些参数。但是感觉比较有用的,就是这些。
相关文章推荐
- 对用户输入的数据进行安全验证(Safe-Handling User Input)
- 【Java EE 学习 30】【闪回】【导入导出】【管理用户安全】【分布式数据库】【数据字典】【方案】
- mui-OAuth模块管理客户端的用户登录授权验证功能,允许应用访问第三方平台的资源。
- 使用“成员资格管理用户”以及“Forms 身份验证提供程序”保护需要授权才能访问的资源
- HTML5+规范:OAut(管理客户端的用户授权登录验证功能)
- 背水一战 Windows 10 (83) - 用户和账号: 数据账号的添加和管理, OAuth 2.0 验证
- .net2.0安全验证与用户管理
- 04: 用户授权及撤销 、 数据备份与恢复 、 MySQL管理工具
- 详解MySQL用户与授权、MySQL日志管理、数据乱码解决方案。
- 用户授权及撤销 、 数据备份与恢复 、 MySQL管理工具
- ASP.NET中启用Windows集成验证,怎样在调用System.DirectoryServices下的组件时传递安全上下文,也就是说当前用户凭据,来实现权限管理
- 安全编程: 验证输入--接收用户数据的最佳实践
- Asp.Net网页安全管理(验证与授权)
- 对用户的输入的数据进行安全验证
- Asp.net Web应用程序安全(二):用户验证和授权
- oracle基本操作语法(建表空间,建用户,授权,数据导入导出)
- oauth的融合到discux,涉及数据同步,用户登录验证
- 在Flash中调用WS时的身份验证_6:ws调用的用户验证和授权访问
- MySQL数据库用户授权管理
- 转 ASP.NET基于表单的验证实现网上安全访问,管理(2)