Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › IOCSPAdmin

IOCSPAdmin

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID322e830d-67db-4fe9-9577-4596d9f09294継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

Online Certificate Status Protocol (OCSP) レスポンダーサーバーを管理する機能を提供します。

解説(Remarks)

次の表は、Microsoft OCSP アーキテクチャで使用されるさまざまなプロパティを整理したものです。

アーキテクチャ スコープ 情報の種類
OCSPServiceProperties すべての CA に対するレスポンダーサービスの一般的な動作を制御します。
  • プロキシ
  • 監査
  • セキュリティ構成
OCSPCAConfigurationCollection 特定の CA に対する応答動作を制御します。
  • CA
  • ハッシュアルゴリズム
  • 証明書の署名
  • 失効プロバイダーの構成
ProviderProperties 特定の OCSPCAConfiguration に固有の失効情報プロバイダーの動作を制御します。
  • 証明書失効リスト (CRL)
  • 更新間隔

メソッド 10

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_OCSPServiceProperties(IOCSPPropertyCollection** ppVal)

OCSPPropertyCollection オブジェクトのインスタンスを取得します。このオブジェクトは、Online Certificate Status Protocol (OCSP) レスポンダーサービスの属性を表します。

ppValIOCSPPropertyCollection**outOCSP レスポンダーサービスのプロパティコレクションを受け取るインターフェイスポインタへのポインタである。

解説(Remarks)

次の表は、OCSP サービスプロパティで指定できる Name-Value のペアの一覧です。

Name Value
LogLevel LogLevelValue は、次の定数のいずれかである必要があります。
定数: CERTLOG_MINIMAL
DWORD: 0
定数: CERTLOG_TERSE
DWORD: 1
定数: CERTLOG_ERROR
DWORD: 2
定数: CERTLOG_WARNING
DWORD: 3 (既定値)
定数: CERTLOG_VERBOSE
DWORD: 4
定数: CERTLOG_EXHAUSTIVE
DWORD: 5
AuditFilter AuditFilterValue には、次の DWORD 値の任意のビットごとの組み合わせを指定できます。
説明: OCSP サービスの開始/停止を監査する
DWORD: 0x1
説明: OCSP 構成への変更
DWORD: 0x2
説明: OCSP に送信された要求
DWORD: 0x4
説明: OCSP セキュリティ設定への変更
DWORD: 0x8
ArrayController ArrayControllerValue は、OCSP アレイ構成のアレイコントローラーとして動作する OCSP サーバーのコンピューター名を表す文字列である必要があります。
ArrayMembers ArrayMembersValue には、OCSP アレイ構成に含まれる OCSP サーバーのコンピューター名を表す複数行の文字列を指定できます。
EnrollPollInterval EnrollPollIntervalValue は、OCSP サービス証明書の登録 (エンロール) 試行間隔を時間数で表す 0 から 24 までの DWORD 値である必要があります。この間隔は、テンプレートの変更や有効期間の変更保留を確認するために、サービスが対象証明書の状態をどのくらいの頻度でチェックするかを決定します。サービスが変更を検出すると、新しい証明書の登録 (エンロール) を試みます。
vtbl 8 HRESULT get_OCSPCAConfigurationCollection(IOCSPCAConfigurationCollection** pVal)

OCSPCAConfigurationCollection オブジェクトのインスタンスを取得します。このオブジェクトは、Online Certificate Status Protocol (OCSP) レスポンダーサービスが状態要求を処理できる証明機関 (CA) 証明書の集合を表します。

pValIOCSPCAConfigurationCollection**outOCSP の CA 構成コレクションを受け取るインターフェイスポインタへのポインタである。
vtbl 9 HRESULT GetConfiguration(LPWSTR bstrServerName, VARIANT_BOOL bForce)

Online Certificate Status Protocol (OCSP) レスポンダーサーバーに接続し、サーバーから取得した構成情報で OCSPAdmin オブジェクトを初期化します。

bstrServerNameLPWSTRinレスポンダーサーバー名を含む文字列。
bForceVARIANT_BOOLin
C++ 実行中の OCSP レスポンダーサービスのインスタンスが見つからないときに、サーバーのレジストリからレスポンダー構成を読み取ることを呼び出し元が望む場合は VARIANT_TRUE。それ以外の場合は VARIANT_FALSE
VB 実行中の OCSP レスポンダーサービスのインスタンスが見つからないときに、サーバーのレジストリからレスポンダー構成を読み取ることを呼び出し元が望む場合は True。それ以外の場合は False

戻り値

VB

メソッドが成功した場合は S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

メソッドが HRESULT_FROM_WIN32(ERROR_INVALID_STATE) を返す場合、構成は既に初期化されています。

メソッドが E_INVALIDARG を返す場合、pVal パラメーターが NULL に設定されていました。

解説(Remarks)

次の表は、bForce パラメーターの値がメソッド呼び出しに与える影響を示しています。

対象サーバー上の OCSP レスポンダーサービス bForceVARIANT_TRUE の場合 bForceVARIANT_FALSE の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。

次の表は、bForce パラメーターの値がメソッド呼び出しに与える影響を示しています。

対象サーバー上の OCSP レスポンダーサービス bForceTrue の場合 bForceFalse の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。

このメソッドは、実行中の OCSP レスポンダーサービスのインスタンスから構成を読み取ろうとしますが、サービスが実行されていない場合やアクセスできない状態にある場合は読み取れないことがあります。呼び出し元は、実行中のインスタンスが見つからない場合にサーバーのレジストリから構成を読み取るようにメソッドに指示できます。

特定の OCSPAdmin オブジェクトに対してこのメソッドを 2 回以上呼び出そうとすると、メソッドは失敗します。OCSPAdmin の各インスタンスは 1 つのレスポンダーサーバーに対応します。OCSP レスポンダーサーバーのアレイ内の別のサーバーに接続するには、新しい OCSPAdmin オブジェクトのインスタンスを作成してください。

vtbl 10 HRESULT SetConfiguration(LPWSTR bstrServerName, VARIANT_BOOL bForce)

レスポンダーサービスを構成の変更で更新します。

bstrServerNameLPWSTRinレスポンダーサービス名を含む文字列。
bForceVARIANT_BOOLin
C++ サービスがオフラインまたは使用不可のときにメソッドがレスポンダーサービスのレジストリを更新する必要がある場合は VARIANT_TRUE。それ以外の場合は VARIANT_FALSE。サービスがオフラインまたは使用不可で、bForce パラメーターが VARIANT_TRUE の場合、SetConfiguration はレスポンダーサービスのレジストリを直接更新します。
VB サービスがオフラインまたは使用不可のときにメソッドがレスポンダーサービスのレジストリを更新する必要がある場合は True。それ以外の場合は False。サービスがオフラインまたは使用不可で、bForce パラメーターが True の場合、SetConfiguration はレスポンダーサービスのレジストリを直接更新します。

戻り値

VB

メソッドが成功した場合は S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

解説(Remarks)

次の表は、bForce パラメーターの値がメソッド呼び出しに与える影響を示しています。

対象サーバー上の OCSP レスポンダーサービス bForceVARIANT_TRUE の場合 bForceVARIANT_FALSE の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。

次の表は、bForce パラメーターの値がメソッド呼び出しに与える影響を示しています。

対象サーバー上の OCSP レスポンダーサービス bForceTrue の場合 bForceFalse の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。
vtbl 11 HRESULT GetMyRoles(LPWSTR bstrServerName, INT* pRoles)

指定された Online Certificate Status Protocol (OCSP) レスポンダーサーバー上のユーザーに対する特権ロールのアクセスマスクを取得します。

bstrServerNameLPWSTRinレスポンダーサーバー名を含む文字列。
pRolesINT*out32 ビットのアクセスマスクへのポインター。

戻り値

C++

メソッドが成功した場合は S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

VB

32 ビットのアクセスマスク。

解説(Remarks)

OCSP レスポンダーサーバーは、アクセス特権ロールに対して次のマスクを定義します。

定数 C++ の値 VB Script の値 説明
CA_ACCESS_ADMIN 0x001 &H1 CA 管理者
CA_ACCESS_READ 0x100 &H100 CA への読み取り専用アクセス
CA_ACCESS_ENROLL 0x200 &H200 CA への登録 (エンロール) アクセス

マスクに応じてユーザーが持ちうる特権の例:

vtbl 12 HRESULT Ping(LPWSTR bstrServerName)

Online Certificate Status Protocol (OCSP) レスポンダーサービスとの DCOM 接続をテストします。

bstrServerNameLPWSTRinOCSP レスポンダーサーバー名を含む文字列。
vtbl 13 HRESULT SetSecurity(LPWSTR bstrServerName, LPWSTR bstrVal)

Online Certificate Status Protocol (OCSP) レスポンダーサーバーのセキュリティ記述子情報を更新します。

bstrServerNameLPWSTRinレスポンダーサーバー名を含む文字列。
bstrValLPWSTRinレスポンダーサーバーに割り当てるセキュリティ記述子情報を含む文字列。

解説(Remarks)

このメソッドは ConvertStringSecurityDescriptorToSecurityDescriptor 関数を呼び出して、Security Descriptor String Format の文字列からセキュリティ記述子を作成します。

vtbl 14 HRESULT GetSecurity(LPWSTR bstrServerName, LPWSTR* pVal)

Online Certificate Status Protocol (OCSP) レスポンダーサーバーのセキュリティ記述子情報を取得します。

bstrServerNameLPWSTRinレスポンダーサーバー名を含む文字列。
pValLPWSTR*outセキュリティ記述子 (SDDL 形式) を受け取る文字列ポインタである。

戻り値

C++

メソッドが成功した場合は S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

VB

セキュリティ記述子情報。

解説(Remarks)

このメソッドは ConvertSecurityDescriptorToStringSecurityDescriptor 関数を呼び出して、Security Descriptor String Format の文字列値を作成します。

vtbl 15 HRESULT GetSigningCertificates(LPWSTR bstrServerName, VARIANT* pCACertVar, VARIANT* pVal)

指定された証明機関 (CA) 証明書について、レスポンダーサーバー上で利用可能な署名証明書を取得します。

bstrServerNameLPWSTRinレスポンダーサーバー名を含む文字列。
pCACertVarVARIANT*in署名証明書を取得する対象の CA 証明書。
pValVARIANT*out署名に利用可能な証明書群を受け取る VARIANT へのポインタである。

戻り値

C++

メソッドが成功した場合は S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

VB

利用可能な署名証明書。

解説(Remarks)

各署名証明書は次のプロパティを持ちます。

vtbl 16 HRESULT GetHashAlgorithms(LPWSTR bstrServerName, LPWSTR bstrCAId, VARIANT* pVal)

ハッシュアルゴリズム名の一覧を取得します。Online Certificate Status Protocol (OCSP) レスポンダーサーバーは、指定された証明機関 (CA) 構成に対する OCSP 応答の署名にこれらの名前を使用します。

bstrServerNameLPWSTRinレスポンダーサーバー名を含む文字列。
bstrCAIdLPWSTRinOCSPCAConfigurationIdentifier を含む文字列。
pValVARIANT*outレスポンダーサーバーが応答の署名に使用できるハッシュアルゴリズムの一覧。

戻り値

C++

メソッドが成功した場合は S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

VB

レスポンダーサーバーが応答の署名に使用できるハッシュアルゴリズムの一覧。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IOCSPAdmin "{322E830D-67DB-4FE9-9577-4596D9F09294}"
#usecom global IOCSPAdmin IID_IOCSPAdmin "{D3F73511-92C9-47CB-8FF2-8D891A7C4DE4}"
#comfunc global IOCSPAdmin_get_OCSPServiceProperties          7 sptr
#comfunc global IOCSPAdmin_get_OCSPCAConfigurationCollection  8 sptr
#comfunc global IOCSPAdmin_GetConfiguration                   9 wstr,int
#comfunc global IOCSPAdmin_SetConfiguration                   10 wstr,int
#comfunc global IOCSPAdmin_GetMyRoles                         11 wstr,var
#comfunc global IOCSPAdmin_Ping                               12 wstr
#comfunc global IOCSPAdmin_SetSecurity                        13 wstr,wstr
#comfunc global IOCSPAdmin_GetSecurity                        14 wstr,var
#comfunc global IOCSPAdmin_GetSigningCertificates             15 wstr,var,var
#comfunc global IOCSPAdmin_GetHashAlgorithms                  16 wstr,wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。