セキュリティーの簡単な概要

Libertyでのセキュリティーの基本的なワークフローを理解するために、いくつかの一般的なセキュリティー用語と例を示します。

主要なセキュリティー用語

認証
認証により、ユーザーの ID が確認されます。 最も一般的な認証の形式は、Web アプリケーションの基本認証やフォーム・ログインを使用した場合などの、ユーザー名とパスワードです。 ユーザーが認証されると、要求元は、実行時に Subject オブジェクトとして表されます。
許可
システム内でユーザーが特定のロールにアクセスできるかどうかは、許可によって決まります。 Java™ EE モデルは、サブジェクト、ロール、およびロール・マッピングを使用して、アクセスが許可されるかどうかを決定します。
役割
ロールは、Java EE アプリケーション内で定義されます。 システムによって、いくつかのロール (管理者ロールなど) が事前定義されています。 その他のロールは、アプリケーション開発者が定義します。 Java EE では、サブジェクトがアプリケーション内で実行するロールに基づいて、サブジェクトによるロールへのアクセスが許可または拒否されます。
件名
サブジェクトは、一般用語であり、Java オブジェクトでもあります ( javax.security.auth.Subject)。 一般的に、サブジェクトという用語は、システムのユーザーやシステム・プロセス自体など、システム内のアクティブ・エンティティーを表します。

セキュリティー・ワークフローの例

次の例では、 ユーザーがリソースへのアクセスを要求した際にセキュリティーがどのように適用されるかを示しています。 例として、ユーザー Bob がサーブレット myWebApp にアクセスしたいとします。 Liberty のセキュリティー入門のコード・サンプルを参照してください。

サーブレット myWebApp にアクセスするには、以下の条件が当てはまる必要があります。
  1. サーブレットが保護されているため、Bob はシステムにログイン可能でなければなりません。
  2. デプロイメント記述子の auth-constraint エレメントを使用してサーブレットが制限されているため、 Bobtesting ロールでなければなりません。
Bob がシステムにログインできない場合、または Bobtesting ロールでない場合は、サーブレット myWebApp へのアクセスが拒否されます。

別のユーザー Alice は、システムにログインできます。これは、Alice が有効なユーザーであるためです。 しかし、Alicetesting ロールではありません。 Alice がログインすると、HTTP 403 エラー (アクセス拒否/禁止) が表示されます。