4.5.2. 仕組み
以下のユーザーが Kerberos サーバーに作成されています。
表4.5 Kerberos ユーザー
ユーザー名 | パスワード |
---|---|
Sande | samplePass |
Andrea | samplePass |
Betty | samplePass |
Chuck | samplePass |
セキュリティードメインを使用して以下のロールがユーザーにマップされます。
表4.6 ユーザーロール
ユーザー名 | ロール |
---|---|
Sande | all |
Andrea | A |
Betty | B |
Chuck |
各アプリケーションには以下のロールが設定されています。
表4.7 アプリケーションロール
アプリケーション/SP | 許可されるロール |
---|---|
sampleAppA | all、A |
sampleAppB | all、B |
起動時に、EAP1
はコアサービスをロードしてから elytron
およびその他のサブシステムをロードします。kerberos-security-factory
は Kerberos サーバーへの接続を確立します。sampleAppA
と sampleAppB
の両方がデプロイされ、認証のために exampleSpnegoDomain
と exampleFormDomain
に接続します。
Sande は Kerberos でセキュア化されたコンピューターにログインしています。Sande はブラウザーを開き、sampleAppA/secure/hello.html
へのアクセスを試みます。このページはセキュアであるため、認証が必要になります。EAP1
は、Sande のコンピューターに設定されている Kerberos Key Distribution Center (Kerberos サーバー) へのキーを要求するリクエストを送信するよう、ブラウザーに指示します。ブラウザーがキーを取得すると、sampleAppA
に送信されます。sampleAppA
は exampleSpnegoDomain
を使用してチケットを JBoss EAP に送信します。そこでチケットがアンパックされ、kerberos-security-factory
の設定済みの Kerberos サーバーとともに認証が実行されます。チケットが認証されたら、Sande のロールは sampleAppA
に戻され、承認が実行されます。Sande は all
ロールを持っているため、sampleAppA/secure/hello.html
にアクセスできます。Sande が sampleAppB/secure/hello.html
にアクセスする場合も同じ処理が発生します。all
ロールを持っているため、アクセスが許可されます。Andrea と Betty にも同じ処理が発生しますが、Andrea は sampleAppA/secure/hello.html
のみにアクセスでき、sampleAppB/secure/hello.html
にはアクセスできません。Betty はこの逆で、sampleAppB/secure/hello.html
のみにアクセスでき、sampleAppA/secure/hello.html
にはアクセスできません。Chuck は sampleAppA/secure/hello.html
または sampleAppB/secure/hello.html
の認証に成功しますが、ロールを持たないためどちらにもアクセスできません。
オフィスのネットサークに接続する個人のラップトップなど、Sande が Kerberos でセキュア化されていないコンピューターから sampleAppA/secure/hello.html
にアクセスしようとすると、フォールバックとして FORM
ログインページに転送されます。Sande のクレデンシャルはフォールバックの認証を使用して認証され、承認の処理が続行されます。