セキュリティーの簡単な概要
Libertyでのセキュリティーの基本的なワークフローを理解するために、いくつかの一般的なセキュリティー用語と例を示します。
主要なセキュリティー用語
- 認証
- 認証により、ユーザーの ID が確認されます。 最も一般的な認証の形式は、Web アプリケーションの基本認証やフォーム・ログインを使用した場合などの、ユーザー名とパスワードです。 ユーザーが認証されると、要求元は、実行時に
Subjectオブジェクトとして表されます。
- 許可
- システム内でユーザーが特定のロールにアクセスできるかどうかは、許可によって決まります。 Java™ EE モデルは、サブジェクト、ロール、およびロール・マッピングを使用して、アクセスが許可されるかどうかを決定します。
- 役割
- ロールは、Java EE アプリケーション内で定義されます。 システムによって、いくつかのロール (管理者ロールなど) が事前定義されています。 その他のロールは、アプリケーション開発者が定義します。 Java EE では、サブジェクトがアプリケーション内で実行するロールに基づいて、サブジェクトによるロールへのアクセスが許可または拒否されます。
- 件名
- サブジェクトは、一般用語であり、Java オブジェクトでもあります (
javax.security.auth.Subject)。 一般的に、サブジェクトという用語は、システムのユーザーやシステム・プロセス自体など、システム内のアクティブ・エンティティーを表します。
セキュリティー・ワークフローの例
次の例では、
ユーザーがリソースへのアクセスを要求した際にセキュリティーがどのように適用されるかを示しています。 例として、ユーザー Bob がサーブレット myWebApp にアクセスしたいとします。 Liberty のセキュリティー入門のコード・サンプルを参照してください。
サーブレット
myWebApp にアクセスするには、以下の条件が当てはまる必要があります。- サーブレットが保護されているため、
Bobはシステムにログイン可能でなければなりません。 - デプロイメント記述子の
auth-constraintエレメントを使用してサーブレットが制限されているため、Bobはtestingロールでなければなりません。
Bob がシステムにログインできない場合、または Bob が testing ロールでない場合は、サーブレット myWebApp へのアクセスが拒否されます。別のユーザー Alice は、システムにログインできます。これは、Alice が有効なユーザーであるためです。 しかし、Alice は testing ロールではありません。 Alice がログインすると、HTTP 403 エラー (アクセス拒否/禁止) が表示されます。