前へ | 次へ | 目次 | 索引 |
11.3 独自のイベントの作成
デフォルト設定では,システムは COM for OpenVMS で生成された DCOM イベントをログに記録します。 COM for OpenVMS イベントを記録する他に,ユーザが作成した COM アプリケーションの COM アプリケーション・イベントをログに記録することもできます。
COM for OpenVMS キットには,Win32 API を使用してアプリケーション・イベントを生成する方法を示すサンプル・コードが含まれています。このサンプル・コードは, Windows NT システムでそのまま使用できます。また, OpenVMS で COM for OpenVMS アプリケーションを作成する指示に従って,このサンプル・コードを正しく作成することもできます (必要なヘッダ・ファイルは DCOM$LIBRARY から取得してください)。これらの手順については, 第 6 章 を参照してください。また,このサンプル・コードには,Wind/U を使用して例を作成するためのリンク手順も示されています。
11.4 OpenVMS Events の問題への対処
イベントを報告するときに発生したエラーは,追跡が困難なことがあります。これは,途中にあるいくつものソフトウェア・レイヤをイベントが通過するからです。ここでは, OpenVMS Events が Windows NT ログに記録されるまでに,他のソフトウェア・レイヤをどのように通過するかについて説明します。
イベント状態ブロックの内容を確認すると,エラーがどこで発生したのかを判断するのに役立ちます。 表 11-1 は,実行しなければならないチェックを (重要な順に) 示しています。
R0 状態 | 状態フィールド値 | チェックするコンポーネント |
---|---|---|
エラー (ビット 0 がクリア) | EVT$L_NT_STATUS フィールドが 0 以外の値である。 | エラーは Advanced Server for OpenVMS の内部で発生している可能性が最も高い。 |
エラー | EVT$L_VMS_STATUS フィールドが 0 以外の値で, EVT$L_NT_STATUS が 0 である。 | エラーは SYS$ACM システム・サービスまたは NT ACME の内部で発生している可能性が最も高い。 |
エラー | EVT$L_VMS_STATUS が 0 で,EVT$L_NT_STATUS が 0 である。 | エラーは SYS$ACM システム・サービスの内部で発生している可能性が最も高い。 |
Win32 API は通常,エラー状態を適切な NT エラー状態コードに変換し, GetLastError Win32 API を介して提供します (イベント API から返された状態は単に一般的なエラーを示します)。 |
認証とは,システムへのアクセスを許可する前に,コンピュータ・システムがユーザの身元を確認する動作です。 ユーザの認証が成功すると,システムはユーザの認可情報を 資格情報の形式でユーザのプロセスにバインドします。システムはこれらの資格情報を使用して,システム・リソースへのアクセスを許可するのか,拒否するのかを判断します。
OpenVMS では,次に示すように,ネイティブ (SYSUAF ベース) と Windows NT 互換の認証および認可機能が提供されます。
OpenVMS がユーザの認証 (ネイティブまたは Windows NT ) に成功すると,ペルソナと呼ぶ構造を使用して,ユーザのネイティブな資格情報がプロセスに結びつけられます。 Windows NT を認証のために使用した場合は, OpenVMS はユーザの Windows NT 資格情報もプロセスに結合します (ペルソナの拡張として)。
12.2 NTA$LOGON の使用による Windows NT 資格情報の取得
NTA$LOGON は NTLM 資格情報を取得するためのユーティリティです。 OpenVMS Registry または COM for OpenVMS 機能にアクセスするために, Windows NT セキュリティを必要とするすべてのプロセスは, NTLM 資格情報を必要とします。
NTA$LOGON に対してユーザ・アカウント名,パスワード,(必要な場合は) ドメイン名を提供しなければなりません。 NTA$LOGON は ACM (Authentication and Credential Management) オーソリティを使用してドメイン・コントローラに連絡をとり, Windows NT アクセス・トークンを取得します。NTA$LOGON は Windows NT 情報とユーザの OpenVMS 資格情報をマージします。
NTA$LOGON の依存関係の詳細と,NTA$LOGON が OpenVMS インフラストラクチャの他の部分とどのように関係するかについては, 第 4.8 節 と 第 4.9 節 (特に ACME サーバと Advanced Server for OpenVMS server) を参照してください。
NTA$LOGON ユーティリティを使用するには,次のいずれかを入力します。
$ RUN SYS$SYSTEM:NTA$LOGON |
ユーザ・アカウント名とパスワードが求められます。
$ NTLOGON :== $NTA$LOGON $ NTLOGON |
コマンド・ラインにパラメータを指定できます。 表 12-1 はコマンド・ライン・パラメータを示しています。パラメータを指定しなかった場合は,必須情報が求められます。
$ MCR NTA$LOGON |
コマンド・ラインにパラメータを指定できます。 表 12-1 はコマンド・ライン・パラメータを示しています。パラメータを指定しなかった場合は,必須情報が求められます。
表 12-1 は NTA$LOGON ユーティリティのコマンド・ライン・パラメータを示しています。
引数 | 値 | 必須/省略可能 |
---|---|---|
P1 | ユーザ・アカウント名。アカウント名は必須であるが,コマンド・ラインに指定しなかった場合は,NTA$LOGON から入力が求められる。 | 省略可能 |
P2 | パスワード。パスワードは必須であるが,コマンド・ラインに指定しなかった場合は,NTA$LOGON から入力が求められる (入力したパスワードは画面に表示されない)。 | 省略可能 |
例 12-1 は,資格情報を取得するための典型的な NTA$LOGON セッションを示しています。
例 12-1 NTA$LOGON セッションの例 |
---|
$ NTLOGON :== $NTA$LOGON $ NTLOGON joesmith Password: |
Windows NT ドメイン名とユーザ・アカウント名では,大文字と小文字が区別されません。NTA$LOGON はすべてのドメイン名とユーザ・アカウント名を大文字に変換します。コマンド・ラインにパスワードを指定すると,DCL はすべての文字を大文字に変換します。ただし,パスワードを引用符 ("") で囲んだ場合は,大文字に変換されません。 |
NTA$LOGON では次の修飾子を使用できますが,これらの修飾子は省略可能です。
DCE$COMMON:[000000]NTA$LOGON.DAT |
DCE$COMMON:[000000]NTA$LOGON.DAT |
/READ_FILE 修飾子と /WRITE_FILE 修飾子は, OpenVMS Registry または COM for OpenVMS 機能にアクセスするために Windows NT 資格情報を取得するための方法が他にないサーバで使用することを目的にしています。 /READ_FILE 修飾子と /WRITE_FILE 修飾子を一般に使用することは望ましくありません。 パスワードをディスクのファイルに書き込んだ後,パスワード・ファイルが不正にアクセスされないようにするために,ファイルは厳重に保護してください。 |
12.2.2 Windows NT 資格情報を取得するための NTA$LOGON の使用例
例 12-2 は,ユーザが NT 資格情報を初めて取得する方法を示しています。
例 12-2 Windows NT 資格情報の初めての取得 |
---|
$ NTLOGON :== $NTA$LOGON $ NTLOGON/LIST ERROR: NtOpenProcessToken() failure: -1073741700 0xc000007c %SYSTEM-E-NOSUCHEXT, no such extension found $ NTLOGON/LOG JOESMITH [Persona #1 NT extension: Account= "JOESMITH" Domain= "NT_DOMAIN" ] Password: |
例 12-3 は,ユーザが Windows NT 資格情報を置換する方法を示しています。
例 12-3 Windows NT 資格情報の置換 |
---|
$ NTLOGON/DELETE $ NTLOGON/OVERRIDE_MAPPING/DOMAIN=OTHER_DOMAIN Username: janebrown Password: |
例 12-4 は,ユーザがパスワードをディスクのファイルに保存する方法を示しています。パスワードは 2 回入力するように求められますが,入力しても画面に表示されません。
例 12-4 ファイルへのパスワードの保存 |
---|
$ NTLOGON :== $NTA$LOGON $ NTLOGON/WRITE_FILE=DEV:[DIR]NTA$LOGON.DAT COM_SERVER Password: Confirm: $ NTLOGON/READ_FILE=DEV:[DIR]NTA$LOGON.DAT/LIST File DEV:[DIR]NTA$LOGON.DAT contains the following records: 02-MAR-1999 16:57:23.20 COM_SERVER |
このファイルを作成した後,DCL コマンド・プロシージャに次のコマンドを追加できます。
$ NTLOGON :== $NTA$LOGON $ NTLOGON/READ_FILE=DEV:[DIR]NTA$LOGON.DAT COM_SERVER |
12.3 ACM (Authentication and Credential Management) オーソリティ
ACM (Authentication and Credential Management) オーソリティは, OpenVMS と Windows NT に対してユーザを認証し,ユーザのセキュリティ・プロファイルを判断します。ACME_SERVER プロセスはこれらの ACM サービスを提供します。ACME_SERVER プロセスは ACME エージェントと呼ぶプラグイン・モジュールを使用します。 ACME エージェントは,認証要求,問い合わせ要求,イベント要求への応答などの実際の作業を行います。
OpenVMS ACME エージェント (VMS$VMS_ACMESHR.EXE) は, OpenVMS ネイティブ・サービスを提供します。 MSV1_0 ACME エージェント (PWRK$MSV1_0_ACMESHR.EXE, Advanced Server for OpenVMS 製品のコンポーネント) は, Windows NT 接続サービスを提供します。
MSV1_0 ACME エージェントは Windows NT 接続サービス要求を NTA$LOGON および SSPI/NTLM から,クラスタ内の 1 つ以上のシステムで稼動している Advanced Server for OpenVMS プロセスに転送します。 PWRK$ACME_SERVER 論理名には,MSV1_0 ACME が要求を転送する先のクラスタ・ノード名のリストを含むことができます。各名前はカンマで区切ります。 Advanced Server for OpenVMS プロセスを 1 つ以上のクラスタ・ノードで実行し,ノード名を PWRK$ACME_SERVER 論理名に含むと,MSV1_0 ACME エージェントは,接続が中断されたときに,要求を自動的にフェールオーバできます。論理名が定義されていない場合は,デフォルトでローカル・マシン名に設定されます。
ACME_SERVER プロセスは,RPC または COM for OpenVMS を実行するどのシステムにも存在しなければなりません。しかし, Advanced Server for OpenVMS プロセスは,クラスタ内の 1 つのノードにだけ存在すれば十分です。
12.3.1 OpenVMS での Windows NT 認証
ACME_SERVER は要求された Windows NT ペルソナ拡張情報も含めて,完全な OpenVMS ペルソナを呼び出しプロセスに返すので, VMS ACME エージェントは次の規則を適用します。
前へ | 次へ | 目次 | 索引 |