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

参见

外部链接