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