Java 2 平台安全认证与授权体系深度解析
1. 认证框架的独立性与可插拔性
在 Java 2 平台的安全架构中,认证框架有着独特的优势,它能够让应用程序与底层的认证技术保持独立。这意味着,当新的认证服务出现或者现有服务更新时,系统管理员可以轻松部署这些变化,而无需修改或重新编译现有的应用程序。
认证框架的核心是登录上下文(LoginContext),由 javax.security.auth.login.LoginContext 类提供基本方法。这个类不仅用于认证主体(Subject),还为开发独立于底层认证技术的应用程序提供了途径。当应用程序需要认证主体时,会调用登录上下文,它会参考 javax.security.auth.login.Configuration 的实例,来确定针对特定应用程序配置的认证机制或登录模块。
不同的登录模块可以通过不同的认证技术来认证主体。例如:
- 传统的基于密码的登录模块,会提示用户输入用户名和密码,并进行验证。
- 智能卡登录模块,会指示主体将卡插入读卡器,并验证个人识别码(PIN)。
- 生物识别登录模块,会提示主体提供某种物理特征,如指纹或视网膜扫描。
系统管理员可以根据应用程序的安全要求,配置合适的登录模块,甚至可以在一个应用程序下插入多个登录模块,形成堆叠配置。主体会按照配置指定的顺序依次向各个登录模块进行认证,无论某个登录模块认证成功还是失败,主体都会继续向堆栈中的后续登录模块进行认证,这样可以向潜在攻击者隐藏失败的来源。
2. 登录上下文的认证流程
典型的应用程序会实例化一个
超级会员免费看
订阅专栏 解锁全文
932

被折叠的 条评论
为什么被折叠?



