WebLogic Security について
WebLogic Security サービスの概要
以下の各節では、WebLogic Security サービスとその特徴を紹介します。
WebLogic Security サービスの概要
セキュリティのデプロイメント、管理、および保守は、Web を使用する顧客に対して新しいさまざまなサービスを提供している IT (情報技術) 企業にとって大きな課題です。IT 企業は、Web ベースのユーザに世界規模のネットワークを提供できるよう、システムとそのデータの機密性、整合性、および可用性の保持という基本的な問題に取り組まなければなりません。セキュリティに対する取り組みは、ネットワーク自体から個々のクライアント マシンに至るまで、システムのすべてのコンポーネントに関係します。インフラストラクチャ全体のセキュリティの実現は、確立されたセキュリティ ポリシーと周知徹底された手順に加え、不断の警戒が要求される大変な作業です。
WebLogic Server には、Web を介して使用できるアプリケーション用にユニークでセキュアな基盤を提供するセキュリティ アーキテクチャが含まれています。企業は、WebLogic Server の新しいセキュリティ機能を利用することで、Web 上で使用できるアプリケーションの作成というセキュリティ課題に対処できるように設計された、包括的で柔軟性の高いセキュリティ インフラストラクチャのメリットを得ることができます。WebLogic セキュリティは、WebLogic Server アプリケーションを保護するためにスタンドアロンで使用することも、最高レベルのセキュリティ管理ソリューションを表す企業全体のセキュリティ管理システムの一部として使用することもできます。
WebLogic Security サービスの特徴
WebLogic Server のセキュリティ アーキテクチャはオープンで柔軟性が高いため、すべてのレベルのユーザが利点を生かすことができ、アプリケーション サーバに対して高度なセキュリティ設計を導入できます。アプリケーション サーバのユニークなセキュリティ ソリューション、および明確なセキュリティ ポリシーと文書で確立された手順を有している企業であれば、サーバとそのデータの機密性、整合性、および可用性を確保できます。
WebLogic Security サービスの主な特長は、以下のとおりです。
包括的な標準ベースの設計。
メインフレームから Web ブラウザまでを網羅する、WebLogic Server をホストとしたアプリケーション向けのエンドツーエンド セキュリティ。
レガシー セキュリティ方式を WebLogic Server セキュリティに統合することによって、企業の既存投資を活用できる。
融通性の高い統一されたシステムに組み込まれ、企業全体にわたるセキュリティ管理を容易化するセキュリティ ツール。
企業のビジネス ルールをセキュリティ ポリシーにマッピングするため、ビジネス要件に対するアプリケーション セキュリティのカスタマイズが容易である。
J2EE リソースおよびアプリケーション定義のリソースに、同じモデルに従ってセキュリティ ポリシーを適用できる。
セキュリティ ポリシーの更新が容易。このリリースでは、セキュリティ ポリシーだけでなく、WebLogic リソースへのアクセスを制御する式の作成が、より容易に行えるようになっています。
カスタマイズされたセキュリティ ソリューションへの適合が容易である。
モジュール化されたアーキテクチャなので、特定の企業の要件を満たすようにセキュリティ インフラストラクチャを時間を追って変更できる。
遷移方式またはアップグレード パスの一部として、複数のセキュリティ プロバイダのコンフィグレーションをサポート。
セキュリティの詳細とアプリケーション インフラストラクチャを分離することにより、要件の変化に合わせたセキュリティのデプロイ、管理、維持、および修正を容易化。
そのまま使用できる実践的セキュリティ方式を提供する、デフォルトの WebLogic セキュリティ プロバイダ。このリリースでは、その他の認証ストア (データベースなど) や、Windows NT アカウント情報がサポートされています。
カスタム セキュリティ プロバイダを使用したセキュリティ スキームのカスタマイズ。
WebLogic Server Administration Console を使用して、セキュリティ ルール、セキュリティ ポリシー、およびセキュリティ プロバイダを統一して管理できる。
JAAS (Java Authentication and Authorization Service)、JSSE (Java Secure Socket Extension)、JCE (Java Crytography Extension)、JACC (Java Authorization Contract for Containers) などの標準の J2EE セキュリティ技術をサポートしている。
SAML のサポートを含む、Web サービス セキュリティの基盤。
Web サイト、Web アプリケーション、デスクトップ クライアントでのシングル サインオン (SSO) に WebLogic Server を参加させることが可能。
証明書の検索、検証、失効だけでなく証明書レジストリも含むパブリッック キー管理のためのフレームワーク。
パフォーマンスが向上したセキュア ソケット レイヤ (SSL) プロトコルおよび LDAP 認証プロバイダ。
使いやすさとカスタマイズしやすさの両立
WebLogic Security サービスのコンポーネントおよびサービスでは、エンド ユーザと管理者による使いやすさと管理しやすさ、およびアプリケーション開発者とセキュリティ開発者によるカスタマイズしやすさの両立が求められます。以下の節で、いくつか例を示します。
使いやすさ : セキュアな WebLogic Server 環境では、エンド ユーザに対して、ユーザ認証用のシングル サインオン (ユーザ ID の確認) のみを要求します。ユーザは、アプリケーションのリソースを含む WebLogic Server ドメイン内では再認証の必要はありません。シングル サインオンを利用すれば、ユーザはセッションごとに 1 回だけドメインにログオンすればよくなり、各リソースやアプリケーションにアクセスしようとするたびに個別にログオンを要求されることはなくなります。
開発者や管理者に対しては、新しくドメイン コンフィグレーション ウィザードが用意されています。ドメイン コンフィグレーション ウィザードは、管理サーバ、管理対象サーバ、および必要に応じてクラスタを含む新しいドメインの作成と、個々のサーバを追加することによる既存のドメインの拡張を支援します。ドメイン コンフィグレーション ウィザードは、config.xml
ファイルと新しいドメインに追加するよう選択したサーバの起動スクリプトも自動的に生成します。
管理しやすさ : WebLogic Server 環境でアプリケーションをコンフィグレーションおよびデプロイする管理者は、製品に付属している WebLogic セキュリティ プロバイダを使用できます。これらのデフォルトのプロバイダは、そのままの状態で、必要なすべてのセキュリティ機能をサポートしています。管理者は、WebLogic Server に用意されているセキュリティ ストア (特殊用途の組み込み LDAP ディレクトリ サーバ) にセキュリティ データを保存したり、外部 LDAP サーバ、データベース、またはユーザ ソースを使用したりできます。WebLogic Server のセキュリティのコンフィグレーションと管理を簡素化するために、堅牢なデフォルトのセキュリティ コンフィグレーションが用意されています。
カスタマイズしやすさ : アプリケーション開発者に対しては、WebLogic セキュリティ API と、JAAS、JSS、JCE、JACC などの J2EE セキュリティ標準がサポートされています。これらの API と標準を使用して、WebLogic Server に接続するアプリケーションに対して、きめ細かい、カスタマイズされたセキュリティ環境を作成できます。
セキュリティ開発者は、セキュリティ サービス プロバイダ インタフェース (SSPI) を使用して、WebLogic Server 環境向けのカスタム セキュリティ プロバイダを開発できます。
このリリースでの新機能と変更点
このリリースでは、WebLogic Security サービスに以下の機能が追加されています。
セキュリティ標準のサポートの追加
このリリースの WebLogic Server には、JACC (Java Authorization Contract for Containers) 標準のサポートが追加されました。JACC 標準は、WebLogic Server が提供する EJB およびサーブレット コンテナのデプロイメントおよび認可の代わりに使用できます。
JACC を WebLogic Server ドメインで使用するようにコンフィグレーションすると、EJB およびサーブレット認可の決定は、JACC フレームワーク内のクラスによって行われます。WebLogic Server 内における他の認可決定はすべて、引き続き WebLogic Security フレームワークによって行われます。
シングル サインオン機能
シングル サインオン (SSO) は、ユーザが一度アプリケーション コンポーネントにサインオンすれば、他のさまざまなアプリケーション コンポーネントに (それらが独自の認証方式を使用している場合でも) アクセスできる機能です。このリリースの WebLogic Server では、Web ブラウザ、HTTP クライアント、およびデスクトップ クライアントでの SSO がサポートされています。
Web ブラウザおよび HTTP クライアントでの SSO は、SAML (Security Assertion Markup Language) を使用して実現できます。WebLogic Server は、SAML サイト間転送サービス (ITS)、アサーション コンシューマ サービス (ACS)、およびアサーション検索サービス (ARS) を提供します。それにより、WebLogic Server は SAML の POST プロファイルおよびアーティファクト プロファイルをサポートできるようになります。WebLogic Server における SAML 機能で、WebLogic ドメイン間ならびに WebLogic Server と他のベンダの SAML 対応サーバ間、および単一の WebLogic ドメインにおけるアプリケーション間の SSO が可能となります。WebLogic Server は、SAML 資格マッピングおよび SAML ID アサーション プロバイダを使用して、SSO プロファイルで使用されるアサーションを生成および消費します。このリリースの WebLogic Server では、SAML 1.1 がサポートされています。
WebLogic Web サービスでは、SAML トークン プロファイルが、Web サービス クライアントと Web サービス サーバの両方として、サポートされています。
デスクトップ クライアントでの SSO には、WebLogic Server で HTTP および Kerberos ベースの認証を使用します。元々 Windows システム間で行われている認証サービスのネゴシエート動作を実装することで SSO を実現します。SPNEGO (Simple and Protected Negotiate) で必須のヘッダ操作を処理するサーブレット認証フィルタを使用して SSO を実現し、ネゴシエート ID アサーション プロバイダが SPNEGO トークンに基づいて ID アサーションを処理します。
証明書の検索と検証のサポート
WebLogic Security サービスは、着信双方向 SSL、発信 SSL、アプリケーション コード、および WebLogic Web サービスについて、X509 証明書チェーンを検索および検証するフレームワークを提供します。このフレームワークは、JDK CertPath 機能を拡張および完了します。この機能は、WebLogic Administration Console でコンフィグレーションできる WebLogic 証明書パスプロバイダおよび証明書レジストリによって公開されます。
SSL の新機能
以下の SSL 機能が追加されています。
ネットワーク チャネルの SSL 属性。ID 証明書、プライベート キー情報、ならびに個々のチャネルのための一方向および双方向の SSL オプションを指定できます。以前のリリースでは、ネットワーク チャネルはサーバの SSL ポート用に定義された SSL 属性を使用していました。
サーバのための動的 SSL 属性。WebLogic Server Administration Console を介して特定サーバの SSL 属性に加えられた変更を、サーバの再起動なしで有効化できるようになりました。また、SSL サーバ チャネルを WebLogic Server Administration Console を使用して再起動できるようになりました。この機能は、コンソールから変更を加えなかった場合に使用することを想定しています。たとえば、サーバが使用するキーストアを指定する場合が考えられます。
新しいセキュリティ プロバイダ
以下の節では、このリリースで使用可能な新しいセキュリティ プロバイダについて説明します。
認証プロバイダ
認証を行うために、データベースに格納されているユーザ、パスワード、グループ、およびグループ メンバシップ情報にアクセスする一連のデータベース管理システム (DBMS) プロバイダ。必要に応じて、WebLogic Server を使用してユーザ、パスワード、グループ、およびグループ メンバシップ情報を管理できます。DBMS 認証プロバイダを使用すると、RDBMS セキュリティ レルムからアップグレードできます。
以下の DBMS 認証プロバイダを使用できます。
SQL 認証プロバイダ - ユーザ、パスワード、グループ、およびグループ メンバシップ情報の表示や編集をサポートする管理可能な認証プロバイダ。
読み込み専用 SQL 認証プロバイダ - WebLogic Server Administration Console を使用したデータベース内のユーザの認証およびデータベースのコンテンツの表示をサポートする認証プロバイダ。この認証プロバイダは特定の SQL 文のセットを必要とするため、すべてのニーズには対応できない可能性があります。
カスタム DBMS 認証プロバイダ - 認証をサポートするだけの実行時認証プロバイダ。このプロバイダでは、データベースに問い合わせて認証情報を取得するためのコードをユーザが記述する必要があります。DBMS 認証プロバイダを特殊なデータベース ニーズに適合させるための柔軟な認証プロバイダです。
認証を行うために Windows NT ユーザおよびグループの使用を可能にする Windows NT 認証プロバイダ。Windows NT 認証プロバイダは、Window NT セキュリティ レルムのアップグレード パスです。WebLogic Server Administration Console では、Windows NT のユーザおよびグループを表示することはできますが、管理することはできません。
ID アサーション プロバイダ
LDAP X509 ID アサーション プロバイダは、X509 証明書を受け取り、その証明書に関連付けられたユーザの LDAP オブジェクトをルックアップして、LDAP オブジェクトの証明書が提示された証明書と一致することを確認し、LDAP オブジェクトから認証用にユーザの名前を取得します。
ネゴシエート ID アサーション プロバイダは、SPNEGO トークンをデコードして Kerberos トークンを入手し、この Kerberos トークンを検証して WebLogic ユーザにマップします。ネゴシエート ID アサーション プロバイダは、Kerberos を介した GSS のセキュリティ コンテキストの受け入れに Java GSS (Generic Security Service) API (Application Programming Interface) を利用します。ネゴシエート ID アサーション プロバイダは、Windows NT 統合ログイン用です。
SAML ID アサーション プロバイダは、SAML 1.1 アサーションを検証し、発行者が信頼されていることを確認します。信頼されていれば、アサーションに含まれる AuthenticationStatement に基づき、ID がアサートされます。
資格マッピング プロバイダ
WebLogic Server の PKI (公開鍵インフラストラクチャ) 資格マッピング プロバイダは、WebLogic Server のサブジェクト (開始者) と対象リソース (および必要であれば資格アクション) を、対象リソースを使用する際にアプリケーションで使用するパブリック キーとプライベート キーのペアまたは公開証明書にマップします。このプロバイダを使用して、パブリック キーとプライベート キーのペアまたは公開証明書にエリアスをマップすることもできます。PKI 資格マッピング プロバイダは、サブジェクトとリソース名 (またはエリアス) を使用して対応する資格をキーストアから検索します。
SAML 資格マッピング プロバイダは、対象サイトまたはリソースに基づく認証されたサブジェクトに対する SAML 1.1 アサーションを生成します。要求された対象が、コンフィグレーションされておらず、デフォルトが設定されていない場合、アサーションは生成されません。ユーザ情報およびグループ メンバシップは、(そのようにコンフィグレーションされた場合) AttributeStatement 内に置かれます。
証明書の検索と検証のプロバイダ
WebLogic 証明書パス プロバイダは、証明書の検索および検証フレームワークをサポートしています。このプロバイダは、証明書のパスを完了させ、特定のサーバ インスタンスのためにコンフィグレーションされた、信頼性のある CA を使用して、証明書を検証します。
また、WebLogic 証明書パス プロバイダは、チェーン内の署名をチェックして、チェーンが期限切れでないことを確認し、チェーン内のいずれかの証明書が、サーバ用にコンフィグレーションされた信頼性のある CA によって発行されたものであることを確認します。いずれかのチェックが失敗した場合、そのチェーンは有効ではありません。
最後に、プロバイダは、各証明書の基本的な制約 (証明書が他の証明書を発行できるかどうか) が正しいかどうかをチェックします。
WebLogic 証明書パス プロバイダは、セキュリティ レルム内の証明書パス ビルダおよび証明書パス検証プロバイダとして使用したり、証明書パス ビルダとしてのみ使用したりできます。
証明書レジストリも、証明書の検索および検証フレームワークをサポートしています。レジストリによって、システム管理者はサーバへのアクセスが許可されている信頼性のある CA 証明書のリストを明示的にコンフィグレーションします。証明書レジストリは、失効チェックを実行するための、費用のかからないメカニズムを提供します。管理者は、証明書レジストリから削除することによって、証明書を無効にします。このレジストリは、組み込み LDAP サーバに格納されます。
証明書レジストリは、証明書パス ビルダと証明書パス検証プロバイダの両方です。
証明書レジストリをセキュリティ レルム内で証明書パス ビルダとしてコンフィグレーションすると、ビルダとしても検証プロバイダとしても使用できます。この場合、証明書レジストリが証明書チェーンを完了させ、レジストリに格納された信頼性のある CA 証明書に基づいてチェーン内の証明書を検証します。
証明書レジストリをセキュリティ レルム内で証明書パス検証プロバイダとしてコンフィグレーションすると、クライアントの証明書は常にレジストリ内に格納されます。
WebLogic セキュリティ プロバイダの機能拡張
以下の拡張が、WebLogic のセキュリティ プロバイダに対して行われています。
WebLogic 監査プロバイダは、さまざまな種類の ContextElement のデータを監査するようにコンフィグレーションされています。一連のサポートされているコンテキスト要素 (HTTP サーブレット要求、EJB パラメータなど) が定義されています。WebLogic 監査プロバイダは、サポートされていて有効になっている ContextElement を一覧で表示します。監査プロバイダをコンフィグレーションしておけば、生成されたデータが監査ログに書き込まれます。
WebLogic 監査プロバイダはまた、プロバイダがコンテキスト要素の監査をサポートしているかどうかを示す、新しい mixin 管理インタフェース weblogic.management.security.audit.ContextHandler
もサポートします。カスタム監査プロバイダにも、このインタフェースを実装できます。
WebLogic 資格マッピング プロバイダは、エリアスと資格のタイプに基づいて資格を格納、取得、および管理します。
WebLogic 認証プロバイダは、Web サービス セキュリティのユーザ名とパスワード ダイジェストをサポートするようになりました。パスワード ダイジェストは、暗号化された形式で格納されます。この拡張機能により、WebLogic Web サービスで UsernameToken 要素を使用してユーザ名とパスワードを指定できるようになりました。なお、この要素は、HTTP ユーザ名およびパスワードのダイジェストはサポートしていません。
WebLogic ID アサーション プロバイダでは、ダイジェスト トークン タイプがサポートされています。
WebLogic 認可プロバイダは、HTTP サーブレット要求、HTTP セッション属性、および ContextHandler に渡される任意の要素へアクセスするための、新しいデフォルトのセキュリティ述部をサポートしています。加えて、新しい日付および時刻の述部を使用できます。
WebLogic 認証プロバイダおよび LDAP 認証プロバイダのパフォーマンスを最適化する属性が追加されました。次のような方法でパフォーマンスを向上できます。
tokenGroups 属性を使用して、Active Directory 認証プロバイダでグループ メンバシップのルックアップを行うようにコンフィグレーションする。tokenGroups 属性は、完全にフラット化されたユーザのグループ メンバシップを SID 値の配列として保持しています。この SID 値は Active Directory において特別な索引付けがされており、これによりルックアップの応答が高速になります。
WebLogic 認証プロバイダおよび LDAP 認証プロバイダで使用されるグループ メンバシップをキャッシュするコンフィグレーションを最適化する。
内部 PrincipalValidator キャッシュをエクスポーズして、そのしきい値を増加させる。
Security Service Programming Interfaces (SSPI) の機能拡張
以下の拡張が、SSPI に対して行われています。
コンテキスト ハンドラの追加サポート
コンテキスト ハンドラは、リソース コンテナからの付加的なコンテキストおよびコンテナ固有の情報を含んでおり、その情報をアクセス決定またはロール マッピング決定を行うセキュリティ プロバイダに提供します。コンテキスト ハンドラは、以下のメソッドについて使用できるようになりました。
Adjudicator.adjudicate()
LoginModule.login()
IdentityAsserter.assertIdentity()
AuditAtnEvent
CredentialMapper.getCredentials()
サーブレット認証フィルタ
サーブレット認証フィルタは、ID アサーションおよび認証機能のための前処理および後処理を実行する新しいタイプのプロバイダです。サーブレット認証フィルタを使用すると、再利用可能なユニットで反復タスクをカプセル化し、サーブレットまたは JSP ページからの応答を変換できます。