SASL JAAS JSSE JGSS-API
全称:
SASL(Simple Authentication and Security Layer)
JAAS(JAVA Authentication and Authorization Service)
JSSE(Secure Socket Extension)
Java GSS-API(Java Generic Security Service Application Programming Interface)
定义:
JAAS -- JAAS implements a Java version of the standard Pluggable Authentication Module (PAM) framework.
JAAS Reference:
http://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html#AppendixA
SASL -- SASL is an Internet standard (RFC 2222) that specifies a protocol for authentication and optional establishment of a security layer between client and server applications. It provides pluggable authentication and security layer for network applications.
SASL Guide:
http://java.sun.com/j2se/1.5.0/docs/guide/security/sasl/sasl-refguide.html
JSSE -- JSSE provides a framework and an implementation for a Java language version of the SSL and TLS protocols.
JSSE Reference:
http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html
Java GSS-API -- Java GSS is the Java language bindings for the Generic Security Service Application Programming Interface (GSS-API). The only mechanism currently supported underneath this API on J2SE is Kerberos v5. Java GSS-API is used for securely exchanging messages between communicating applications.
解释:
以前的Java已经具备了codesource-based access controls,也就是根据code来自哪里,来自谁来决定access controls。 但是缺少根据是谁在执行code来决定access code的能力。 JAAS就是为Java提供这个能力的。 JAAS只用来干两件事:Authentication 和 Authorization。 而具体的形式,就是通过LoginModule的login结果,来确定要执行代码的人是谁(Authentication)和有没有全力来做(Authorization)。
AAS,SASL和GSS-API都是pluggable fashion的,和具体的Authentication方式是分离的。因此可以SASL + GSS-API + Kerberos, 也可以JAAS + Kerberos。
JAAS是对Java platform自身功能的加强。而SASL是一个Internet标准协议,Java SASL只是这个协议的一个种Java实现。这点上和JSSE, GSS-API是类似的,JSSE是SSL标准协议的Java实现, Java GSS-API 是对GSS-API的Java实现。
因此,在$JAVA_HOME/lib/security/java.security中有:
security.provider.2=com.sun.net.ssl.internal.ssl.Provider #SunJSSE Provider
security.provider.5=sun.security.jgss.SunProvider #SunGSS-API Provider
security.provider.7=com.sun.security.sasl.Provider #SunSASL provider
使用哪个API,通常是由protocol的定义决定的。比如LDAP(Lightweight Directory Access Protocol)和IMAP(Internet Message Access Protocol)定义了要使用SASL。 而要实现SSL/TLS通信,则需要使用JSSE。当要用到Kerberos的时候,就需要Java GSS-API了。
另外,JSSE和GSS-API都是用来做通信加密的。不过JSSE是socket-based的API,而GSS-API是token-based的。也就是说JSSE只能使用socket,而GSS-API可以使用TCP sockets, UDP datagrams, 或者其他的。
对GSS-API和JSSE的更多比较参看这里:
http://java.sun.com/j2se/1.5.0/docs/guide/security/jgss/tutorials/JGSSvsJSSE.html
这4个通常还混合使用。比如最常见的模式是:SASL在客户端提供authentication, 而SASL的一种authentication mechanism就是GSS-API, 实现authentication最终通常会使用JAAS的LoginModule。 因此就形成了: SASL GSS-API/Kerberos V5 + LDAP的模式。这种模式常用来实现SSO(Single-Sign-On)。
Advanced Security Programming in Java 中列出了好几种组合模式:
http://java.sun.com/javase/6/docs/technotes/guides/security/jgss/lab/index.html#two
Link:
Java 6.0 Security的Document的总连接:
http://java.sun.com/javase/6/docs/technotes/guides/security/
Java Platform Security Architecture:
http://java.sun.com/javase/6/docs/technotes/guides/security/spec/security-spec.doc.html
Java Cryptography Architecture Reference & API:
http://java.sun.com/j2se/1.5.0/docs/guide/security/CryptoSpec.html
分享到:
相关推荐
win-sasl-0.3.1-cp39-cp39-win_amd64,sasl-0.3.1-cp39-cp39-win_amd64
sasl-0.3.1-cp37-cp37m-win_amd64.whl
sasl-0.3.1-cp310-cp310-win_amd64.whl
pip install sasl-0.2.1-cp27-cp27m-win32.whl或pip install sasl-0.2.1-cp27-cp27m-win_amd64.whl 可在cmd执行以下命令获取python环境的位数: 1)、python 2)、import platform 3)、platform.architecture()...
sasl-0.2.1-cp36-cp36m-win32.whl
sasl的whl文件,sasl安装不上,利用sasl的whl文件安装。适合python3.6,64位。
cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64.rpm cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64.rpm
Superset安装过程中必须用到此文件,支持Python3.7版本。
Python连接hive server2时需要安装pyhs2,而在windows下安装pyhs2时需要先安装sasl
sasl-0.3.1-cp39-cp39-win_amd64.whl
标题中的“sasl安装whl文件.rar”指示了我们需要安装SASL库的一个特定版本,即sasl-0.2.1,这是一个针对Python 3.7且适用于Windows AMD64平台的预编译轮子(wheel)文件。轮子文件是Python的二进制包格式,可以直接...
Python连接hive server2时需要安装pyhs2,而在windows下安装pyhs2时需要先安装sasl
离线安装包,亲测可用
Python连接hive server2时需要安装pyhs2,而在windows下安装pyhs2时需要先安装sasl
win-sasl-0.3.1-cp38-cp38-win_amd64,win-sasl-0.3.1-cp38-cp38-win_amd64,win-sasl-0.3.1-cp38-cp38-win_amd64
sasl-0.2.1-cp34-cp34m-win_amd64.whl python3.4.4 的依赖包,3.4版本的都可以用 直接使用pip install sasl-0.2.1-cp34-cp34m-win_amd64.whl 命令安装就行了
sasl-0.3.1-cp37-cp37m-win32.whl
离线安装包,亲测可用