REST データ・サービスの複数の側面を保護します。 認証および許可を使用して、eXtreme Scale REST データ・サービスへのアクセスを保護できます。 また、アクセス規則として知られるサービス・スコープ構成規則によって、アクセスを制御することもできます。 3 番目のセキュリティーとして、トランスポート・セキュリティーを考慮します。
認証および許可を使用して、eXtreme Scale REST データ・サービスへのアクセスを保護できます。 認証および許可は、eXtreme Scale セキュリティーとの統合を伴います。
また、アクセス規則として知られるサービス・スコープ構成規則によってアクセスを制御することもできます。 2 つのタイプのアクセス規則が存在します。1 つはサービスによって許可される CRUD 操作を制御するサービス操作アクセス権限で、 もう 1 つは特定のエンティティー・タイプに対して許可される CRUD 操作を制御するエンティティー・アクセス権限です。
トランスポート・セキュリティーは、Web クライアントと REST サービス間の接続に対しては、 ホスティングしているコンテナー構成によって提供されます。また、トランスポート・セキュリティーは、(REST サービスから eXtreme Scale データ・グリッドへの 接続に対して) eXtreme Scale クライアント構成によっても提供されます。
認証および許可を使用して、eXtreme Scale REST データ・サービスへのアクセスを保護できます。 認証および許可は、eXtreme Scale セキュリティーとの統合を伴います。
eXtreme Scale REST データ・サービスは、認証および許可のために eXtreme Scale セキュリティーを使用して、 サービスにアクセスできるユーザーやユーザーがサービス経由で実行を許可される操作を制御します。 eXtreme Scale REST データ・サービスは、構成済みグローバル資格情報 (ユーザーとパスワード) を使用するか、 各トランザクションで、認証および許可が実行される eXtreme Scale データ・グリッドに送信される HTTP BASIC チャレンジから得た資格情報を使用します。
eXtreme Scale REST データ・サービスは、 eXtreme Scale グリッドとの通信時に eXtreme Scale クライアント・ライブラリーを呼び出します。 そのため、eXtreme Scale クライアントで eXtreme Scale セキュリティーを構成する必要があります。
securityEnabled=true
credentialAuthentication=Supported [-or-] Required
credentialGeneratorProps=user:pass [-or-] {xor encoded user:pass}
サンプル ObjectGrid クライアント・ポリシー・ファイルは restservice_home/security/security.ogclient.properties にあります。 クライアント・プロパティー・ファイルも参照してください。
eXtreme Scale セキュリティーと統合するには、 eXtreme Scale REST データ・サービス構成プロパティー・ファイルには、以下の項目が含まれている必要があります。
ogClientPropertyFile=file_name
ogClientPropertyFile は、前のステップで言及した ObjectGrid クライアント・プロパティーが入っているプロパティー・ファイルの場所です。 REST サービスはこのファイルを使用して、セキュリティーが使用可能になっている場合にグリッドに通信する eXtreme Scale クライアントを初期設定します。
loginType=basic [-or-] none
loginType プロパティーは、REST サービスでログイン・タイプを構成します。 値 none を指定すると、credentialGeneratorProps で定義された「グローバル」ユーザー ID とパスワードが、各トランザクションでグリッドに送信されます。 値 basic を指定すると、REST サービスは HTTP BASIC チャレンジをクライアントに提示して、 グリッドとの通信時に各トランザクションで送信する資格情報を要求します。
ogClientPropertyFile プロパティーおよび loginType プロパティーの詳細については、REST データ・サービスのプロパティー・ファイルを参照してください。
また、アクセス規則として知られるサービス・スコープ構成規則によってアクセスを制御することもできます。 2 つのタイプのアクセス規則が存在します。1 つはサービスによって許可される CRUD 操作を制御するサービス操作アクセス権限で、 もう 1 つは特定のエンティティー・タイプに対して許可される CRUD 操作を制御するエンティティー・アクセス権限です。
eXtreme Scale REST データ・サービスでは、オプションとして、 サービスおよびサービス内のエンティティーに対するアクセスを制限するために構成可能なアクセス規則を使用できます。 これらのアクセス規則は、REST サービスのアクセス権限プロパティー・ファイルで指定します。 このファイルの名前は、REST データ・サービスのプロパティー・ファイル内で、wxsRestAccessRightsFile プロパティーを使用して指定します。このプロパティーについて詳しくは、REST データ・サービスのプロパティー・ファイルを参照してください。このファイルは通常、キーと値のペアが含まれた Java プロパティー・ファイルです。 2 つのタイプのアクセス規則が存在します。1 つはサービスによって許可される CRUD 操作を制御するサービス操作アクセス権限で、 もう 1 つは特定のエンティティー・タイプに対して許可される CRUD 操作を制御するエンティティー・アクセス権限です。
サービス操作権限では、REST サービスで公開するすべての ObjectGrid または指定した個別 ObjectGrid のすべてのエンティティーに適用するアクセス権限を指定します。
serviceOperationRights=service_operation_right
serviceOperationRights.grid_name -OR- *=service_operation_right
各部の意味は、次のとおりです。serviceOperationsRights=ALL
serviceOperationsRights.*=NONE
serviceOperationsRights.EMPLOYEEGRID=READSINGLE
最初の例では、この REST サービスで公開されるすべての ObjectGrid ですべてのサービス操作を許可することを指定しています。 2 番目の例では、最初の例と同様に、REST サービスによって公開されるすべての ObjectGrid に適用しています。 ただし、アクセス権限を NONE として指定しており、ObjectGrid ではどのサービス操作も許可されません。 最後の例では、特定のグリッドのサービス操作を制御する方法を示しています。 この例では、EMPLOYEEGRID のすべてのエンティティーに対して、結果が単一のレコードになる読み取りのみが許可されます。
REST サービスで想定されるデフォルトは serviceOperationsRights=ALL であり、 このサービスで公開されるすべての ObjectGrid ですべての操作が許可されます。 これは、デフォルトが NONE で、REST サービスでどの操作も許可されない Microsoft の実装とは異なります。
エンティティー・セット権限は、REST サービスで公開される特定の ObjectGrid エンティティーに適用するアクセス権限を指定します。 この権限により、サービス操作権限と比較して、個別 ObjectGrid エンティティーに対するアクセス制御を厳格化および詳細化できます。
entitySetRights.grid_name.entity_name=entity_set_right
各部の意味は、次のとおりです。アクセス権限 | 説明 |
---|---|
NONE | データにアクセスするためのすべての権限を拒否します。 |
READSINGLE | 単一のデータ項目の読み取りを許可します。 |
READMULTIPLE | データ・セットの読み取りを許可します。 |
ALLREAD | 単一データ/複数のデータ・セットの読み取りを許可します。 |
WRITEAPPEND | データ・セットでの新規データ項目の作成を許可します。 |
WRITEREPLACE | データの置換を許可します。 |
WRITEDELETE | データ・セットからのデータ項目の削除を許可します。 |
WRITEMERGE | データのマージを許可します。 |
ALLWRITE | データの書き込み (つまり、作成、置換、マージ、削除) を許可します。 |
ALL | データの作成、読み取り、更新、および削除を許可します。 |
例 1: serviceOperationsRights.NorthwindGrid=READSINGLE と entitySetRights.NorthwindGrid.Customer=ALL を指定した場合。 Customer エンティティーには、READSINGLE が適用されます。
例 2: serviceOperationsRights.NorthwindGrid=ALLREAD を指定し、 entitySetRights.NorthwindGrid.Customer=ALLWRITE を指定すると、 NorthwindGrid のすべてのエンティティーに対して、読み取りのみが許可されます。 ただし、Customer に対しては、(ALLWRITE が指定されているため) エンティティー・セット権限によってすべての読み取りが拒否されます。 そのため、実質上、Customer エンティティーのアクセス権限は NONE になります。
トランスポート・セキュリティーは、Web クライアントと REST サービス間の接続に対しては、 ホスティングしているコンテナー構成によって提供されます。REST サービスと eXtreme Scale グリッド間の 接続に対しては、eXtreme Scale クライアント構成によって トランスポート・セキュリティーが提供されます。