バージョン 6.3.3
 —  オペレーション  —

NaturalX でのセキュリティ

このドキュメントでは、次のトピックについて説明します。

NaturalX の設定方法については、「Windows 上での DCOM コンフィグレーション」を参照してください。


概要

分散環境では、セキュリティは特に重要なトピックです。 サーバーでは、サーバーが提供するサービスを未認可クライアントに使用されないことを確実にする必要があります。 クライアントでは、想定のサーバーに接続され、そのサーバーがクライアントの権限を誤用しないことを確実にする必要があります。

DCOM のコンテキストでは、セキュリティは 2 つのレベルに区別できます。

多くの場合は、権限の定義にはアクティベーションセキュリティで十分です。 このセキュリティレベルは、Windows セキュリティを基準に DCOM 自体によってサポートされます。 必要な権限はシステムレジストリで管理されます。 詳細については、「アクティベーションセキュリティ」を参照してください。

その他の場合は、各メソッドのレベルで権限をより詳細に制御する必要があります。 このセキュリティレベルは、レジストリ定義では管理できません。 これは、Natural Security の支援で NaturalX によって提供されます。 詳細については、「コールセキュリティ」を参照してください。

Top of page

アクティベーションセキュリティ

このセクションでは、次のトピックについて説明します。

アプリケーション

アクティベーションセキュリティは、サーバープロセスの開始とアクセスを許可されるユーザーを制御します。 これは、基本的に、各クラスに対して権限を定義することによって行われます。 ただし、実用的な理由と、管理の労力を削減するために、権限は通常はアプリケーションレベルで管理されます。 システムレジストリでは、各アプリケーションは AppID によって定義されます。 AppID は、アプリケーションの権限が管理されるキーです。 これらの権限を管理するために、各 DCOM 対応プラットフォームでは DCOMCNFG ツールを使用できます。 このツールは、他の DCOM アプリケーションと同様に、NaturalX アプリケーションでも使用できます。

NaturalX での AppID の意味を理解するために、NaturalX がクラスをどのようにアプリケーションに編成するかを思い出してください(「サーバー ID の編成」を参照)。 Natura パラメータ COMSERVERID を使用して、特定の NaturalX サーバーに名前を付けることができます。 COMSERVERID で指定した値で Natural が起動された場合は、この Natural セッション中に登録されるすべての Natural クラスはこのサーバー ID で登録されます。 同時に、それらはすべてシステムレジストリで同じ AppID キーで登録されます。 これは、server-ID の複数の値がそれぞれ、システムレジストリで異なる AppID キーに対応していることを意味します。

例えば、Natural がサーバー ID "Employees" で実行されているとします。 この Natural セッション中に登録されたすべてのクラスは、"Employees" アプリケーションを形成します。 REGISTER コマンドは、それらのクラスをすべて 1 つの AppID キー("Employees" アプリケーションに対応)で登録します。

レジストリ使用の権限

アクティベーションセキュリティの設定には、レジストリキー LaunchPermissionsAccessPermissionsDefaultLaunchPermissions、および DefaultAccessPermissions が関連します。 キー DefaultLaunchPermissions および DefaultAccessPermissions は、レジストリにそれぞれ 1 つだけ存在し、個々の権限が定義されていないすべてのアプリケーションの権限を定義します。 キー LaunchPermissions および AccessPermissions は、各アプリケーション(各 AppID)に対して存在し、各アプリケーションの権限を定義します。

Top of page

コールセキュリティ

このセクションでは、次のトピックについて説明します。

Natural Security 使用の権限

コールセキュリティは、クラスが提供する各メソッドの使用の許可されるユーザーを制御します。 このレベルの権限は、レジストリ定義では管理できません。 コールセキュリティは、Natural Security の支援で NaturalX によって提供されます。

コールセキュリティがどのように Natural Security で達成されるかを理解するには、NaturalX のクラスがどのように実装されるかを考えてください。各クラスはクラスタイプの Natural モジュールであり、各メソッドはサブプログラムタイプの Natural モジュールです。 すべての Natural モジュールについて、Natural Security で定義された権限で実行を制御できます。 これを行う方法については、『Natural Security』ドキュメントを参照してください。

クラスモジュールを使用してオブジェクトが作成されるとき、およびメソッドサブプログラムがメソッド呼び出しに応答して実行されるときは、クラスモジュールとメソッドサブプログラムに対して定義された権限が評価されます。 次の規則が適用されます。クラスモジュールの実行を許可されているユーザーが、そのクラスのオブジェクトの作成を許可されます。メソッドサブプログラムの実行を許可されているユーザーが、対応するメソッドの使用を許可されます。

必要な権限チェックを実行するために、NaturalX サーバーはクライアントのユーザー ID を認識している必要があります。 ユーザー ID を確実に信頼できる必要もあります。 したがって、コールセキュリティを使用するには、以下の要件を満たしている必要があります。

上記の要件が満たされている場合は、要求を処理する NaturalX サーバーがクライアントのユーザー ID を取得し、それを Natural システム変数 *USER に挿入します。 その後、要求は、必要なすべての Natural Security 権限チェックを含めて、このユーザー ID で実行されます。 要求が処理されると、Natural システム変数 *USER は NaturalX サーバーの起動時の値に戻ります。

要件のいずれかが満たされていない場合は、*USER は要求の実行中には変更されません。 その後、要求は、NaturalX サーバーを起動したユーザー ID で実行されます。

*USER に加えて、システム変数 *NET-USER も要求の実行中に取得されます。 Windows ドメインに属しているクライアントのドメイン名で修飾されたユーザー ID が含まれており、追加のアプリケーション固有セキュリティチェックに使用できます。

セキュリティのヒントと提案

Natural Security で NaturalX を使用するときは、以下の点を考慮してください。

Top of page