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 サーバーへの接続を確立します。sampleAppAsampleAppB の両方がデプロイされ、認証のために exampleSpnegoDomainexampleFormDomain に接続します。

Sande は Kerberos でセキュア化されたコンピューターにログインしています。Sande はブラウザーを開き、sampleAppA/secure/hello.html へのアクセスを試みます。このページはセキュアであるため、認証が必要になります。EAP1 は、Sande のコンピューターに設定されている Kerberos Key Distribution Center (Kerberos サーバー) へのキーを要求するリクエストを送信するよう、ブラウザーに指示します。ブラウザーがキーを取得すると、sampleAppA に送信されます。sampleAppAexampleSpnegoDomain を使用してチケットを 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 のクレデンシャルはフォールバックの認証を使用して認証され、承認の処理が続行されます。