大数据安全管理 -- 用户验证与授权1
来源:互联网 发布:淘宝网兼职 编辑:程序博客网 时间:2024/06/01 09:54
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.confClient { # 这一值"Client"是在代码中设定的,就是new LoginContext()中的第一个参数com.sun.security.auth.module.Krb5LoginModule required # 一般都是使用默认的Krb5LoginModuleuseKeyTab=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设定的。它还提供其它的一些参数。但是感觉比较有用的,就是这些。
- 大数据安全管理 -- 用户验证与授权1
- Asp.Net网页安全管理(验证与授权)
- Yii Framework的用户验证与授权
- Yii Framework的用户验证与授权
- 大数据的安全管理 -- Kerberos
- 验证用户登录授权
- 大数据的安全管理 -- JAAS 认证代码
- IIS 用户验证及授权
- ASP.NET面向角色授权之:自定义Forms用户验证与授权
- Yii验证与授权
- MySQL创建用户与授权(1)
- Mysql 数据备份与恢复,用户创建,授权
- 大数据应用于市场与用户研究
- 大数据用户画像方法与实践
- 基于大数据分析的安全管理平台技术研究及应用
- 基于大数据分析的安全管理平台技术研究及应用
- 基于大数据分析的安全管理平台技术研究及应用
- 基于大数据分析的安全管理平台技术研究及应用
- Domino piling_Codeforces_50A
- App内发送短信
- 经典算法之外部排序(给10^7个数据量的磁盘文件排序)
- python random 模块
- FTP服务器连接出现500错误
- 大数据安全管理 -- 用户验证与授权1
- 学习java应该如何理解反射?
- JVM远程DEBUG
- spring-AspectJ的用法
- django 只允许POST或者GET
- 值传递和引用传递
- 动态申请权限d
- Kafka常用命令
- 代码命名规范