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

参见

外部链接