Sun ONE ロゴ      前へ      目次      索引      次へ     

Sun ONE Application Server 7, Enterprise Edition セキュリティ管理者ガイド

第 1 章
Sun ONE Application Server のセキュリティの概要

この章では、セキュリティの基本的な概念と、SunTM ONE Application Server 7 環境に適用されるセキュリティ機能の概要について説明します。


このマニュアルで説明するすべての内容が J2EE アプリケーションにあてはまるわけではありません。一部の内容は HTTP サーバーだけに適用されます。安全な J2EE アプリケーションの開発については、J2EE の仕様書、および『Sun ONE Application Server 開発者ガイド』を参照してください。


この章では、次の項目について説明します。


アプリケーションサーバーのセキュリティ

サーバーのセキュリティに責任を持つ管理者は、Sun ONE Application Serverおよびそのデータが、不正なアクセスや損害 (意図的であるかどうかに関わらず)、データの流出、および誤表示などの危険に晒されないよう、絶えず注意している必要があります。このためには、デジタル証明書、暗号化、承認、監査などのセキュリティツールを使用し、セキュリティを考慮することが必要です。

Sun ONE Application Server 環境でセキュリティ管理に必要な事項には次のものがあります。

証明書の管理

証明書は、個人や企業などのエンティティの名前を指定するデジタルデータで、そのエンティティが所属する証明書に含まれる公開鍵を証明します。クライアントとサーバーの両方が証明書を持つことができます。

Sun ONE Application Server 環境で証明書が機能するしくみについては、「証明書の管理」を参照してください。

SSL/TLS 暗号化

暗号化は、意図した受信者以外が認識できないように情報を変換するプロセスで、復号化は、暗号化された情報を認識可能な状態に戻すプロセスです。

A暗号化方式 は、暗号化と復号化に使用される暗号化アルゴリズム (関数) です。Sun ONE Application Server がサポートしている SSL (Secure Sockets Layer) プロトコルと TLS (Transport Layer Security) プロトコルには、多数の暗号化方式群が用意されています。安全度は、暗号化方式によって異なります。

サポートされている暗号化プロトコルは、SSL 3.0 と TLS 1.0 です。暗号化については、「SSL/TLS 暗号化の管理」を参照してください。

認証

認証は、呼び出し側とサービスプロバイダが特定のユーザーまたはシステムとして対話していることを相互に証明するメカニズムです。証明が双方向の場合は、これを特別に相互認証と呼びます。たとえば、ユーザーが Web ブラウザ上でユーザー名とパスワードを入力し、アクティブなデータベースドメインに保存されているパーマネントプロファイルとその証明書が一致したときに、ユーザーが認証されます。それ以降のセッションでは、ユーザーはこの認証済みのセキュリティ ID に関連付けられます。

サーバー認証とは、クライアントがサーバーにより認証されることです。つまり、特定のネットワークアドレスにあるサーバーに対して責任を持つとされている組織を識別して証明します。

仮想サーバー認証では、システム上の仮想サーバーごとに異なる証明書データベースを持たせることができます。各仮想サーバーデータベースには、複数の証明書を格納できます。仮想サーバー上でも、各インスタンスに複数の異なる証明書を持たせることができます。

監査

監査は、エラーやセキュリティ違反などの重大なイベントが発生した場合に、それを後から調べることができるようにイベントを記録するメソッドです。すべての認証イベントは、Sun ONE Application Server のログに記録されます。完全なアクセスログには、Sun ONE Application Server で行われるすべてのアクセスイベントが連続して記録されます。

ログについては、『Sun ONE Application Server 管理者ガイド』を参照してください。


HTTP サーバーのセキュリティ機能


HTTP サーバーの機能として紹介される機能は、HTTP サーバーとしての Sun ONE Application Server にのみ適用され、J2EE アプリケーションとしては適用されません。ただし、J2EE アプリケーションにも同様の機能が用意されていることがあります。


HTTP サーバーの主なセキュリティ機能は、次のとおりです。

HTTP サーバーのユーザー - グループ認証

ユーザー - グループ認証では、アクセスを許可する前にユーザーがユーザー自身を認証する必要があります。この認証は、ユーザーが入力する名前とパスワード、およびクライアント証明書またはダイジェスト認証プラグインを使って行われます。Sun ONE Application Server がサポートしているユーザー - グループ認証には、基本、デフォルト、SSL、ダイジェスト、カスタムがあります。

HTTP サーバーのユーザー - グループ認証については、「HTTP サーバーのユーザー - グループ認証」および「ホスト - IP 認証の実装」を参照してください。

J2EE アプリケーションのユーザー - グループ認証については、『Sun ONE Application Server 開発者ガイド』を参照してください。

HTTP サーバーのホスト - IP 認証

ホスト - IP 認証は、管理サーバーまたは Web サイト上のファイルやディレクトリへのアクセスを、特定のコンピュータを使うクライアントだけに制限する方法で、ホスト - IP アクセス制御とも呼ばれます。

HTTP サーバーのホスト - IP 認証については、「ホスト - IP 認証の実装」を参照してください。

HTTP サーバーの SSL クライアント認証

クライアント認証は、クライアントの証明書を認証するプロセスで、証明書の署名を暗号を使って検証し、証明書チェーンが信頼できる CA のリストに載っている CA からのものであることを確認します。クライアントに複数の証明書を持たせることもできます。クライアントは、複数の証明書を所有できます。これは、1 人が数種類の ID を所有しているのと同じことです。

HTTP サーバーのクライアント認証については、「クライアント認証の設定」を参照してください。


J2EE アプリケーションでも SSL クライアント認証を利用できます。詳細は『Sun ONE Application Server 開発者ガイド』を参照してください。


HTTP サーバーのアクセス制御

ACE (アクセス制御エントリ) という階層構造の規則を作成することで、個人、グループ、または特定のサーバーやアプリケーションなどのエンティティからのアクセスを許可したり、拒否したりすることができます。それぞれの ACE は、サーバーがその階層の次の ACE を調べるかどうかを指定します。作成した ACE のセットを ACL (アクセス制御リスト) と呼びます。

次のように、HTTP サーバーへのアクセス制限には多数のオプションがあります。

HTTP サーバーのアクセス制御については、「HTTP サーバーアクセス制御の管理」を参照してください。

Netscape API (NSAPI)

NSAPI は、HTTP に特化した多数のユーティリティ機能を提供する C 言語 API です。NSAPI では、要求の処理やその他のサーバーアクティビティで使われる SAF (Server Application Function) 機能をプラグインとして提供することができます。

詳細は、『Sun ONE Application Server Developer's Guide to NASPI』を参照してください。


J2EE アプリケーションのセキュリティ機能

J2EE アプリケーションの認証と承認の要件は、J2EE 仕様に定義されており、ここでも簡単に紹介します。


J2EE アプリケーションのセキュリティを開発するときは、J2EE の仕様書と『Sun ONE Application Server 開発者ガイド』に記載されているセキュリティメカニズムを使用してください。


Sun ONE Application Server 環境でサポートしている J2EE セキュリティ機能は、次のとおりです。

宣言によるセキュリティ

宣言によるセキュリティでは、認証はコンテナによって処理されます。現在のセキュリティコンテキストに関連づけられた主体が、要求される処理へのアクセスを許可されているかどうかを決定するときに、配備記述子が参照されます。

機密性または整合性のトランスポート保証要件を Web アプリケーションが指定することもあります。これは、該当リソースに必要な SSL に変換されます。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

プログラムによるセキュリティ

プログラムによるセキュリティでは、認証はアプリケーションコードによって直接処理されます。このコードは、開発者が記述します。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

ユーザー認証

Web クライアント、アプリケーションコンテナを実行する J2EE アプリケーションクライアント、Sun ONE Application Server コンテナを使用しない外部の RMI/IIOP クライアントという 3 つの呼び出し側認証パスがあります。フォーム認証がサポートされています。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

レルムの管理

管理インタフェースでは、サーバーに特定のレルムを追加、編集、削除することができます。Sun ONE Application Server のレルムには、fileldapcertificate、および solaris があります。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

シングルサインオン

シングルサインオンの場合、1 つの仮想サーバーインスタンスで複数の J2EE アプリケーションがユーザーの認証を共有できます。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

リソース認証

Sun ONE Application Server は、外部リソースの認証をサポートしています。この認証では、別の認証も必要になることがあります。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

プラグイン対応認証

プラグイン対応認証では、J2EE アプリケーションは J2SE プラットフォームから JAAS (Java Authentication and Authorization Service) を利用できます。開発者は、独自の認証メカニズムをプラグインできます。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。


安全を考慮した運用

Sun ONE Application Server のリソースを保護する上で、注意すべき点は数多くあります。認証や暗号化などのメカニズムが関係するものもありますが、単にセキュリティを意識した運用と常識に基づくものがその多くを占めます。

次の作業にはセキュリティ上の考慮が必要です。

それぞれの項目については、「一般的なセキュリティ対策」で説明します。


サーバーのセキュリティに関連するファイル

多くの Sun ONE Application Server 設定ファイルが、サーバーのセキュリティパラメータの定義に使用されます。セキュリティ関連タスクに使用される主なファイルは次のとおりです。各ファイルについて簡単に説明します。

Sun ONE Application Server 設定ファイルの詳細は、『Sun ONE Application Server Administrator's Configuration File Reference』を参照してください。

init.conf ファイル

init.conf ファイルには、サーバーのインストール先パス、パフォーマンス調整オプション、プラグイン共有オブジェクトの場所など、低レベルのサーバー設定情報が記録されています。このファイルは、起動ファイルです。Sun ONE Application Server を起動すると、このファイルの内容が参照され、サーバーインスタンスの動作と設定に影響するグローバル変数が設定されます。セキュリティ関連タスクには、次のものがあります。

dbswitch.conf ファイル


この項は、HTTP サーバーのコンテンツだけに適用されます。


dbswitch.conf ファイルは、Sun ONE Application Server が使用する LDAP ディレクトリを指定します。これは、サーバーの起動時にだけ読み込まれます。

ユーザー認証データベースを dbswitch.conf ファイルにグローバルに定義できます。詳細は、「仮想サーバーからデータベースへのアクセス」を参照してください。

server.xml ファイル

server.xml ファイルは、Sun ONE Application Server の設定ファイルのうち、中心的な役割を担うものです。セキュリティ関連タスクには、次のものがあります。

server.xml ファイルの詳細は、『Sun ONE Application Server Administrator's Configuration File Reference』を参照してください。

obj.conf ファイル


この項は、HTTP サーバーのコンテンツだけに適用されます。


obj.conf ファイルには、クライアントからの要求を Sun ONE Application Server が処理する方法を指示するための指令が含まれています。セキュリティ関連タスクには、次のものがあります。

password.conf ファイル

SSL が設定された場合、SSL/TTS が有効な Sun ONE Application Server を自動で再起動できるように、信頼データベースのパスワードを password.conf ファイルに保存できます。


システムを充分にセキュリティ保護して、このファイルとキーデータベースが危険にさらされないようにする必要があります。このような保護については、「物理アクセスの制限」で説明します。


password.conf ファイルの詳細は、「password.conf ファイルの使用」および『Sun ONE Application Server Administrator's Configuration File Reference』を参照してください。

certmap.conf ファイル


この項は、HTTP サーバーのコンテンツだけに適用されます。


certmap.conf ファイルは、名前で指定された証明書を、issureDN で指定された LDAP エントリにどのようにマッピングするかを指定します。certmap.conf ファイルには、次のような情報が記録されます。

詳細は、「certmap.conf ファイルの操作」を参照してください。

ACL ファイル

ACL (アクセス制御リスト) は、Sun ONE Application Server に格納されているリソースにアクセスできるユーザーの ID リストを記録したテキストファイルです。


このマニュアルで説明するアクセス制御の方式は、J2EE アプリケーションの開発では利用できません。これらの方式、特に ACL によって、アプリケーションの動作が不安定になったり、J2EE モデルとの整合性を保てなくなったりすることがあります。アプリケーションを開発するときは、J2EE の仕様書と『Sun ONE Application Server 開発者ガイド』に記載されているセキュリティメカニズムを使用してください。


デフォルトの設定では、Sun ONE Application Server はサーバーにアクセスするすべてのリストをまとめた 1 つの ACL ファイルを使用します。複数の ACL ファイルを作成し、obj.conf ファイルでそれを参照することもできます。

ACL ファイルの操作については、「HTTP サーバーアクセス制御の管理」を参照してください。詳細は、『Sun ONE Application Server Developer's Guide to NASPI』を参照してください。

htaccess ファイル


この項は、HTTP サーバーのコンテンツだけに適用されます。


htaccess ファイルは、設定オプションのサブセットを格納した動的な設定ファイルです。Sun ONE Application Server の標準のアクセス制御と htaccess ファイルを組み合わせて使用できます。標準のアクセス制御は、常に htaccess によるアクセス制御の前に適用されます。

htaccess ファイルの操作については、「htaccess ファイルの使用」を参照してください。

キーファイル

キーファイルには、file レルムのユーザーリストが含まれます (J2EE アプリケーションだけに適用)。すべてのサーバーインスタンスには、空のデフォルトキーファイルがあります。ユーザーの追加は、管理インタフェースまたはコマンド行インタフェースから行います。

デフォルトでは、file レルムは常にこのファイル (keyfile) を使うように設定されます。このファイルの名前と保存されている場所は、server.xml ファイルで file レルムのプロパティを編集することで変更できます。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。

server.policy ファイル

server.policy ファイルには、インスタンスで実行されるすべての Java コードに適用される J2SE ポリシーの設定が記録されます。

詳細は、『Sun ONE Application Server 開発者ガイド』を参照してください。



前へ      目次      索引      次へ     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.