リソースの使用による資源の保護
承認によって、InterSystems IRIS® データ・プラットフォームのコンポーネントが不適切な使用から保護されます。インターシステムズでは、これらのコンポーネントを取り上げる場合、以下の用語を使用します。
-
資源とは、保護の対象になるものです。例えば、InterSystems IRIS データベースは資源であり、SQL を使用して InterSystems IRIS に接続する機能も資源です。また、バックアップを実行する機能も資源です。
-
リソースは資源を保護します。資源とリソースの中には一対一で対応するものがあり、この場合は 1 つのリソースによって単一の資源 (データベースなど) が保護されます。これ以外の場合は、セキュリティ管理を簡素化するために、単一のリソースで複数の資源が保護されます。例えば、さまざまなシステム管理機能が単一のリソースで保護されます。
-
特権によって、あるリソースで保護されている 1 つ以上の資源に対して何らかの処理を実行する許可が付与されます。例えば、注文データベースを読み取ることができるようになります。特権は、%DB_Sales:Read のように、リソース名の後にコロンで区切って許可を記す書式で記述します。
特権の詳細は、"特権および許可" を参照してください。
ここでは、リソースとリソースが保護する資源に関する問題を扱います。InterSystems IRIS には、資源を保護する一連のリソースが含まれており、ユーザが保持している権限に基づいて、ユーザに資源へのアクセスが提供されます。ユーザが独自のリソースを定義することもできます。
リソースのタイプ
リソースには、以下のようないくつかのタイプがあります。
-
システム・リソース — InterSystems IRIS インスタンスに対してさまざまなアクションを実行する機能を制御します。これらのリソースの詳細は、"システム・リソース" を参照してください。
このようなリソースとしては、%Admin_ExternalLanguageServerEdit、%Admin_Journal、%Admin_Manage、%Admin_OAuth2_Client、%Admin_OAuth2_Registration、%Admin_OAuth2_Server、%Admin_Operate、%Admin_RoleEdit、%Admin_Secure、%Admin_Task、%Admin_UserEdit、%Development、%DocDB_Admin、%IAM、%System_Callout、%System_Attach、および %Secure_Break があります。
-
データベース・リソース — InterSystems IRIS データベースに対する読み取りと書き込みのアクセスを制御します。これらのリソースの詳細は、"データベース・リソース" を参照してください。
新しくインストールされた InterSystems IRIS インスタンスのデータベース・リソースは、%DB_IRISLOCALDATA、%DB_IRISAUDIT、%DB_IRISLIB、%DB_IRISLOCALDATA、%DB_IRISSYS、%DB_IRISTEMP、%DB_ENSLIB です。
-
ゲートウェイ・リソース — 外部言語サーバへのアクセスを制御します。これらのリソースの詳細は、"ゲートウェイ・リソース" を参照してください。
新たにインストールした InterSystems IRIS インスタンスのゲートウェイ・リソースは、%Gateway_Object、%Gateway_SQL、%Gateway_ML です。
-
サービス・リソース — InterSystems のさまざまな接続テクノロジを使用して InterSystems IRIS に接続する機能を制御します。これらのリソースとそれらが制御する機能の詳細は、"サービス" を参照してください。
すべてのサービスが特権に関連付けられているわけではありません。InterSystems IRIS によってユーザ・ベースのアクセスが提供されるサービスのみにこのような関連付けがあります。データ・チェックなどのこれ以外のサービスはユーザ・ベースではないので、関連付けられたセキュリティ・リソースが存在しません。サービスの管理の詳細は、"サービス" を参照してください。
サービス・リソースとしては、%Native_ClassExecution、%Native_Concurrency、%Native_GlobalAccess、%Native_Transaction、%Service_CallIn、%Service_ComPort、%Service_Console、%Service_DocDB、%Service_Login、%Service_Object、%Service_SQL、%Service_Telnet、%Service_Terminal、および %Service_WebGateway があります。
-
アプリケーション・リソース — ユーザ定義アプリケーションの全体を制御するか、ユーザ・コードの任意の場所において承認を行います。これらのリソースの一般的な情報は、"アプリケーション・リソース" を参照してください。これらのリソースの作成に関する詳細は、"リソースの作成または編集" を参照してください。
システム・リソース
InterSystems IRIS には、インストール済みの InterSystems IRIS インスタンスに関するアクションを制御する組み込みリソースのセットが付属しています。システム・リソースには以下のものがあります。
システム・リソースには、リソース・ベース・サービスに関連付けられたリソースも含まれます。サービスの詳細は、"サービス" を参照してください。
管理リソース
管理リソースは以下のとおりです。
%Admin_* リソースに対する特権があると、ユーザは、データベースの特権 (%DB_<database-name>:R/W) をまったく持っていなくても管理機能を実行できます。例えば、%Admin_Operate:Use 特権を持つシステム運用管理者などのユーザは、データベースに対する特権がなくても、そのデータベースを含むバックアップを実行できます。これは、InterSystems IRIS のデータベース・バックアップ・システムのようなアプリケーション以外の方法で、オペレータがデータベースの内容にアクセスする必要はないからです。
%Admin_ExternalLanguageServerEdit
このリソースは、外部言語サーバOpens in a new tab (ゲートウェイともいいます) を作成、変更、削除する機能を制御します。ゲートウェイに関連付けたゲートウェイ・リソースの変更、および %SYSTEM.java.SQL クラスと %SYSTEM.python.SQL クラスでのメソッドの使用も対象となります。
このリソースには Use 許可が必要です。
既定では、%Manager ロールは %Admin_ExternalLanguageServerEdit:USE 特権を保持します。
%Admin_Journal
このリソースにより、ユーザは、ターミナルのプログラマ・モードで、ジャーナリングなしプロセス・フラグを DISABLE^%SYS.NOJRN と ENABLE^%SYS.NOJRN のエントリ・ポイントによって、それぞれ設定およびクリアできます。このリソースにより、Use 許可を %Admin_Manage リソースで付与 (この場合、必要以上の特権が付与される場合があります) しなくても、このアクションを実行可能なユーザを確立できます。
このリソースには Use 許可が必要です (Read 許可または Write 許可ではありません)。
%Admin_Manage
このリソースは、複数の特権セットを制御します。
-
[システム管理] ページを始めとする、管理ポータルのさまざまなページへのアクセスを制御します。
-
以下の機能を制御します。
-
InterSystems IRIS 構成の作成、変更、および削除
-
バックアップ定義の作成、変更、および削除
-
データベースの追加、データベースの特性の変更、およびデータベースの削除
-
ネームスペース・マップの変更
-
データベースとジャーナルのリストア
-
ジャーナリングなしプロセス・フラグの設定およびクリア。このフラグは、ターミナルのプログラマ・モードで、ENABLE^%SYS.NOJRN と DISABLE^%SYS.NOJRN のエントリ・ポイントを使用して設定およびクリアします。他の管理特権なしでユーザがこのタスクを実行できるようにする場合、%Admin_Journal リソースを使用します。
-
このリソースには Use 許可が必要です。
%Admin_OAuth2_Client
このリソースは、InterSystems IRIS を OAuth2 クライアントとして使用する場合の構成設定を制御します。これにより、管理ポータルの [システム]→[セキュリティ管理]→[OAuth 2.0 クライアント] ページにアクセスできます。このページから、クライアントとして使用する InterSystems IRIS に OAuth2 承認サーバを設定できます。承認サーバを設定した後は、クライアント構成を作成できます。詳細は、"OAuth 2.0 クライアントとしての InterSystems IRIS Web アプリケーションの使用法" を参照してください。
%Admin_OAuth2_Registration
このリソースは、InterSystems IRIS を OAuth2 承認サーバとして使用する場合のクライアント構成の作成、読み取り、更新、および削除を制御します。管理ポータルのクライアント構成のページには、以下の URL でインスタンスの <baseURL> を使用してアクセスできます。
https://<baseURL>/csp/sys/sec/%25CSP.UI.Portal.OAuth2.Server.ClientList.zen
これにより、管理ポータルの [システム]→[セキュリティ管理]→[OAuth 2.0の管理 — (セキュリティ設定)] ページにもアクセスできます。このページから、特定のユーザのトークンを取り消すことができます。
%Admin_OAuth2_Server
このリソースは、InterSystems IRIS を OAuth2 承認サーバとして使用する場合の構成設定を制御します。これにより、管理ポータルの [システム]→[セキュリティ管理]→[OAuth 2.0 認可サーバ構成 — (セキュリティ設定)] ページにアクセスできます。詳細は、"OAuth 2.0 承認サーバとしての InterSystems IRIS の使用法" を参照してください。
%Admin_Operate
このリソースは、複数の特権セットを制御します。
-
[システムオペレーション] ページを始めとする、管理ポータルのさまざまなページへのアクセスを制御します。
-
以下の機能を制御します。
-
InterSystems IRIS の開始と停止
-
プロセスの検証と終了
-
データベースのマウントとディスマウント
-
整合性の確認
-
ジャーナルの開始、停止、および切り換え
-
データベースのバックアップ
-
ロックの検証と削除
-
ログの検証
-
サービスの開始と停止
-
データベースをマウントするには、%Admin_Operate:Use 特権が必要です。これは、明示的なマウント (ObjectScript ユーティリティを使用した場合など) でも、暗黙的なマウント (マウントしていないデータベースへのグローバル参照を作成した場合など) でも同様です。
このリソースには Use 許可が必要です。
%Admin_RoleEdit
以下の特権を制御します。
-
SQL の場合は、以下の機能を制御します。
-
ロールの作成または削除。
-
このリソースには Use 許可が必要です。
%Admin_Secure
このリソースは、複数の特権セットを制御します。
-
管理ポータルのさまざまなページへのアクセスを制御します。
-
RBAC セキュリティ・モデルを操作している場合は、以下の機能を制御します。
-
ユーザの作成、変更、または削除。
-
ロールの作成、変更、または削除。
-
アプリケーション定義とアプリケーション・リソースの作成、変更、または削除。
-
監査設定の変更
-
サービスの変更
-
-
SQL の場合は、以下の機能を制御します。
このリソースには Use 許可が必要です。
%Admin_Tasks
このリソースの特権には、管理ポータルのタスク・マネージャ ([システムオペレーション] > [タスクマネージャ]) などを使用してタスクを生成、変更、および実行する機能が含まれます。
このリソースには Use 許可が必要です。
%Admin_UserEdit
以下の特権を制御します。
-
SQL の場合は、以下の機能を制御します。
-
ユーザの作成、変更、削除。
-
このリソースには Use 許可が必要です。
%Development リソース
%Development リソースは、InterSystems IRIS の開発機能と管理ポータルのさまざまなページへのアクセスを制御します。特に、以下の機能を制御します。
-
ダイレクト・モードへの切り換え
-
スタジオの使用%Development:Use 特権は、スタジオがサーバに接続するたびにチェックされます。
-
InterSystems IRIS システム・マネージャ・ユーティリティのグローバル、ルーチン、クラス、テーブル、または SQL のいずれかの機能の使用(この機能にプログラム的にアクセスする API を呼び出す場合も、この特権が必要です)。
-
InterSystems IRIS のデバッグ機能の使用。BREAK コマンドと ZBREAK コマンド、InterSystems IRIS システム・マネージャ・ユーティリティでのプロセス表示のデバッグ・オプションなどがあります。
%Development:Use 特権は、データベース特権との組み合わせで動作し、以下のように InterSystems IRIS への開発者のアクセスを制御します。
-
スタジオの場合は、スタジオがサーバに接続するたびに %Development:Use 特権があるかどうかがチェックされます。接続するには、そのサーバに対する %Development:Use 特権を持ち、ネームスペースの既定のグローバル・データベースを読み取ることができる (つまり、%DB_<database-name>:R 特権を持つ) 必要があります。ルーチン、クラス、または他の定義を開くには、それが格納されているデータベース (既定のルーチン・データベースであるかどうかは問いません) に対する Read 特権を持っている必要があります。定義をコンパイルまたは保存するには、そのデータベースに対する Write 特権を持っている必要があります。
-
InterSystems IRIS システム・マネージャ・ユーティリティのグローバル、ルーチン、またはクラスの各機能の場合、グローバルにアクセスするユーザまたはグローバルを変更するユーザには、それぞれ該当のデータベースに対する Read 特権または Write 特権が必要です。
-
InterSystems IRIS システム・マネージャ・ユーティリティの SQL 機能の場合、テーブル、ビュー、ストアド・プロシージャ、または他の SQL アセットに対する適切な SQL 特権がユーザに必要です。データベース・テーブルに対する何らかの SQL アクセスがユーザに許可されると、そのデータベースに対する Read アクセスまたは Write アクセスも付与されます。
InterSystems IRIS アプリケーションをデバッグするために、特定のデータベース特権が必要になることはありません。システムに対する %Development:Use 特権があれば、そのシステム上のあらゆるデータベースに格納されているあらゆるルーチンにブレークポイントを設定できます。ただし、以下の操作ではデータベースに対する Read 特権が必要です。
-
デバッガを使用してルーチンのソースを表示する
-
ルーチンを実行する
%DocDB_Admin リソース
%DocDB_Admin リソースは、ドキュメント・データベース・アプリケーションを管理する機能を制御します。この機能の詳細は、"ドキュメント・データベースの使用法" を参照してください。
%IAM リソース
%IAM リソースは、InterSystems API Manager (IAM) を実行するためのライセンスを InterSystems IRIS から取得する機能を制御します。
%System_Callout リソース
%System_Callout リソースは、InterSystems IRIS 外でアクションを実行するさまざまなツールへのアクセスを制御します。これには、以下のものがあります。
-
ObjectScript での $ZF(-100) 関数の使用。これは、ObjectScript コード内からのオペレーティング・システム・コマンドの実行をサポートしています。また、"オペレーティング・システム・コマンドの発行" も参照してください。ここには、%System_Callout:Use 特権を追加する詳細手順が記載されています。
-
ターミナルでの、オペレーティング・システムにアクセスする制御文字としての “!” および “$” の使用。詳細は、$ZF(-100) のドキュメントを参照してください。
-
ObjectScript を使用したローカル・プロセス間通信における、Q モードでのプロセス間通信デバイスのオープン。詳細は、"プロセス間通信パイプの OPEN のみのコマンド・キーワード" の表を参照してください。
%System_Attach リソース
%System_Attach リソースでは、実行中のプロセスにスタジオ・デバッガをアタッチできます。
%Secure_Break リソース
%Secure_Break リソースは、保護されたデバッグ・シェルの使用に適用されます。これは、<BREAK> プロンプトでのプログラマのアクセスを制限します。保護されたデバッグ・シェルの詳細は、"保護されたデバッグ・シェル" を参照してください。
%Service_Native リソース
%Service_Native リソースは非推奨です。Python、Java、.NET、Node.js のどれを通じてユーザが Native API 呼び出しを発行できるかの制御については、4 つの %Native_* リソースを参照してください。4 つの Native API リソースは、"%Service_Bindings" で確認できます。
データベース・リソース
データベース・リソースは、InterSystems IRIS データベースのコンテンツへのアクセスを制御します。データベースへのアクセスを制御するデータベース・リソースの名前は、そのデータベースのラベル・ブロックに格納されます。
データベース・リソースの名前はすべて、文字列 “%DB_” で始める必要があります。また、カスタム・リソースの場合、アンダースコアの次の文字にパーセント文字を使用することはできません。既定のデータベース・リソース名は、%DB_<データベース名> です。管理ポータルを使用して、データベースに割り当てられたリソース名を変更できます。
データベース・リソースの特権
利用できるデータベースの特権は、以下のとおりです。
許可 | 可能な操作 |
---|---|
Read | データへのアクセスとルーチンの実行 |
Write | データ (実行可能コードも含む) の変更と削除 |
Read 許可および Write 許可では、データベースのすべてのコンテンツへのアクセスが可能です。このコンテンツには、データのほか、ソース・コードと実行可能コードも含まれます。インターシステムズのセキュリティ管理ユーティリティでは、Write アクセスが可能なデータベース・リソースには、自動的に Read 許可が与えられます。
データベースの特権では、ルーチンやグローバルなど、データベースに含まれる項目に対して個別に保護が可能になるわけではありません。データベースにあるリソースのすべての項目に、同一の保護が適用されます。独立したデータベースにグローバルとルーチンを格納することで、高度に細分化した保護を確立できます。InterSystems IRIS ネームスペースのマッピングを使用すれば、アプリケーション・レベルを変更せずに、このような保護を実現できます。
SQL セキュリティではテーブル・レベルのアクセスが与えられ、SELECT や UPDATE など、実行可能な特定のアクションが指定されます。SQL とセキュリティに関する詳細は、"SQL のユーザ、ロール、および特権" を参照してください。
既定のデータベース・リソース
データベース・リソース名を持たない既存データベースをマウントしたときは、既定リソースの %DB_%DEFAULT がデータベースに割り当てられます。既定では、%DB_%DEFAULT には以下の許可が付与されています。
ロール | 許可 |
---|---|
%Developer | Read、Write |
%Manager | Read、Write |
%DB_%DEFAULT リソースに関連付けられた特権は変更できますが、名前のないデータベースがマウントされた場合に利用できる必要があるため、%DB_%DEFAULT リソース自体は削除できません。
認識されないリソース名、または無効なリソース名
1 つの例外 (以下を参照) を除き、認識されないリソース名または無効なリソース名を設定したデータベースをマウントしようとしても、マウントできません(異なる InterSystems IRIS インスタンス間でデータベースを移動すると、このようなエラーが発生する場合があります)。自動的にマウントしようとするとエラーで失敗し、明示的にマウントしようとすると、データベース・ラベルにある名前を持つリソースを作成するか、使用するリソースを有効なものに変更するか選択するように求められます。
この規則の唯一の例外として、%All ロールのメンバであるユーザは、リソースがないデータベースをマウントできます (リソースが削除された場合や、データベースが以前は別のシステム上にあった場合など)。
ネームスペース
ユーザとアプリケーションは、ネームスペースを通じて InterSystems IRIS データベースと対話します。ネームスペースに関連付けられた特権は存在しませんが、その基盤となっているデータベースに関連付けられた特権に基づいて、ネームスペースへのアクセスが付与または拒否されます。具体的には、ネームスペースにアクセスするには、そのネームスペースに関連付けられた既定のグローバル・データベースに対する Read 特権を保持している必要があります。この要件は、以下の場合に確認されます。
-
プロセスが、$NAMESPACE 特殊変数、ZNSPACE コマンド、%CD ユーティリティなどを使用することによって、別のネームスペースに変更しようとする場合。
-
SQL 接続やオブジェクト接続など、ネームスペースに接続するサービスを使用して InterSystems IRIS に接続しようとする場合。
ネームスペースに対して暗黙的または明示的に、グローバルまたはルーチンによる参照を作成する場合、この要件は確認されません。
ネームスペースの特権はその基盤となっているデータベースの特権に依存するため、予期しない動作が発生する可能性があります。例えば、ネームスペース NSCust が、DBCust1、DBCust2、および DBCust3 という 3 つのデータベース内のデータを参照するとします。さらにロール AverageUser があり、特権 %DB_DBCust1:R と %DB_DBCust3:R を持つとします。このロールには DBCust2 に関連付けられた特権がないため、そのデータベース内のデータへのアクセスの試行はすべて失敗します (ネームスペースを介したアクセスを含む)。
IRISSYS (マネージャ・データベース)
InterSystems IRIS には、管理ルーチンおよびグローバルのリポジトリを提供するデータベースが付属しています。IRISSYS データベースがそのデータベースで、マネージャ・データベースとも呼ばれます。
このデータベースには、パーセント記号で始まる名前を持つグローバルとルーチンのグループがあります (これらはそれぞれ “パーセント・グローバル” および “グローバル・ルーチン” と呼ばれます)。これらのグローバルとルーチンは、InterSystems IRIS サイトの管理で特別な役目を持っており、以下のような特別な適用規則を備えています。
-
すべてのユーザは、パーセント・ルーチンおよびパーセント・グローバルに対する Read 許可を持っています。
マッピングを使用すれば、これらの項目を格納する場所を変更できますが、これらの表示には影響しません。パーセント・ルーチンおよびパーセント・グローバルはすべてのネームスペースで常に表示されます。
-
すべてのパーセント・ルーチンは、同じデータベースに存在するすべてのグローバル (パーセント・グローバルのほか、非パーセントのグローバルも含む) に対する Write 許可を持っています。例えば、IRISSYS データベースにあるパーセント・ルーチンは、そのデータベースに格納されているグローバルに対して Write アクセス許可を持っていますが、他のデータベースにあるグローバルに対してはこの許可を持っていません。同時に、他のデータベースにあるパーセント・ルーチンは、その同じデータベースに格納されているグローバルに対して暗黙の Write アクセス許可を持ちますが、IRISSYS にあるパーセント・グローバルに対してはこの許可を持っていません。この暗黙の Write 許可は、通常のルーチンを実行しているときにのみ有効です。ルーチンが変更されていて、XECUTE コマンドでも引数による間接指定でもそのルーチンを使用できない場合、この許可は無効になります。
-
[システムワイドセキュリティパラメータ] ページ ([システム管理]→[セキュリティ]→[システム・セキュリティ]→[システムワイドセキュリティパラメータ]) の [パーセントで始まるグローバルへの書き込みを有効に] フィールドを使用して、パーセント・グローバルに対する Write アクセス許可を非パーセント・ルーチンから制御できます。このページの説明は、"システム規模のセキュリティ・パラメータ" を参照してください。
IRISSYS データベースの移動、置換、削除は行わないでください。
特別な機能
IRISSYS データベースにあるコードで使用できる特別な機能があります。これらの機能を、“制限付きシステム機能” と呼ぶことがあります。この機能の働きは、以下のとおりです。
-
保護された VIEW コマンドおよび $VIEW 関数を呼び出す。
-
保護されたクラス・メソッドを使用する。
-
SET $ROLES = ... 呼び出しを使用してプロセスのロールを変更する。
-
引数を 1 つ使用した形式で $SYSTEM.Security.Login (%SYSTEM.SecurityOpens in a new tab クラスの Login メソッド) 関数を呼び出す。
-
引数を 2 つ使用した形式で $SYSTEM.Security.ChangePassword (%SYSTEM.SecurityOpens in a new tab クラスの ChangePassword メソッド) 関数を呼び出す(新しいパスワードは、"ユーザ・アカウントのプロパティ" で説明されている一般的なパスワード制約および "パスワードの強固さとパスワードのポリシー" で説明されているインスタンス固有のパスワード制約に従う必要があります)。
-
$ZF 関数の 1 つを呼び出す。これにより、ObjectScript ではないプログラムまたは関数を ObjectScript ルーチンから呼び出すことができます。
VIEW コマンドを使用してデータベースのブロックに対する読み取りまたは書き込みを実行するとき、データベース特権は不要です。
以下のコードのみが、上記のアクションを実行できます。
-
IRISSYS データベースに格納されているルーチン ("通常" のルーチンの実行中のみ)。現在のルーチンへの ZINSERT によりこのルーチンが変更されている場合、これらの機能は無効になり、XECUTE コマンドでも引数による間接指定でも利用できなくなります。
-
%DB_IRISSYS リソースに対する Write 許可を持っているプロセス。
ゲートウェイ・リソース
ゲートウェイ・リソースは、InterSystems IRIS に用意されている外部言語サーバOpens in a new tab (ゲートウェイともいいます) へのアクセスを制御します。ゲートウェイ・リソースとそれが既定で関連付けられている外部言語サーバの種類を以下に挙げます。
-
%Gateway_ML — IntegratedML
-
%Gateway_Object — .NET、Java、Python、R、XSLT
-
%Gateway_SQL — JDBC
これらのリソースには Use 許可が必要です。
%Admin_ExternalLanguageServerEdit リソースは、外部言語サーバを作成、削除、変更する機能を制御します。外部言語サーバに関連付けたゲートウェイ・リソースの変更も対象となります。ゲートウェイに関連付けられた既定のゲートウェイ・リソースを、ユーザ定義のリソースに置き換えることができます。また、置き換えずに削除することもできますが、その場合、関連付けられていたゲートウェイはパブリックになり、誰でも使用できるようになります。
ゲートウェイ・リソースに関連付けることにより、すべてのゲートウェイを保護することを強くお勧めします。
アプリケーション・リソース
InterSystems IRIS では、数種類の形式のカスタム承認をサポートしています。それらのすべては、アプリケーション・リソースとして知られるユーザ定義のリソースに依存しています。これには、以下のものがあります。
-
ポータル・ページのための補足的な承認の確認 — 詳細は、"管理ポータルによるカスタム・リソースの使用法" を参照してください。
-
アプリケーションでの特定の時点における承認の確認 — 詳細は、次の "リソースの作成または編集" を参照してください。
-
アプリケーション全体の承認
アプリケーション全体に対して、InterSystems IRIS はユーザ定義のアプリケーションと関連付けられたアプリケーション定義を作成できます (これ自体は、実行可能なコードで構成される名前付きエンティティとして定義されます)。アプリケーション・リソースによりアプリケーションの承認を確認できます。アプリケーションには、以下のようないくつかのタイプがあります。
-
Web アプリケーション定義
-
特権ルーチン・アプリケーション定義
-
クライアント・アプリケーション定義
-
ドキュメント・データベース定義
アプリケーション・リソースは、アプリケーションに対するアクセスを制御する手段を提供します。この機能を使用するには、カスタム・リソースを作成し ("リソースの作成または編集" を参照)、アプリケーションに関連付けて使用します (詳細は、"Web アプリケーションの編集 : [一般] タブ" または "特権ルーチン・アプリケーション、クライアント・アプリケーション、またはドキュメント・データベース・アプリケーションの編集 : [一般] タブ" を参照)。
例えば Web アプリケーションに関連付けられたリソースがある場合、ユーザは、そのリソースに対して Use 許可を持つ場合にのみ、そのアプリケーションを実行できます。アプリケーションでリソースを規制するその他のエンティティ (データベースなど) が使用されている場合は、ユーザにもこれらのリソースに対する適切な許可を与えて、アプリケーションを効率的に操作する必要があります。アプリケーションの詳細は、"アプリケーション" を参照してください。
リソースの作成または編集
新規のリソースを作成するには、[リソース] ページ ([システム管理]→[セキュリティ]→[リソース]) で、[新規リソース作成] をクリックします。
既存のリソースを編集するには、[リソース] ページ ([システム管理] > [セキュリティ] > [リソース]) で、編集するリソースの右にある [編集] ボタンをクリックします。
[リソースの編集] ページが表示されます。[リソースの編集] ページには、以下のフィールドがあります。
-
リソース名 — リソースを識別するための文字列。リソース名の詳細は、"リソースの名前付け規約" を参照してください。リソースを作成する場合に、このフィールドは編集可能になります。既存のリソースを編集する場合は、編集不可能な文字列が表示されます。
-
説明 — リソースに関連するオプション・テキスト。
-
パブリック許可 —
-
Read — チェックが付いている場合は、すべてのユーザがこのリソースを参照できることを表します。
-
Write — チェックが付いている場合は、すべてのユーザがこのリソースを参照または変更できることを表します。
-
Use — チェックが付いている場合、すべてのユーザがこのリソースを実行または使用できることを表します。
-
リソースを追加すると、これがリソースのテーブルに表示され、アプリケーション・タイプになります。これは、アプリケーション固有の承認の一部として使用できます。詳細は、"プロセスの特権の確認" を参照してください。
リソースの名前付け規約
InterSystems IRIS リソースの名前はパーセント記号の文字で始まります。アプリケーション定義リソースの名前は、パーセント記号文字で始めないでください。
リソース名では大文字と小文字が区別されません。したがって、以下の点に注意します。
-
大文字と小文字が混在した名前を定義すると、入力したとおりの文字の組み合わせで名前が保持されます。
-
大文字と小文字の違いのみで別の名前とすることはできません。
-
名前の検索では、大文字と小文字の違いは無視されます。
例えば、Accounting という名前のリソースがある場合、ACCOUNTING という名前のリソースを作成することはできません。Accounting リソースを参照する場合、accounting や ACCOUNTING のようにすべて大文字または小文字を使用しても正常に実行されます。
管理ポータルによるカスタム・リソースの使用法
既定では、%Admin_Manage、%Admin_Operate、%Admin_Secure、および %Development のシステム・リソースにより、管理ポータルへのアクセスが制御されます。よりきめ細かくポータルのセキュリティを実現できるようにこれらを補足すると、さらにカスタム・リソースを各ポータル・ページと関連付けることができます。関連付けられるカスタム・リソースがポータル・ページにある場合、そのページを表示するためには、ユーザがそのページのシステム・リソースとカスタム・リソースの両方を保持する必要があります。
例えば、[ロックテーブル] ページにアクセスするには、%Operator ロールが必要です。カスタム・リソース (例えば、MyLockTable) を [ロックテーブル] ページに関連付けることもできます。この関連付けを作成したら、[ロックテーブル] ページを表示するには、ユーザは %Operator ロールのメンバであり、さらに MyLockTable:Use 特権がある必要があります。これにより、%Operator ロールでアクセス権が付与されるページの数が、既定の設定のインスタンスよりも少なくなります。そして、[ロックテーブル] ページや %Operator ロールでアクセス権が付与されるその他のすべてのページを表示できる、新しいロールを定義できます。複数のカスタム・リソースも作成できます。これによって、事前定義済みロールが既定で用意しているもののさまざまなサブセットにさまざまなロールでアクセスできます。
ここでは以下について説明します。
さまざまなページ、リソース、およびロール間における相互作用は複雑な場合があるので、管理ポータルのカスタム・リソースを実装する前に、システム管理者は注意深く計画する必要があります。
カスタム・リソースの定義とページへの適用
カスタム・リソースを定義して適用する手順は以下のとおりです。
-
%Admin_Secure:Use 特権のあるユーザ、または %All ロールのメンバとしてログインします。
-
カスタム・リソースを作成します。このためには、[リソース] ページ ([システム管理] > [セキュリティ]、[リソース]) で、[新規リソース作成] をクリックします。リソースを作成する際、インスタンスのニーズに従ってパブリック許可を適切に設定してあることを確認します。
-
カスタム・リソースを使用する特権をロールに関連付けます。既存のロールの場合、[ロール] ページ ([システム管理] > [セキュリティ] > [ロール]) で、特権をロールに追加するだけです。または、(同じく [ロール] ページで) 新しいロールを作成してからその直後に特権を追加します。どちらの方法でも、特権はカスタム・リソースと Use 許可で構成されます。
-
カスタム・リソースをページに割り当てます。以下はその方法です。
-
ポータルの検索機能を使用して、ページを選択します。ページの名前をクリックすると直接そのページに移動します。ページのアクション・ペインを表示するには (名前自体ではなく) ボックス内をクリックしてください。
-
ページのアクション・ペインの一番下にある [割り当てる] をクリックします。[カスタム・リソースの割り当て] ダイアログが表示されます。
-
そのダイアログで、適切なリソースを [カスタム・リソース名] リストで選択し、[OK] をクリックします。
-
ページからのカスタム・リソースの削除
カスタム・リソースの関連付けをページから削除するには、以下の手順に従います。
-
%Admin_Secure:Use 特権のあるユーザ、または %All ロールのメンバとしてログインします。
-
ポータルの検索機能を使用して、ページを選択します。ページの名前をクリックすると直接そのページに移動します。ページのアクション・ペインを表示するには (名前自体ではなく) ボックス内をクリックしてください。
-
ページのアクション・ペインの一番下にある [割り当てる] をクリックします。[カスタム・リソースの割り当て] ダイアログが表示されます。
-
そのダイアログで、空の項目を [カスタム・リソース名] リストで選択し、[OK] をクリックします。