JAAS

Java认证和授权服务（Java Authentication and Authorization Service，简称JAAS）是一个Java以用户为中心的安全框架，作为Java以代码为中心的安全的补充。自Java运行环境（JRE） 1.4起，JAAS就被集成到JRE，而之前是作为一个扩展库由Sun公司提供的。

JAAS的主要目標是分開使用者認證的議題，這樣就可以個別地管理他們。

 管理 

對系統管理者而言，JAAS有兩種設定檔：
 *.login.conf：詳述如何插入廠商提供的用戶認證模塊（Login Module）到特定應用程式裡。
 *.policy：詳述哪個身份（使用者或程式）獲得哪種許可

例如，一個有這種login.conf的檔案指出不同的認證機制要如何執行以認證使用者。

    PetShopApplication {
       com.sun.security.auth.module.LdapLoginModule sufficient;
       com.foo.SmartcardLoginModule                 requisite;
       com.sun.security.auth.module.UnixLoginModule required debug=true;
    };

 应用程序接口 

對應用程式開發者而言，JAAS是一個標準的程式庫，並提供了：
 身份（Principal）和一系列证书（Subject）表示。
 认证服务，将调用你的应用程序的回调接口请求用户的信息，如用户名和口令。认证服务将返回一个新的Subject对象。
 授权服务，验证一个Subject是否由管理员授予了某个权限。

 安全系统集成 

對安全系統整合者而言，JAAS提供的介面可以：
 提供你的身分名字空間給應用程式。
 将证书附加在线程上(Subject)。
 有关登录模块的开发。你的模块调用回调函数查询用户，检查他们的应答并生成Subject。

 参见 
 PAM
 Apache Shiro
 EJB#安全

 外部链接 
 JAAS主页 
 JAAS教程1 
 JAAS教程2
  jGuard : open source project which can secure standalone or web applications based on JAAS

Category:Java
Category:身份验证方法