Menu Close
Settings Close

Language and Page Formatting Options

4.5.2. 它如何工作

在 Kerberos 服务器中创建了以下用户:

表 4.5. Kerberos 用户

username密码

Sande

samplePass

Andrea

samplePass

Betty

samplePass

Chuck

samplePass

以下角色使用安全域映射到用户:

表 4.6. 用户角色

username角色

Sande

all

Andrea

A

Betty

B

Chuck

 

每个应用程序中也配置了以下角色:

表 4.7. 应用程序角色

应用程序/SP允许的角色

sampleAppA

所有,A

sampleAppB

所有,B

在启动时,EAP1 加载核心服务,后跟 elytron 和其他子系统。kerberos-security-factory 建立与 Kerberos 服务器的连接。sampleAppAsampleAppB 都已部署,并连接到 exampleSpnegoDomainexampleFormDomain 进行身份验证。

Sande 已登录到使用 Kerberos 保护的计算机。她打开浏览器并尝试访问 sampleAppA/secure/hello.html。由于这一点是安全的,因此需要进行身份验证。EAP1 指示浏览器向 Kerberos 服务器发送密钥请求,特别是在其计算机上配置的 Kerberos 密钥分发中心。浏览器获取密钥后,它将被发送到 sampleAppAsampleAppA 使用 exampleSpnegoDomain 将 ticket 发送到 JBoss EAP,其中将它解包并且身份验证与 kerberos-security-factory 中配置的 Kerberos 服务器一同执行。票据通过身份验证后,Sande 的角色将传回 sampleAppA 以执行授权。由于 Sande 具有 all 角色,因此她将能够访问 sampleAppA/secure/hello.html。如果 Sande 尝试访问 sampleAppB/secure/hello.html,则会出现同一个进程。由于她拥有 所有 角色,她将获得访问权限。Andrea 和 Betty 将遵循相同的流程,但 Andrea 只能访问 sampleAppA/secure/hello.html,并且没有 sampleAppB/secure/hello.html。Betty 的情况相反,它有权访问 sampleAppB/secure/hello.html,并且没有 sampleAppA/secure/hello.html。Chuck 会将身份验证传递给 sampleAppA/secure/hello.htmlsampleAppB/secure/hello.html,但不会获得对其的访问权限,因为他没有任何角色。

如果 Sande 试图从没有 Kerberos 保护的计算机访问 sampleAppA/secure/hello.html,例如,与 Office 网络连接的个人笔记本电脑,她会作为回退定向到 FORM 登录 页面。然后,她的凭据将使用回退身份验证机制进行身份验证,进程将继续获得授权。