Sun ONE Identity Server 6.1 管理ガイド |
第 6 章
ポリシー管理この章では、SunTM ONE Identity Server のポリシーサービスの管理機能について説明します。ポリシー管理では、すべての Identity Server ポリシーを表示、管理、および設定する方法を提供します。
この章は、次の節で構成されています。
ポリシータイプIdentity Server を使用して設定可能なポリシーには、標準ポリシーと、参照ポリシーの 2 タイプがあります。標準ポリシーは、複数のルール、サブジェクト、および条件から構成されます。参照ポリシーは、複数のルール、および組織への参照から構成されます。
標準ポリシー
Identity Server では、アクセス許可を定義するポリシーを標準ポリシーと呼びます。標準ポリシーは、複数のルール、サブジェクト、および条件から構成されます。
ルールは、1 つのリソースと、1 つ以上のアクションと値の組で構成されます。リソースは保護しているオブジェクトを定義します。またアクションは、リソースで実行している操作の名前、値はアクセス権を定義します。
ポリシーはアイデンティティに割り当てられていません。その代わりに、サブジェクトがポリシーに割り当てられています。サブジェクトとは、ポリシーが割り当てられ、適用されているアイデンティティオブジェクトのことです。
条件は、ポリシーが適用可能な状況を定義します。たとえばポリシーで午前 7 時〜 10 時という時間条件は、そのポリシーが午前 7 時〜 10 時までの間で適用可能であることを意味します。
注
参照、ルール、リソース、サブジェクト、条件、アクション、値の各用語は、policy.dtd 内の Referral、Rule、ResourceName、Subject、Condition、Attribute、Value の各要素に対応しています。詳細については、『Sun ONE Identity Server Customization and API Guide』で説明しています。
参照ポリシー
管理者は、通常、ある組織のポリシーの定義や判断を、別の組織に委任します。または、あるリソースに対するポリシーの判断を、別のポリシー製品に委任することもできます。参照ポリシーは、ポリシーの作成と評価の両方に対するポリシーの委任を管理します。1 つ以上のルールと、1 つ以上の参照で構成されます。ルールは、ポリシーの定義と評価が参照されるリソースを定義します。参照は、ポリシーの定義と評価をどの組織に対して参照するかを定義します。
Identity Server に付属する参照には、ピア組織とサブ組織の 2 タイプがあります。それぞれ、同じレベルの組織、下位レベルの組織を表します。詳細は、「ピア組織およびサブ組織のポリシーの作成」を参照してください。
ポリシー管理ポリシーの作成、削除、修正には、ポリシー API を使う方法、amadmin コマンド行ツールを使う方法、そして Identity Server コンソールを使う方法があります。
この章では、コンソールを使用したポリシーの作成について説明します。amadmin の詳細については、「amadmin コマンド行ツール」を参照してください。ポリシー API の詳細については、『Sun ONE Identity Server Customization and API Guide』の「ポリシーサービス」の章を参照してください。
ポリシーはアイデンティティ管理インタフェースを使用して設定します。このインタフェースを使用すると、次の作業ができます。
一般に、ポリシーは組織ツリー全体で使用するために、組織またはサブ組織レベルで作成します。
図 6-1 ポリシーの表示
ポリシー設定サービスの登録
ポリシー設定サービスの登録はサービスのタイプの登録と同じで、アイデンティティ管理インタフェース内で行います。デフォルトでは、ポリシー設定サービスは自動的に最上位の組織に登録されます。作成するポリシーサービスは、すべての組織に登録する必要があります。ポリシー設定サービスを登録するときは常に、組織で適用されるすべてのポリシーのテンプレートに、LDAP バインドパスワードを入力する必要があります。
- アイデンティティ管理インタフェースに移動します。
コンソールが開くときのデフォルトのインタフェースはアイデンティティ管理です。
- ポリシーを作成する組織を選択します。
最上位レベル管理者としてログインした場合は、アイデンティティ管理モジュールがすべての設定済み組織が表示される最上位レベルの組織であることを確認します。デフォルトの最上位レベル組織は、インストール時に定義されます。
- 「表示」メニューから「サービス」を選択します。
その組織にすでにサービスが登録されている場合は、ナビゲーションフレームにそのサービスが表示されます。
- ナビゲーションフレームで「登録」をクリックします。
この組織にまだ登録されていないサービスのリストが、データフレームに表示されます。
- データフレームで開かれた「サービスを登録」ウィンドウから、「ポリシー設定」を選択して「登録」をクリックします。
ポリシー設定サービスがナビゲーションフレームのサービス一覧に追加されます。
- 「プロパティ」の矢印をクリックして、ポリシーサービスを設定します。ポリシーテンプレートが設定されていない場合、新しく登録されたポリシーサービス用にサービステンプレートを作成する必要があります。
ポリシーサービスを設定するには、「作成」をクリックします。ポリシー設定属性を修正します。これらの属性については、「ポリシー設定サービス属性」を参照してください。「保存」をクリックします。
これで、選択した組織にポリシー設定サービスが登録されます。
ポリシーの作成
ポリシーはアイデンティティ管理インタフェースを使用して作成します。
- アイデンティティ管理インタフェースに移動します。
- ポリシーを作成する組織を選択します。
組織のポリシー管理ウィンドウの位置が正しいことを確認します。
- 「表示」メニューから「ポリシー」を選択します。
デフォルトでは、組織は「表示」メニューに表示されます。サブ組織がある場合は、すべてその下に表示されます。サブ組織のポリシーを作成する場合は、サブ組織を選択して、「表示」メニューから「ポリシー」を選択します。
- ナビゲーションフレームで「新規」をクリックします。「ポリシーの作成」ウィンドウを開きます。
- 作成するポリシーのタイプを、標準ポリシーまたは参照ポリシーのどちらかから選択します。
サブ組織を参照する参照ポリシーが存在しない場合、そのサブ組織のポリシーを作成することはできません。詳細は、「ピア組織およびサブ組織のポリシーの作成」を参照してください。
この時点では、標準または参照ポリシーのフィールドすべてを定義する必要はありません。ポリシー作成後、ルール、サブジェクト、参照などを追加できます。標準ポリシーや参照ポリシーの設定の詳細については、「ポリシーの修正」を参照してください。
- ポリシーの名前を入力して、「作成」をクリックします。
作成したポリシー名の下に、新しいポリシールールのウィンドウが開きます。
- デフォルトでは、「一般」表示となっています。
「一般」にはポリシー名が表示され、作成するポリシーの説明を入力できます。
- 「保存」をクリックして、ポリシーの設定を完了します。
ポリシーの修正
標準または参照ポリシーの作成後、ルール、サブジェクト、条件、および参照を変更できます。
標準ポリシーの修正
アイデンティティ管理インタフェースでは、アクセス許可を定義するポリシーを作成できます。このようなポリシーを標準ポリシーと呼びます。標準ポリシーは、複数のルール、サブジェクト、および条件から構成できます。ここでは、標準ポリシー作成時に指定できるデフォルトのフィールドについて説明します。
ルールの追加
ルールは、ポリシーのリソース、アクション、およびアクション値を定義します。
- アイデンティティ管理インタフェースで、「表示」メニューから「ポリシー」を選択します。
その組織用に作成されたポリシーが表示されます。
- 修正したいポリシーを選択し、「プロパティ」の矢印をクリックします。データフレームでポリシーの「編集」ウィンドウが開きます。
デフォルトでは、「一般」表示となっています。
- ポリシーのルールを定義するには、「表示」メニューから「ルール」を選択し「追加」をクリックします。
複数のポリシーサービスが存在する場合は、データフレームに一覧表示されます。ポリシーを作成したいサービスを選択して、「次へ」をクリックします。「ルールの追加」ウィンドウが表示されます。
- 「ルール」フィールドに、ポリシーのリソース、アクション、およびアクション値を定義します。
フィールドは次のとおりです。
「サービス」: ポリシーを作成するサービスが表示されます。デフォルトは URL ポリシーエージェントです。
「ルール名」: ルールの名前を入力します。
「リソース名」: リソースの名前を入力します。次に例を示します。
http://www.sunone.com
現在のところ、ポリシーエージェントでサポートされているリソースは http:// と https:// だけです。また、ホスト名の代わりに IP アドレスを使用することはできません。
リソース名、ポート番号、およびプロトコルにはワイルドカードを使用できます。次に例を示します。
http*://*:*/*.html
URL ポリシーエージェントサービスでは、ポート番号が入力されていない場合のデフォルトのポート番号は、http:// では 80、https:// では 443 となります。
「選択、アクション」: URL ポリシーエージェントサービスでは、デフォルトとして次のアクションの両方または一方を選択できます。
ポリシーでは、拒否ルールが許可ルールよりも優先されます。たとえばあるリソースに 2 つのポリシーがあり、1 つはアクセス拒否でもう 1 つはアクセス許可の場合、その結果はアクセスの拒否になります (両方のポリシーの条件が一致する場合)。拒否ポリシーを使用すると、ポリシー間で潜在的に衝突が生じるおそれがあるため、十分に注意して拒否ポリシーを使用することをお勧めします。通常は、ポリシー定義プロセスでは許可ルールだけを使用し、拒否の場合を実現するのに適用するポリシーがない場合にデフォルトの拒否を使用してください。
拒否ルールを明示的に使用すると、1 つ以上のポリシーでアクセスが許可される場合でも、異なるサブジェクト (ロールやグループのメンバーシップ) を通じてユーザーに割り当てられたポリシーによって、リソースへのアクセスを拒否されるおそれがあります。たとえば、1 つのリソースについて、Employee ロールに適用される拒否ポリシーと、Manager ロールに適用される許可ポリシーがあるとします。この場合、Employee ロールと Manager ロールの両方を割り当てられているユーザーは、ポリシーの判断によってアクセスを拒否されます。
このような問題を解決する 1 つの方法は、条件プラグインを使ってポリシーを設計することです。上記の例では、Employee ロールに認証されたユーザーには拒否ポリシーを適用し、Manager ロールに認証されたユーザーには許可ポリシーを適用するという "ロール条件" を利用することで、2 つのポリシーを区別できます。Manager ロールにはより高い認証レベルが与えられることから、認証レベル条件を使用する方法もあります。詳細は、「条件の追加」を参照してください。
サブジェクトの追加
サブジェクトは、ポリシーを適用するサブジェクトを定義します。
- ポリシーのサブジェクトを定義するには、「表示」メニューから「サブジェクト」を選択し「追加」をクリックします。
- デフォルトのサブジェクトタイプを次の中から選択します。
- サブジェクトの名前を入力します。
- 「排他的」フィールドを選択または選択解除します。
このフィールドが選択されていないと (デフォルト)、ポリシーは、サブジェクトのメンバーであるアイデンティティに適用されます。このフィールドが選択されていると、ポリシーは、サブジェクトのメンバーではないアイデンティティに適用されます。
ポリシーに複数のサブジェクトが存在するときは、指定されたアイデンティティにポリシーが適用されていることが少なくとも 1 つのサブジェクトで示されている場合に、そのポリシーがアイデンティティに適用されます。「排他的」フィールドが選択されているかどうかにかかわらず、ポリシーに定義された条件がすべて満たされている場合は、そのポリシーがアイデンティティに適用されます。
- 検索を実行して、サブジェクトに追加するアイデンティティを表示します。
デフォルト (*) の検索パターンでは、該当するすべてのエントリが表示されます。
- サブジェクトに追加するアイデンティティを選択し、「追加」をクリックして「選択」リストボックスに移動します。または「すべて追加」を選択して、すべてのアイデンティティを追加します。
- 「作成」をクリックします。
- サブジェクトの名前、タイプ、および排他の状況が、「サブジェクト」の表に表示されます。「保存」をクリックします。
ポリシーからサブジェクトを削除するには、サブジェクトを選択して「削除」をクリックし、「保存」をクリックします。
サブジェクト名の横にある「編集」リンクをクリックすれば、サブジェクトの定義を編集できます。
条件の追加
条件によって、ポリシーに制約を定義できます。たとえば、給与アプリケーション用のポリシーを定義する場合、アプリケーションへのアクセスを特定の時間帯だけに制限するようにアクションに対して条件を定義することができます。また、所定の IP アドレスまたは企業のイントラネットからの要求に対してのみアクションを許可するように条件を定義することもできます。
条件は、同じドメインの別の URI で別のポリシーを設定するために、補助的に使用されます。たとえば、 http://org.example.com/hr/*jsp は org.example.net で午前 9 時〜午後 5 時だけアクセスできますが、http://org.example.com/finance/*.jsp は org.example2.net で午前 5 時〜午後 11 時にアクセスできます。これは IP 条件と時間条件を使用して実現します。またルールのリソースを http://org.example.com/hr/*.jsp に指定することで、ポリシーは http://org.example.com/hr 以下、サブディレクトリ内を含むすべての JSP に適用されるようになります。
標準ポリシーに条件を追加するには、次の手順に従ってください。
- ポリシーの条件を定義します。「表示」メニューから「条件」を選択します。「追加」をクリックして新しい条件を追加するか、または「編集」リンクをクリックして既存の条件を編集します。
- デフォルトの条件を次の中から選択します。
- 「ルール」フィールドに、所定の条件の値を定義します。フィールドは次のとおりです。
「名前」: 条件の名前を入力します。
認証レベル
「認証レベル」: 認証の信頼レベルを指定します。利用可能な認証レベルの一覧は、認証レベルと認証モジュールの表に表示されます。
認証方式
「認証方式」: プルダウンメニューから条件の認証方式を選択します。これらの認証方式は、組織認証モジュールのコア認証サービステンプレートから取得されます。
IP アドレス
「IP アドレス 開始/終了」: IP アドレスの範囲を指定します。
「DNS 名」: DNS 名を指定します。
時間
「日付 開始/終了」: 日付の範囲を指定します。
「時間」: 1 日での時間の範囲を指定します。
「日」: 日数を指定します。
「タイムゾーン」: タイムゾーンを標準またはカスタムで指定します。カスタムのタイムゾーンとして指定できるのは、Java で認識されるタイムゾーン ID だけです (PST など)。
セッション
「最大セッション時間」: ポリシーを適用する間の最大ユーザーセッション時間を指定します。
「セッションを終了」: 選択すると、「最大セッション時間」フィールドで定義した許可される最大値をセッション時間が超えた場合に、ユーザーセッションの終了が設定されます。
- 条件を定義したら、「作成」をクリックします。
- ポリシーに対して作成されたすべての条件が、「条件」の表に表示されます。「保存」をクリックします。
ポリシーから条件を削除するには、条件を選択して「削除」をクリックします。
条件名の横にある「編集」リンクをクリックすれば、条件の定義を編集できます。
参照ポリシーの修正
アイデンティティ管理インタフェースでは、ある組織のポリシーの定義や判断を、別の組織に委任できます。また、あるリソースに対するポリシーの判断を、別のポリシー製品に委任することもできます。参照ポリシーは、ポリシーの作成と評価の両方に対するポリシーの委任を管理します。参照ポリシーは、ルールおよび参照自体から構成されます。リソースを要求しないアクションがポリシーサービスに含まれている場合、サブ組織に対して参照ポリシーを作成することはできません。
ルールの追加
ルールは、ポリシーのリソースを定義します。
- ポリシーのルールを定義するには、「表示」メニューから「ルール」を選択します。「追加」をクリックして新しいルールを追加するか、または「編集」リンクをクリックして既存のルールを編集します。
- 「ルール」フィールドにリソースを定義します。フィールドは次のとおりです。
「サービス」: ポリシーを作成するポリシーサービスが表示されます。
「名前」: ルールの名前を入力します。
「リソース名」: リソースの名前を入力します。次に例を示します。
http://www.sunone.com
現在のところ、ポリシーエージェントでサポートされているリソースは http:// と https:// だけです。また、ホスト名の代わりに IP アドレスを使用することはできません。
リソース名、ポート番号、およびプロトコルにはワイルドカードを使用できます。
URL ポリシーエージェントサービスでは、ポート番号が入力されていない場合のデフォルトのポート番号は、http:// では 80、https:// では 443 となります。
- 「作成」をクリックしてルールを保存します。
- 手順 1 から 3 を繰り返して、追加のルールを作成します。
- ポリシーに対して作成されたすべてのルールが、「ルール」の表に表示されます。「保存」をクリックします。
ポリシーからルールを削除するには、ルールを選択して「削除」をクリックします。
ルール名の横にある「編集」リンクをクリックすれば、ルールの定義を編集できます。
参照の追加
参照は、ポリシーの評価をどの組織に対して参照するかを定義します。デフォルトでは、2 種類の参照があります。ピア組織とサブ組織です。それぞれ、同じレベルの組織、下位レベルの組織を表します。
- ポリシーの参照を定義するには、「表示」メニューから「参照」を選択します。「追加」をクリックして新しい参照を追加するか、または「編集」リンクをクリックして既存の参照を編集します。
- 「ルール」フィールドにリソースを定義します。フィールドは次のとおりです。
「参照」: 現在の参照を表示します。
「名前」: 参照の名前を入力します。
「含む」: 「値」フィールドに表示する組織名を絞り込むためのフィルタを指定します。デフォルトでは、すべての組織名が表示されます。
「値」: 参照の組織名を入力します。
- 「作成」をクリックし、「保存」をクリックします。
ポリシーから参照を削除するには、参照を選択して「削除」をクリックします。
参照名の横にある「編集」リンクをクリックすれば、参照の定義を編集できます。
ピア組織およびサブ組織のポリシーの作成
ピア組織またはサブ組織のポリシーを作成するには、まず親組織または別のピア組織で参照ポリシーを作成する必要があります。サブ組織でポリシー設定サービスを登録し、テンプレートを作成することも必要です。参照ポリシーのルールの定義には、サブ組織が管理するリソースプレフィックスを含める必要があります。親組織または別のピア組織で参照ポリシーを作成すれば、サブ組織またはピア組織で標準ポリシーを作成できます。
Identity Server ポリシーフレームワークでは、アクション名にリソース名が含まれない場合は、参照ポリシーの作成を許可していません。つまり、アクションにリソース名が含まれていない場合、ポリシーはルート組織の下にのみ作成できます。サブ組織の下には作成できません。
この例では、o=isp が親組織、o=sun.com はサブ組織で http://www.example.com のリソースおよびサブリソースを管理しています。このサブ組織のポリシーを作成するには、次の手順に従ってください。
- o=isp で参照ポリシーを作成します。参照ポリシーについては、「参照ポリシーの修正」の手順を参照してください。
参照ポリシーは、http://www.sun.com をリソースとしてルールに定義し、参照内で sun.com を SubOrgReferral の値として持つ必要があります。
- 「組織」表示で sun.com というサブ組織に移動します。
- ポリシー設定サービスが sun.com というサブ組織レベルに登録されていることを確認します。詳細は、「ポリシー設定サービスの登録」を参照してください。
- これでリソースが isp によって sun.com に参照されるようになったので、http://www.sun.com というリソース、または http://www.sun.com から始まる任意のリソースに対して標準ポリシーを作成できます。
標準ポリシーの作成については、「標準ポリシーの修正」の手順を参照してください。
sun.com で管理する別のリソースのポリシーを定義するには、追加の参照ポリシーを o=isp に作成する必要があります。