Sun Java ロゴ     前へ      目次      次へ     

Sun ロゴ
Sun Java System Identity Manager 2005Q4M3 管理ガイド  

7

セキュリティー

この章では、Identity Manager セキュリティー機能と、セキュリティー上のリスクを軽減するための手順について詳しく説明します。


セキュリティー機能

Identity Manager では、次の機能によってセキュリティー上のリスクを軽減します。

また、システムアーキテクチャによってセキュリティー上のリスクを可能な限り軽減するようにしています。たとえば、一度ログアウトすると、ブラウザの「戻る」機能を使用しても、以前にアクセスしたページにアクセスすることはできません。


パスワード管理

Identity Manager は、複数のレベルでパスワード管理を実行します。


パススルー認証

パススルー認証を使用して、1 つ以上の異なるパスワードによるアクセス権をユーザーと管理者に与えます。Identity Managerは、次のものを実装することによって認証を管理します。

ログインアプリケーションについて

ログインアプリケーションはログインモジュールグループの集まりを定義し、さらにログインモジュールグループはユーザーがIdentity Manager にログインするときに使用するログインモジュールのセットと順序を定義します。各ログインアプリケーションは 1 つ以上のログインモジュールグループで構成されます。

ログインアプリケーションは、ログイン時にログインモジュールグループのセットをチェックします。設定されているログインモジュールグループが 1 つだけの場合は、そのログインモジュールグループが使用され、それに含まれるログインモジュールがグループ内で定義された順序で処理されます。ログインアプリケーションに複数のログインモジュールグループが定義されている場合には、Identity Manager が各ログインモジュールに適用されるログイン制約規則をチェックして、処理するグループを決定します。

ログイン制約規則

ログイン制約規則は、ログインアプリケーションに定義されているログインモジュールグループに対して適用されます。ログインアプリケーションのログインモジュールグループの各セットの中で、1 つのログインモジュールグループだけは適用されるログイン制約を持つことができません。

セットの中のどのログインモジュールグループを処理するかを決めるにあたって、Identity Manager は最初のログインモジュールグループの制約規則を評価します。評価が成功した場合は、そのログインモジュールグループが処理されます。評価に失敗すると、制約規則が成功するかまたは制約規則を持たないログインモジュールグループが評価された後に使用されるまで、各ログインモジュールグループが次々に評価されます。


注 ログインアプリケーションに複数のログインモジュールグループが含まれる場合には、ログイン制約規則を持たないログインモジュールグループをセットの最後の位置に置くようにしてください。

ログイン制約規則の例

次に示す場所に基づいたログイン制約規則の例では、規則がヘッダーから要求側の IP アドレスを取得し、そのアドレスが 192.168 ネットワーク上にあるかどうかをチェックします。IP アドレスに 192.168. が検出されると、規則は true の値を返し、そのログインモジュールグループが選択されます。

<Rule authType='LoginConstraintRule' name='Sample On Local Network'>
  <match>
    <ref>remoteAddr</ref>
    <s>192.168.</s>
  </match>
  <MemberObjectGroups>
    <ObjectRef type='ObjectGroup' name='All'/>
  </MemberObjectGroups>
</Rule>

ログインアプリケーションの編集

メニューバーで、「設定」を選択してから「ログイン」を選択して、「ログイン」ページにアクセスします。

ログインアプリケーションリストには次の内容が表示されます。

「ログイン」ページから次の操作を行えます。

ログインアプリケーションを編集するには、リストからログインアプリケーションを選択します。

Identity Manager セッション制限の設定

「ログイン設定の修正」ページから、Identity Manager ログインセッションごとのタイムアウト値 (制限) を設定できます。時間、分、および秒を選択して、「保存」をクリックします。設定した制限が、ログインアプリケーションリストに表示されます。

アプリケーションへのアクセスの無効化

「ログインアプリケーションの作成」ページと「ログインアプリケーションの修正」ページで、「無効化」オプションを選択してログインアプリケーションを無効化し、ユーザーがログインできないようにすることができます。ユーザーが無効化されたアプリケーションにログインしようとすると、インタフェースによって、アプリケーションが現在無効にされていることを示す代替ページにリダイレクトされます。カスタムカタログを編集することで、このページに表示されるメッセージを編集することができます。

このオプションの選択を解除するまで、ログインアプリケーションは無効にされたままになります。安全措置として、管理者ログインは無効化できません。

ログインモジュールグループの編集

ログインモジュールグループリストには次の内容が表示されます。

「ログインモジュールグループ」ページから、ログインモジュールグループを作成、編集、削除できます。リストからログインモジュールグループを 1 つ選択して、それを編集します。

ログインモジュールの編集

詳細を入力するか、ログインモジュールに関して次のように選択します (すべてのオプションがどのログインモジュールでも選択できるとは限らない)。

「保存」をクリックして、ログインモジュールを保存します。一度保存すると、このモジュールをログインモジュールグループ内のほかのすべてのモジュールと関連づけて配置できます。


警告 Identity Manager ログインが複数のシステムから認証を受けるよう設定する場合は、Identity Manager の認証のターゲットとなるすべてのシステムで、アカウントのユーザー ID とパスワードを同じにすることを推奨します。

ユーザー ID とパスワードの組み合わせが異なる場合、ユーザー ID およびパスワードが「Identity Manager ユーザーログイン」フォームに入力されたユーザー ID およびパスワードと一致しないシステムで、ログインが失敗します。これらのシステムの中には、ログイン試行回数が一定数を超えるとアカウントを強制的にロックするロックアウトポリシーを持つものもあります。このようなシステムでは、Identity Manager によるユーザーのログインが成功し続けた場合でも、ユーザーアカウントは最終的にロックされます。


共通リソースの認証の設定

物理的または論理的に同一の複数のリソースがある場合 (たとえば、同一の物理ホストに対して定義された 2 つのリソース、NT または AD ドメイン環境内の信頼できるドメインを表す複数のリソース)、システム設定オブジェクト内でそれらのリソースのセットを「共通リソース」として指定することができます。

リソースを共通リソースとして設定することで、あるユーザーを共通リソースの 1 つのリソースに対して認証しながら、共通リソースの別のリソースを使用してそのユーザーの関連付けられた Identity Manager ユーザーにマップすることができます。たとえば、あるユーザーのリソース AD-1 に対するリソースアカウントが、自分の Identity Manager ユーザーにリンクされているとします。ログインモジュールグループでは、ユーザーがリソース AD-2 を認証する必要があることが定義されているとします。AD-1 と AD-2 が、共通リソースとして定義されている場合 (この場合、同じ信頼できるドメイン内にある)、ユーザーが AD-2 に対して正常に認証されると、Identity Manager はリソース AD-1 で同じ accountId を持つユーザーを見つけることによって、関連付けられた Identity Manager ユーザーにマップすることができます。

このシステム設定オブジェクトの属性は次の形式で指定します。

<Attribute name=苗ommon resources��gt;
    <Attribute name='
Common Resource Group Name��gt;
        <List>
            <String>
Common Resource Name</String>
            <String>
Common Resource Name</String>
        </List
    </Attribute>
</Attribute>


X509 証明書認証の設定

次の情報と手順を使用して、Identity Manager の X509 証明書認証を設定します。

前提条件

Identity Manager で X509 証明書ベースの認証をサポートするには、クライアントとサーバーの 2 方向の SSL 認証が正しく設定されているかを確認します。クライアントの観点では、これは、X509 準拠のユーザー証明書がブラウザにインポートされ (またはスマートカードリーダーで利用可能で)、ユーザー証明書に署名するために使用された信頼できる証明書が、Web アプリケーションサーバーの信頼できる証明書のキーストアにインポートされている必要があることを意味します。

さらに、使用したクライアント証明書がクライアント認証のために選択されている必要があります。これを確認するには、次を実行します。

  1. Internet Explorer を使用して、「ツール」を選択し、「インターネットオプション」を選択します。
  2. 「コンテンツ」タブを選択します。
  3. 「証明書」エリアで、「証明書」をクリックします。
  4. クライアント証明書を選択し、「詳細」をクリックします。
  5. 「証明書の目的」エリアで、「クライアント認証」オプションが選択されていることを確認します。

Identity Manager での X509 証明書認証の設定

Identity Manager で X509 証明書認証を設定するには、次を実行します。

  1. 管理者インタフェースに設定者 (または同等の権限を持つユーザー) としてログインします。
  2. 「設定」を選択し、「ログイン」を選択して、「ログイン」ページを表示します。
  3. 「ログインモジュールグループの管理」をクリックし、「ログインモジュールグループ」ページを表示します。
  4. リストからログインモジュールグループを選択します。
  5. 「ログインモジュールの割り当て」リストから「Identity Manager X509 証明書ログインモジュール」を選択します。「ログインモジュールグループの修正」ページが表示されます。
  6. ログインの成功条件を設定します。使用可能な値は次のとおりです。
    • 「必須」 − 成功するにはそのログインモジュールが必要です。成功か失敗かに関係なく、認証はリスト内の次のログインモジュールに進みます。ログインモジュールが 1 つしかない場合、管理者は正常にログインします。
    • 「必要条件」 − 成功するにはそのログインモジュールが必要です。成功すると、認証はリスト内の次のログインモジュールに進みます。失敗した場合、認証は続行しません。
    • 「十分条件」 − 成功するためにそのログインモジュールが必要ではありません。成功すると、認証は次のログインモジュールに進まず、管理者は正常にログインします。失敗した場合、認証はリスト内の次のログインモジュールに進みます。
    • 「オプション」 − 成功するためにそのログインモジュールが必要ではありません。成功か失敗かに関係なく、認証はリスト内の次のログインモジュールに進みます。
  7. ログイン相関規則を選択します。組み込み規則またはカスタム相関規則を選択できます (カスタム相関規則の作成については、次の節を参照)。
  8. 「保存」をクリックして、「ログインモジュールグループの修正」ページに戻ります。
  9. オプションで、ログインモジュールの順序を変更し (複数のログインモジュールがログインモジュールグループに割り当てられている場合)、「保存」をクリックします。
  10. ログインモジュールグループがログインアプリケーションに割り当てられていない場合はここで割り当てます。「ログインモジュールグループ」ページで、「ログインアプリケーションに戻る」をクリックし、ログインアプリケーションを選択します。ログインモジュールグループをログインアプリケーションに割り当てたら、「保存」をクリックします。

  11. 注 waveset.properties ファイルで allowLoginWithNoPreexistingUser オプションの値が true に設定されている場合、「Identity Manager X509 証明書ログインモジュール」を設定するときに、新規ユーザー命名規則を選択するように要求されます。この規則は、関連付けられたログイン相関規則によってユーザーが検出されないときに作成される新しいユーザーの命名方法を決定するために使用されます。

    新規ユーザー命名規則では、ログイン相関規則と同じ入力引数を使用できます。この規則は、1 つの文字列を返し、これが、新しい Identity Manager ユーザーアカウントを作成するためのユーザー名として使用されます。

    サンプルの新規ユーザー命名規則が、NewUserNameRules.xml という名前で idm/sample/rules にあります。

ログイン設定規則の作成とインポート

ログイン相関規則は、Identity Manager X509 証明書ログインモジュールによって、証明書データを適切な Identity Manager ユーザーにマップする方法を決定するために使用されます。Identity Manager には、「X509 証明書 subjectDN を使用した相関」という名前の組み込み相関規則が 1 つ用意されています。

独自の相関規則を追加することもできます。各相関規則は、次のガイドラインに従っている必要があります。

次の引数がログイン設定規則に渡されます。

次の証明書引数の命名規則がログイン相関規則に渡されます。

cert.field name.subfield name

次の例のような引数名を規則で使用できます。

ログイン設定規則は、渡された引数を使用して、1 つ以上の AttributeConditions のリストを返します。Identity Manager X509 証明書ログインモジュールは、これらを使用して関連付けられた Identity Manager ユーザーを検出します。

サンプルのログイン相関規則が、LoginCorrelationRules.xml という名前で、idm/sample/rules にあります。

カスタム相関規則を作成したら、その規則を Identity Manager にインポートする必要があります。管理者インタフェースで、「設定」を選択し、「交換ファイルのインポート」を選択して、ファイルインポート機能を使用します。

SSL 接続のテスト

SSL 接続をテストするには、SSL を介して、設定済みのアプリケーションインタフェースの URL (例: https//idm007:7002/idm/user/login.jsp) にアクセスします。セキュアなサイトに入ったことを知らせるメッセージが表示され、Web サーバーに送信する個人用証明書を指定するように要求されます。

問題の診断

X509 証明書を使用した認証に関する問題は、ログインフォーム上でエラーメッセージとして報告されます。詳しい診断情報を得るには、Identity Manager サーバーで次のクラスとレベルのトレースを有効にします。

http 要求内のクライアント証明書の属性が javaxservlet.request.X509Certificate 以外である場合、この属性が http 要求内に見つからないことを知らせるメッセージが表示されます。これを解決するには、次を実行します。

  1. SessionFactory のトレースを有効にして、http 属性の完全なリストを表示し、X509Certificate の名前を特定します。
  2. Identity Manager デバッグ機能を使用して、LoginConfig オブジェクトを編集します。
  3. Identity Manager X509 証明書ログインモジュールの <LoginConfigEntry> 内の <AuthnProperty> の名前を正しい名前に変更します。
  4. 保存して、もう一度試します。

さらに、Identity Manager X509 証明書ログインモジュールをログインアプリケーションから削除して、もう一度追加することが必要な場合があります。


暗号化の使用と管理

暗号化は、メモリーおよびリポジトリ内のサーバーデータだけでなく、サーバーとゲートウェイの間で送信されるすべてのデータの機密性と完全性を保証するために使用されます。

続く節では、Identity Manager サーバーとゲートウェイで暗号化が使用および管理される方法を詳しく説明し、サーバーとゲートウェイの暗号化キーに関する質問を検討します。

暗号化によって保護されるデータ

次の表は、Identity Manager 製品で暗号化によって保護されるデータの種類と、各データの種類を保護するために使用される暗号を示したものです。

データの種類

RSA
MD5

NIST
トリプル DES
168 ビットキー
(DESede/ECB/NoPadding)

PKCS#5
パスワードベースの暗号化
56 ビットキー
(PBEwithMD5andDES)

サーバー暗号化キー

 

デフォルト

設定オプション1

ゲートウェイ暗号化キー

 

デフォルト

設定オプション1

ポリシー辞書単語

 

 

 

ユーザーパスワード

 

 

 

ユーザーパスワード履歴

 

 

 

ユーザーの回答

 

 

 

リソースパスワード

 

 

 

リソースパスワード履歴

 

 

 

サーバーゲートウェイ間のすべてのペイロード

 

 

 

1pbeEncrypt 属性または「サーバー暗号化の管理」タスクによりシステム設定オブジェクト経由で設定します。

サーバー暗号化キーに関する質問と答え

続く節では、サーバー暗号化キーのソース、場所、保守、使用についてよく尋ねられる質問に答えていますのでご覧ください。

サーバー暗号化キーとは何ですか ?

サーバー暗号化キーはトリプル DES 168 ビットの対称キーです。サーバーでサポートされるキーには 2 つのタイプがあります。

サーバー暗号化キーはどこで維持管理されますか ?

サーバー暗号化キーはリポジトリで維持管理されるオブジェクトです。どのリポジトリにも多数のデータ暗号化キーがある可能性があります。

暗号化されたデータの復号化や再暗号化にどのキーを使用するかを、サーバーはどのようにして認識するのですか ?

リポジトリに格納された各暗号化データの先頭には、そのデータを暗号化する際に使用したサーバー暗号化キーの ID が付加されます。暗号化データを含むオブジェクトがメモリーに読み込まれると、Identity Manager はその暗号化データ の ID プレフィックスに関連づけられたサーバー暗号化キーを使用して復号化し、データが変更されている場合には同じキーで再暗号化します。

サーバー暗号化キーはどのようにして更新しますか?

Identity Manager には「サーバー暗号化の管理」というタスクが用意されています。このタスクを使用することにより、承認されたセキュリティー管理者は次のようなキー管理タスクを実行することができます。

このタスクの使用法の詳細については、この章の「サーバー暗号化の管理」を参照してください。

現在のサーバーキーが変更された場合、既存の暗号化データはどうなりますか ?

何も問題はありません。既存の暗号化データは、引き続き、暗号化データの ID プレフィックスで参照されているキーを使用して復号化や再暗号化されます。新しいサーバー暗号化キーが生成され、そのキーが現在のキーに設定された場合、新たに暗号化されるデータには新しいサーバーキーが使用されます。


注 サーバー暗号化キーがいずれかのオブジェクトの暗号化データによって参照されている場合、そのサーバー暗号化キーをリポジトリから削除しないでおくことはとても重要です。削除すると、サーバーはその暗号化データを復号化できなくなります。暗号化データを含むオブジェクトを別のリポジトリからインポートする場合、そのオブジェクトを正常にインポートするために、関連づけられているサーバー暗号化キーを先にインポートする必要があります。

複数のキーがあることによる問題を回避するため、またデータの完全性のレベルを高い状態に保つために、「サーバー暗号化の管理」タスクを使用して、現在のサーバー暗号化キーで既存の暗号化データをすべて再暗号化してください。

サーバーキーはどのように保護されますか?

サーバーがパスワードベースの暗号化 (PBE) - PKCS#5 暗号化を使用するよう pbeEncrypt 属性または「サーバー暗号化の管理」タスクによってシステム設定オブジェクトで設定されていない場合には、デフォルトキーを使用してサーバーキーが暗号化されます。デフォルトキーはすべての Identity Manager インストールで同じです。

サーバーが PBE 暗号化を使用するよう設定されている場合は、サーバーを起動するたびに PBE キーが生成されます。PBE キーは、サーバー固有の秘密キーから生成されるパスワードを PBEwithMD5andDES 暗号に渡すことによって生成されます。PBE キーはメモリー内にのみ保持され、それが持続させられることは決してありません。また、共通リポジトリを共有するすべてのサーバーの PBE キーは同じです。

サーバーキーの PBE 暗号化を有効化するには、暗号 PBEwithMD5andDES が使用できなければなりません。この暗号は Identity Manager にはデフォルトでパッケージされていませんが、Sun や IBM が提供する実装をはじめ、多くの JCE プロバイダ実装で使用可能な PKCS#5 標準です。

サーバーキーを安全な外部記憶装置にエクスポートしてもよいですか ?

はい。サーバーキーが PBE 暗号化されている場合、エクスポートの前に、サーバーキーは復号化されてデフォルトキーで再暗号化されます。これにより、それ以後ローカルサーバー PBE キーに依存することなく、同じサーバーまたは別のサーバーにサーバーキーをインポートできるようになります。サーバーキーがデフォルトキーで暗号化されている場合は、エクスポート前の事前処理は行われません。

サーバーキーをサーバーにインポートするときには、サーバーが PBE キー用に設定されていればキーが復号化され、次いで、そのサーバーが PBE キー暗号化用に設定されていればローカルサーバーの PBE キーで再暗号化されます。

どのデータがサーバーとゲートウェイの間で暗号化されますか ?

サーバーとゲートウェイの間で送信されるすべてのデータ (ペイロード) が、ランダムに生成されたサーバーゲートウェイセッション対称 168 ビットキーを使用してトリプル DES で暗号化されます。

ゲートウェイキーに関する質問と答え

続く節では、ゲートウェイのソース、記憶装置、配布、保護についてよく尋ねられる質問に答えていますのでご覧ください。

データの暗号化または復号化に使用するゲートウェイキーとは何ですか ?

Identity Manager サーバーがゲートウェイに接続するたびに、初期ハンドシェークによって新規のランダム 168 ビットのトリプル DES セッションキーが生成されます。それ以降サーバーとゲートウェイの間で送信されるすべてのデータは、このキーを使用して暗号化または復号化されます。サーバー/ゲートウェイのペアごとに一意のセッションキーが生成されます。

ゲートウェイキーはどのようにしてゲートウェイに配布されますか ?

セッションキーはサーバーによってランダムに生成された後、初期サーバーゲートウェイ間ハンドシェークの一環として共有秘密マスターキーによって暗号化されることにより、サーバーとゲートウェイの間でセキュアに交換されます。

初期ハンドシェーク時に、サーバーはゲートウェイに問い合わせて、ゲートウェイがサポートするモードを判別します。ゲートウェイは次の 2 つのモードで作動します。

サーバーゲートウェイ間ペイロードの暗号化や復号化に使用するゲートウェイキーを更新できますか ?

Identity Manager には「サーバー暗号化の管理」というタスクが用意されており、承認されたセキュリティー管理者はいろいろなキー管理タスクを実行することができます。そのタスクには、新しい現在のゲートウェイキーの生成や生成された現在のゲートウェイキーによるすべてのゲートウェイの更新などが含まれます。このキーはサーバーゲートウェイ間で送信されるすべてのペイロードを保護する、セッション単位のキーを暗号化するために使用されます。新たに生成されるゲートウェイキーは、システム設定のpbeEncrypt 属性の値に基づいて、デフォルトキーまたは PBE キーで暗号化されます。

ゲートウェイキーはサーバー上とゲートウェイ上のどこに格納されますか ?

サーバー上では、ゲートウェイキーはサーバーキーとまったく同じようにリポジトリに格納されます。ゲートウェイ上では、ローカルレジストリキー内に格納されます。

ゲートウェイキーはどのように保護されますか ?

ゲートウェイキーはサーバーキーの場合と同じように保護されます。サーバーが PBE 暗号化を使用するように設定されている場合、ゲートウェイキーは PBE が生成するキーで暗号化されます。このオプションが false に設定されている場合には、ゲートウェイキーはデフォルトキーで暗号化されます。詳細については、前述の「サーバーキーはどのように保護されますか?」の節を参照してください。

ゲートウェイキーを安全な外部記憶装置にエクスポートしてもよいですか ?

ゲートウェイキーは、サーバーキーの場合と同じく、「サーバー暗号化の管理」タスクを使用してエクスポートできます。詳細については、前述の「サーバーキーを安全な外部記憶装置にエクスポートしてもよいですか ?」の節を参照してください。

サーバーキーやゲートウェイキーはどのようにして破棄されますか ?

サーバーキーとゲートウェイキーは、サーバーリポジトリからそれらを削除することによって破棄されます。あるキーを使用して暗号化されたサーバーデータがある間や、そのキーに依存するゲートウェイがある間は、そのキーを削除しないように注意してください。「サーバー暗号化の管理」タスクを使用して、現在のサーバーキーですべてのサーバーデータを再暗号化し、現在のゲートウェイキーをすべてのゲートウェイで同期することによって、古いキーを削除する前に、確実にどの古いキーも使用されていない状態になるようにしてください。


サーバー暗号化の管理

Identity Manager のサーバー暗号化機能を使用して、新しい 3DES サーバー暗号化キーを作成してから、3DES または PKCS#5 暗号化を使ってこれらのキーを暗号化できます。サーバー暗号化の管理タスクは、セキュリティー管理者機能を持つユーザーだけが実行でき、「タスク」タブからアクセスします。

「サーバー暗号化の管理」で 3DES キーを作成して暗号化します。

図 1 「サーバー暗号化の管理」タスク

「タスクの実行」を選択し、リストから「サーバー暗号化の管理」を選択して、タスクに関する次の情報を設定します。


セキュリティーの実装

Identity Manager 管理者は、セットアップ時とそれ以降に以下の推奨事項に従うことで、保護されたアカウントおよびデータに対するセキュリティー上のリスクをさらに軽減できます。

セットアップ時

以下の操作を実行する必要があります。

実行時

以下の操作を実行する必要があります。



前へ      目次      次へ     


Copyright 2006 Sun Microsystems, Inc. All rights reserved.