管理ポータル機能へのアクセスの制御
この付録では、管理ポータルで事前定義済みのセキュリティ・ロールおよびリソースを使用して、Ensemble のページやオプションへのアクセスを制御する方法について説明します。この章は以下の節で構成されています。
Ensemble のアップグレード手順を実行すると、これらの事前定義のリソースとロールがリセットされるため、セキュリティをカスタマイズするための作業は、自身が作成したリソースとロールを構成することのみに限定する必要があります。
概要
Ensemble には、基本的な Caché ロールに加えて、管理ポータルの機能へのアクセスを制御するために使用できる事前定義ロールが含まれています。これらの組み込みロールはほとんどの環境に適合する可能性がありますが、ページや機能へのアクセスをカスタマイズするための新たなロールを追加することもできます。
以下の各節では、Ensemble で事前構築されているセキュリティ構造について説明します。これらの情報に基づいて、現在の環境でユーザをロールにどのように割り当てるのかを決定できます。
Caché のセキュリティに関する詳細は、“Caché セキュリティ管理ガイド” を参照してください。特に、“Caché セキュリティについて” の章の “認証: ユーザ・アクセスの制御” を参照してください。
事前定義 Ensemble リソース
この節では、%Ens_ というプレフィックスで始まる Ensemble の事前定義リソースについて説明します。
事前定義 Ensemble リソースのリストは、管理ポータルの システム, セキュリティ管理, リソース ページで表示できます。
リソースの詳細は、"Caché セキュリティ管理ガイド" の “アセットおよびリソース” を参照してください。
アクティビティを保護する Ensemble リソース
リソース | 説明 |
---|---|
%Ens_ConfigItemRun | 構成項目の開始と停止を制御します。 |
%Ens_DTLTest | データ変換テスト・ユーティリティへのアクセスを許可します。 |
%Ens_Dashboard | Ensemble プロダクション・モニタへのアクセスを許可します。 |
%Ens_Deploy | 導入アクティビティへのアクセスを許可します。 |
%Ens_DeploymentPkg | 導入パッケージの作成を制御します。 |
%Ens_EventLog | イベント・ログへのアクセスを許可します。 |
%Ens_MessageContent | メッセージの内容へのアクセスを許可します。 |
%Ens_MessageDiscard | キューに入れられたメッセージや中断されたメッセージの破棄を制御します。 |
%Ens_MessageEditResend | メッセージの編集と再送信のためのアクセスを許可します。 |
%Ens_MessageHeader | メッセージ・ヘッダ・データへのアクセスを許可します。 |
%Ens_MessageResend | メッセージの再送信のためのアクセスを許可します。 |
%Ens_MessageResubmit | 一時停止メッセージの再送信を制御します。 |
%Ens_MessageSuspend | メッセージの手動中断を制御します。 |
%Ens_MessageTrace | メッセージ・トレースへのアクセスを許可します。 |
%Ens_MsgBank_Dashboard | Ensemble モニタ・ページへのアクセスを許可します。 |
%Ens_MsgBank_EventLog | メッセージ・バンク・イベント・ログへのアクセスを許可します。 |
%Ens_MsgBank_MessageContent | メッセージ・バンク内のメッセージの内容へのアクセスを許可します。 |
%Ens_MsgBank_MessageEditResend | メッセージ・バンクからのメッセージの編集および再送信を許可します。 |
%Ens_MsgBank_MessageHeader | メッセージ・バンクのヘッダ・データへのアクセスを許可します。 |
%Ens_MsgBank_MessageResend | メッセージ・バンクからのメッセージの再送信を許可します。 |
%Ens_MsgBank_MessageTrace | メッセージ・バンク・ビジュアル・トレースへのアクセスを許可します。 |
%Ens_Portal* | 管理ポータル内の Ensemble メニューへのアクセスを許可します。 |
%Ens_ProductionDocumentation | プロダクション・ドキュメントの作成を制御します。 |
%Ens_ProductionRun | プロダクションの開始と停止を制御します。 |
%Ens_Purge | Ensemble データのパージを制御します。 |
%Ens_RuleLog | ルール・ログへのアクセスを許可します。 |
%Ens_TestingService | ビジネス・ホスト・テスト・サービスへのアクセスを許可します。 |
%Ens_ViewFileSystem | ユーザがファイル・システムを表示できるファインダ・ダイアログへのアクセスを許可します。 |
* 特定のネームスペース内で管理ポータル内の Ensemble 機能にアクセスするには、%Ens_Portal リソースに加えて、そのネームスペースのデフォルトのグローバル・データベース・リソースに対する Read 権限が必要です。この要件チェックは、すべての Ensemble ポータル・ページへのアクセスに対して適用されます。
コードとデータを保護する Ensemble リソース
リソース | コード/データ |
---|---|
%Ens._AlertAdministration | 管理対象アラートの管理へのアクセスを許可します。 |
%Ens_Alerts | アラートの構成と管理へのアクセスを許可します。 |
%Ens_ArchiveManager | アーカイブ・マネージャへのアクセスを許可します。 |
%Ens_BPL | BPL へのアクセスを許可します。 |
%Ens_BusinessRules | ビジネス・ルールへのアクセスを許可します。 |
%Ens_Code | すべての Ensemble クラスおよびルーチンへのアクセスを許可します。 |
%Ens_Credentials | Ensemble 資格情報へのアクセスを許可します。 |
%Ens_DTL | DTL へのアクセスを許可します。 |
%Ens_EDISchema | EDI スキーマへのアクセスを許可します。 |
%Ens_EDISchemaAnnotation | HL7 アノテーション・クラスへのアクセスを許可します。 |
%Ens_Jobs | ジョブ・データへのアクセスを許可します。 |
%Ens_LookupTables | 検索テーブルへのアクセスを許可します。 |
%Ens_MsgBank | メッセージ・バンクのステータス情報へのアクセスを許可します。 |
%Ens_MsgBankConfig | メッセージ・バンクの構成へのアクセスを許可します。 |
%Ens_ProductionConfig | プロダクション構成アクティビティへのアクセスを許可します。 |
%Ens_PurgeSchedule | Ensemble パージ・タスクのスケジューリングへのアクセスを許可します。 |
%Ens_Queues | キュー・データへのアクセスを許可します。 |
%Ens_RecordMap | Ensemble レコード・マップへのアクセスを許可します。 |
%Ens_RoutingRules | ルーティング・ルールへのアクセスを許可します。 |
%Ens_Rules | すべての Ensemble ルールへのアクセスを許可します。 |
%Ens_SequenceManager | シーケンス・マネージャへのアクセスを許可します。 |
%Ens_SystemDefaultConfig | システムのデフォルト設定へのアクセスを許可します。 |
%Ens_WorkflowConfig | ワークフロー・ロールとワークフロー・ユーザへのアクセスを許可します。 |
多くの場合は、Ensemble のデフォルトの動作では、包括的なリソース (%Ens_Code など) が使用されます。包括的なリソースは、限定的なリソース (%Ens_BPL など) によって保護されるデータを含む複数のデータ・ソースを保護します。事前定義された Ensemble ロールおよび特権では、このような包括的なリソースが使用されますが、限られた特権が割り当てられた代替のロールを選択することもできます。
事前定義 Ensemble ロール
Ensemble には一連の事前定義ロールも含まれており、これらの先頭には %EnsRole_ 接頭語が付加されています。これらのロールは、開発環境と実動環境の両方で Ensemble インスタンスを適切にセキュリティで保護することを目的としています。以下の説明では、各ロールのメンバの既知のロールの概要と、これらのロールと他の Ensemble ロールとの関係を示しています。
高いスキルを持つ信頼できる Ensemble 管理者向けのロールです。ライブ・システムやテスト・システムでは、このロールの対象となるのは、プロダクションを停止、開始、および構成できる担当者、個別の構成アイテムを停止および開始できる担当者、すべてのログ、メッセージ、およびキューを参照できる担当者、データをパージできる担当者、Ensemble のデフォルトのシステム設定を追加できる担当者などです。このロールの管理者は、ほぼすべての Ensemble 環境管理タスクを実行できますが、アップデートを導入することを除いて、コード・コンポーネントを変更することはできません。
このロールは、Caché 管理ロールとは意図的に区別されており、ユーザに対してどのような Caché レベル特権も付与しません。
%EnsRole_Administrator ロールは %EnsRole_Operator ロールのメンバであるため、このロールのすべての特権も保有しています。
ビジネス・ロジック、データ構造、または中核的な Ensemble コードの開発者向けのロールです。これには、スタジオでのコード記述、スタジオまたは Web インタフェースを使用した DTL と BPL の記述、ルーティング・ルールの開発、およびカスタム・メッセージ・スキーマ (HL7、レコード・マッピング、XML など) の作成が含まれます。さらに、このロールに割り当てられたユーザは多くの管理タスクを実行できます。開発者は、開発インスタンス上でさまざまなオプションを積極的にデバッグおよびテストできる必要があるからです。
デフォルトでは、Ensemble 開発者ロールのメンバはすべてのプログラミング・タスクを実行できるため、DTL、BPL、およびレコード・マップを変更できます。Ensemble では、コードのタイプごとに別個のリソースが用意されているため、カスタム・ロールを作成することで開発領域を区別できます。
%EnsRole_Developer ロールは、%Developer ロールと %EnsRole_WebDeveloper ロールの両方のメンバです。したがって、このロールに割り当てられたユーザは、すべての Caché 開発タスクを実行できると共に、Ensemble Web 開発者タスクも実行できます。
限られた開発能力を持つ担当者向けのロールです。具体的には、このロールに割り当てられたユーザは、管理ポータルの Ensemble メニュー内の開発タスク (BPL、DTL、ルールの定義、レコード・マップの作成など) しか実行できません。このロールは、スタジオやターミナルへのアクセスを許可しません。
このロールは、%EnsRole_RulesDeveloper ロールと %EnsRole_Operator ロールのメンバであるため、このロールのメンバであるユーザは、管理ポータルでデバッグ・タスクを実行できます。
ビジネス・ルールを動的に変更することを許可されたビジネス・アナリスト向けのロールです。このようなロールを必要とするビジネス・プロセスを開発した場合は、少数のユーザに対してそのルールの変更を許可できます。これは管理ロールや開発ロールではありません。
%EnsRole_WebDeveloper は、このロールのメンバです。
Ensemble システム・モニタとプロダクション・モニタを表示するための一般ユーザ向けのロールです。%EnsRole_Operator ロールのユーザによって実行された場合に監査証跡が残るアクションが、この一般ユーザ名を使用して実行された場合は、有効な監査証跡は得られないため、アクセス可能対象は、機密データが参照されるリスクを伴わない一部の情報に制限される必要があります。
特定のプロダクションの日々のステータスを管理する運用スタッフ向けのロールです。このロールに割り当てられたユーザは、現在の構成に対する Read 権限が付与されて、適用されている設定やコードの内容を確認できますが、構成を変更する権限は付与されません。運用スタッフは、インタフェースや該当プロダクションを開始および停止できます。運用スタッフは、メッセージの内容にはアクセスできませんが、問題が生じているメッセージを再送信できます。オペレータは、キューやジョブの情報を表示できると共に、パージ、アラート、資格情報、および検索テーブルの設定を調べることができます。
%EnsRole_Administrator と %EnsRole_WebDeveloper は両方ともこのロールのメンバです。
未割り当てまたは任意のユーザに割り当て済みの管理対象アラートを処理するためのロール。管理対象アラートの処理の詳細は、“マイ管理対象アラートの参照によるアラートでのアクション” を参照してください。
未割り当てまたは現在のユーザに割り当て済みの管理対象アラートを処理するためのロール。 管理対象アラートの処理の詳細は、“マイ管理対象アラートの参照によるアラートでのアクション” を参照してください。
このロールを持つユーザは、メッセージを選択するためおよびメッセージを受信するユーザを指定するために使用されるサブスクリプション条件を制御できます。このロールは、発行と購読のルーティングを制御する管理ポータル・ページへのアクセスを可能にします。発行と購読のメッセージの詳細は、“発行および購読メッセージ・ルーティングの定義” を参照してください。
デフォルトの Ensemble セキュリティ・フレームワークでは、事前定義リソースに対する権限が割り当られて、その結果としてこれらの各ロールの特権が作成されます。お使いのアプリケーションのユーザをこれらの Ensemble ロールに割り当てることも、独自のロールを作成して、Ensemble リソースに対する権限をこれらのロールに割り当てることもできます。Ensemble インスタンスをアップグレードする場合は、アップグレード手順によってデフォルトの Ensemble ロールがリセットされるため、構成変更の対象はユーザが作成したロールのみに限定してください。
次の節で、ロールごとにデフォルトで割り当てられる特権を示します。
事前定義 Ensemble ロールのリストは、管理ポータルの システム, セキュリティ管理, ロール ページで表示できます。
これらのロールは、管理ポータルの Ensemble メニュー内の機能しかカバーしません。各自の環境内のユーザは、追加の Caché ロールを必要とする可能性があります。詳細は、"Caché セキュリティ管理ガイド" の “ロール” を参照してください。
事前定義 Ensemble ロールのデフォルト特権
この節では、Ensemble リソースごとに Ensemble ロールに割り当てられるデフォルト特権を列挙します。
ロール特権を介してリソースへのアクセスを許可する方法は、"Caché セキュリティ管理ガイド" の “特権および許可” を参照してください。
アクティビティ・リソースのロール特権
下の表に、アクティビティ・リソースのロール特権を列挙します。アクセスには使用許可のみが必要です。基礎となるリソースに対するこの許可を使用して、データへのアクセスも決定します。
リソース | %EnsRole _Administrator | %EnsRole _Developer* | %EnsRole _Monitor | %EnsRole _Operator |
---|---|---|---|---|
%Ens_ConfigItemRun | Use | Use | Use | |
%Ens_DTLTest | Use | Use | ||
%Ens_Dashboard | Use | Use | Use | Use |
%Ens_Deploy | Use | |||
%Ens_DeploymentPkg | Use | Use | ||
%Ens_EventLog | Use | Use | Use | |
%Ens_MessageContent | Use | Use | ||
%Ens_MessageDiscard | Use | Use | ||
%Ens_MessageEditResend | Use | Use | ||
%Ens_MessageHeader | Use | Use | Use | |
%Ens_MessageResend | Use | Use | Use | |
%Ens_MessageResubmit | Use | Use | ||
%Ens_MessageSuspend | Use | Use | ||
%Ens_MessageTrace | Use | Use | Use | |
%Ens_MsgBank_Dashboard | Use | Use | Use | Use |
%Ens_MsgBank_EventLog | Use | Use | Use | |
%Ens_MsgBank_MessageContent | Use | Use | ||
%Ens_MsgBank_MessageEditResend | Use | Use | ||
%Ens_MsgBank_MessageHeader | Use | Use | Use | |
%Ens_MsgBank_MessageResend | Use | Use | Use | |
%Ens_MsgBank_MessageTrace | Use | Use | Use | |
%Ens_Portal* | Use | Use | Use | Use |
%Ens_ProductionDocumentation | Use | Use | ||
%Ens_ProductionRun | Use | Use | Use | |
%Ens_Purge | Use | Use | ||
%Ens_RuleLog* | Use | Use | Use | |
%Ens_TestingService | Use | Use | ||
%Ens_ViewFileSystem | Use | Use |
コード・リソースとデータ・リソースのロール特権
下の表に、コード・リソースとデータ・リソースのロール特権を列挙します。Read 権限と Write 権限は、リソースに対して別々のものです。したがって、お使いのアプリケーション・コードではこれら 2 つの権限を使用して、基盤のデータへのアクセス権を決定する必要があります。
スペースの関係で、この表にはすべてのロールに関する情報が含まれていません。その他のロールについては後述します。
リソース | %EnsRole _Administrator | %EnsRole _Developer | %EnsRole _Monitor | %EnsRole _Operator |
---|---|---|---|---|
%Ens_Alerts | Read、Write | Read、Write | Read | |
%Ens_ArchiveManager | Read、Write | |||
%Ens_BPL | ||||
%Ens_BusinessRules | ||||
%Ens_Code | Read | Read、Write | ||
%Ens_Credentials | Read、Write | Read | Read | |
%Ens_DTL | ||||
%Ens_EDISchema | Read | Read、Write | ||
%Ens_Jobs | Read、Write | Read、Write | Read | |
%Ens_LookupTables | Read、Write | Read、Write | Read | |
%Ens_MsgBank | Read、Write | Read | Read | |
%Ens_MsgBankConfig | Read、Write | Read、Write | ||
%Ens_ProductionConfig | Read、Write | Read、Write | Read | |
%Ens_PurgeSchedule | Read、Write | Read | Read | |
%Ens_Queues | Read、Write | Read、Write | Read | |
%Ens_RecordMap | ||||
%Ens_RoutingRules | ||||
%Ens_Rules* | Read、Write | |||
%Ens_SequenceManager | Read、Write | Read、Write | ||
%Ens_SystemDefaultConfig | Read、Write | Read | Read | |
%Ens_WorkflowConfig | Write | Read、Write | Read |
その他のロールには以下の特権が付与されます。
-
%EnsRole_WebDeveloper ロールには %EnsRole_Developer と同じ特権が付与されます。
-
%EnsRole_RulesDeveloper ロールには以下の特権のみが付与されます。
-
%Ens_Portal:U
-
%Ens_RuleLog:U
-
%Ens_Rules:RW
-
ポータル・ページの特権要件
それぞれの管理ポータル・ページには、Ensemble に含まれているセキュリティ・フレームワーク内のデフォルトの特権要件があります。この要件は、目的のページに移動するために [進む] をクリックする場所のすぐ下にあるポータル・メニューの列ビューで表示できます。この要件情報を表示するだけであれば、メニュー項目のラベルではなくメニュー項目名の横をクリックします。
例えば、管理ポータルのEnsemble の [構成する] メニューで [プロダクション] の右横をクリックすると、[システム・リソース] ラベルの下に %Ens_ProductionConfig:READ と表示されます。この情報から、Ensemble, プロダクション構成 ページを表示するには、%Ens_ProductionConfig リソースに対する Read 権限を持つロールのメンバである必要があることがわかります。
カスタム・リソースをポータル・ページに割り当てることもできます。"Caché セキュリティ管理ガイド" の “アセットおよびリソース” の章で “管理ポータルによるカスタム・リソースの使用” を参照してください。
事前定義 Ensemble ロールのデフォルト SQL 特権
管理ポータルの複数の Ensemble ページでは SQL クエリを使用して情報を取得するため、Ensemble ユーザは該当するテーブルに対して この情報を表示する特権を持っている必要があります。この節では、Ensemble で事前定義ロールに SELECT 特権を割り当てて適切なセキュリティを提供する方法を示します。
%EnsRole_Administrator、%EnsRole_Developer、および %EnsRole_WebDeveloper の各ロールは、以下のすべての Ensemble SQL テーブルに対して SELECT 特権を保有しています。
-
Ens.BusinessProcess
-
Ens.BusinessProcessBPL
-
Ens.MessageBody
-
Ens.MessageHeader
-
Ens.StreamContainer
-
Ens.StringContainer
-
EnsLib_DICOM.Document
-
EnsLib_EDI_ASTM.Document
-
EnsLib_EDI_ASTM.SearchTable
-
EnsLib_EDI_EDIFACT.Document
-
EnsLib_EDI_EDIFACT.SearchTable
-
EnsLib_EDI_X12.Document
-
EnsLib_EDI_X12.SearchTable
-
EnsLib_EDI_XML.Document
-
EnsLib_EDI.XML.SearchTable
-
EnsLib_HL7.Message
-
EnsLib_HL7.SearchTable
-
EnsLib_Printing.PrintJob
-
EnsLib_Printing.PrintRequest
-
EnsLib_SQL.Snapshot
-
EnsLib_XML.SearchTable
-
EnsLib_ebXML.Message
-
EnsLib_ebXML.MessageTracking
-
EnsLib_ebXML.MessageWithPayload
-
Ens_Config.Credentials
-
Ens_Enterprise_MsgBank.Log
-
Ens_Enterprise_MsgBank.MessageHeader
-
Ens_Enterprise_MsgBank.Node
-
Ens_Rule.Log
-
Ens_Rule.RuleLog
-
Ens_Util.Calendar
-
Ens_Util.IOLog
-
Ens_Util.Log
-
Ens_Util.Schedule
その他の Ensemble ロールは、以下のテーブルに示すように、Ensemble SQL テーブルのサブセットに対して SELECT 特権を保有しています。
SQL テーブル名 | %EnsRole _RulesDeveloper | %EnsRole _Monitor | %EnsRole _Operator |
---|---|---|---|
Ens.BusinessProcess | SELECT | ||
Ens.BusinessProcessBPL | SELECT | ||
Ens.MessageHeader | SELECT | ||
Ens_Config.Credentials | SELECT | ||
Ens_Enterprise_MsgBank.Log | SELECT | ||
Ens_Enterprise_MsgBank.MessageHeader | SELECT | ||
Ens_Enterprise_MsgBank.Node | SELECT | ||
Ens_Rule.Log | SELECT | SELECT | |
Ens_Rule.RuleLog | SELECT | SELECT | |
Ens_Util.Calendar | SELECT | ||
Ens_Util.Log | SELECT | SELECT | |
Ens_Util.Schedule | SELECT |
Ensemble では、Ens.IsASub ストアド・プロシージャ (メッセージ・ビューワの一部の検索で使用) に対する EXECUTE 特権を %EnsRole_Administrator、%EnsRole_Developer、および %EnsRole_WebDeveloper にも与えています。カスタム・ロールを定義し、ユーザがこのロールを使用してメッセージで検索を実行できるようにするには、この権限をロールまたはユーザに付与する必要があります。特定のロールが Ensemble ネームスペース内でこの権限を持っているかどうかを確認するには、以下の手順を実行します。
-
[システム管理]、[セキュリティ]、[ロール] の順に選択します。
-
ロールを選択します。
-
[SQLプロシージャ] タブを選択します。
-
ドロップダウン・メニューからネームスペースを選択します。
このロールが Ens.IsASub 権限を持っている場合は、Ens.IsASub が EXECUTE 権限を持っているものとして示された状態でリストに表示されます。このロールがこのネームスペース内でこの権限を持っていない場合は、[SQLプロシージャ] タブで次の手順を実行して、このロールにこの権限を付与できます。
-
[プロシージャ追加...] ボタンをクリックします。
-
ドロップダウン・メニューから Ens スキーマを選択します。
-
[利用可能] 列から [IsASub] を選択します。
-
右矢印をクリックして、[IsASub] を [選択済み] 列に追加します。
-
[適用] をクリックし、[閉じる] をクリックします。
この SQL プロシージャ権限をユーザに直接付与することもできます。
Ensemble は、指定されたロールが前述のテーブルに記述されている SELECT 文を実行できるように自動的に権限を付与します。これらの権限は、組み込みのメッセージ・タイプに対して生成されたテーブルについて付与されます。カスタム・メッセージ・タイプを定義する場合は、これらのカスタム・メッセージ・タイプに対して生成されたテーブルについて、同じ権限をこれらのロールに付与する必要があります。
Ensemble セキュリティのカスタマイズ
Ensemble セキュリティのカスタマイズ方法は、"Caché セキュリティ管理ガイド" 内の以下の節を参照してください。
-
“アセットおよびリソース” の章の “管理ポータルによるカスタム・リソースの使用”
-
“ユーザ” の章の “ユーザの作成および編集”
-
“アプリケーション” の章の “Web アプリケーション”