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 LogLevel の Value には、次の定数のいずれかを指定する必要があります。
定数: 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 AuditFilter の Value には、次の DWORD 値をビットごとに組み合わせた任意の値を指定できます。
説明: OCSP サービスの開始/停止を監査する
DWORD: 0x1
説明: OCSP 構成への変更
DWORD: 0x2
説明: OCSP に送信された要求
DWORD: 0x4
説明: OCSP セキュリティ設定への変更
DWORD: 0x8
ArrayController ArrayController の Value には、OCSP 配列構成のアレイ コントローラーとして機能する OCSP サーバーのコンピューター名を表す文字列を指定する必要があります。
ArrayMembers ArrayMembers の Value には、OCSP 配列構成に含まれる OCSP サーバーのコンピューター名を表す複数行の文字列を指定できます。
EnrollPollInterval EnrollPollInterval の Value には、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 レスポンダー サービス bForce が VARIANT_TRUE の場合 bForce が VARIANT_FALSE の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーのレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。

メソッド呼び出しに対する bForce パラメーター値の影響を次の表に示します。

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

このメソッドは、実行中の 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 レスポンダー サービス bForce が VARIANT_TRUE の場合 bForce が VARIANT_FALSE の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーのレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。

メソッド呼び出しに対する bForce パラメーター値の影響を次の表に示します。

対象サーバー上の OCSP レスポンダー サービス bForce が True の場合 bForce が False の場合
実行中 サービスから構成を取得します。 サービスから構成を取得します。
停止中 サーバーのレジストリから構成の取得を試みます。この試行が失敗した場合はエラーを返します。 エラーを返します。
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レスポンダー サーバー名を含む文字列です。
bstrCAIdLPWSTRinOCSPCAConfiguration の Identifier を含む文字列です。
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 不要)。