C 用のイベント API
イベント API を使用すると、カスタム イベント ハンドラを作成できます。イベント API を使用して、stmndr は外部のソース、プロバイダ、またはアプリケーションを使用してイベントをログ記録できます。その後、これらの他のソース、プロバイダ、またはアプリケーションを通してログ記録された情報にアクセスできます。stmndr アクティビティの管理者にアラートするためのアプリケーションを構築できます。たとえば、監査サーバが開始するか、誰かが新規ポリシーを作成したときにイベント ハンドラは管理者に電子メールを送信できます。
sm1252sp1jjp
イベント API を使用すると、カスタム イベント ハンドラを作成できます。イベント API を使用して、
CA Single Sign-on
は外部のソース、プロバイダ、またはアプリケーションを使用してイベントをログ記録できます。その後、これらの他のソース、プロバイダ、またはアプリケーションを通してログ記録された情報にアクセスできます。CA Single Sign-on
アクティビティの管理者にアラートするためのアプリケーションを構築できます。たとえば、監査サーバが開始するか、誰かが新規ポリシーを作成したときにイベント ハンドラは管理者に電子メールを送信できます。イベント API には、ポリシー サーバへのローカル アクセス タイプがあります。
2
イベント API セットアップ
各 イベント ハンドラは、イベント API プロバイダ インターフェースをサポートする共有ライブラリのインスタンスです。カスタム イベント ハンドラをサポートするには、共有ライブラリを構築する必要があります。
以下のいずれかの場所に共有ライブラリをインストールします。
- UNIX プラットフォームでは、CA Single Sign-onlib ディレクトリ
- Windows プラットフォームでは、CA Single Sign-onbin ディレクトリ
共有ライブラリは以下のエントリ ポイントをエクスポートする必要があります。
- SmEventInit()
- SmEventRecord()
- SmEventRelease()
イベント ハンドラを構築するには、SmEventApi.h ヘッダ ファイルを含めます。
#include "SmEventApi.h"
イベント プロバイダ構造
以下の表は、イベント プロバイダ API 関数と共に使用される構造定義のリストを示しています。
構造 | 説明 |
アクセス イベントに関する情報が含まれます。 | |
Entitlement Management Services(EMS)イベントに関する情報が含まれます。EMS イベントは、ディレクトリ オブジェクト上で実行されたアクションから生成されます。 | |
オブジェクト イベントに関する情報が含まれます。 | |
システム イベントに関する情報が含まれます。 |
SmLog_Access_t
アクセス イベントに関する情報が含まれます。
構文
typedef struct SmLog_Access_s{long nVersion;long nCurrentTime;Sm_Api_Reason_t nReason;char* szAgentName;char* szSessionId;char* szClientIp;char* szUserName;char* szDomainOid;char* szRealmName;char* szRealmOid;char* szAuthDirName;char* szAuthDirServer;char* szAuthDirNamespace;char* szServer;char* szResource;char* szAction;char* szTransactionId;char* szStatusMsg;char* szDomainName;char* szImpersonatorName;char* szImpersonatorDirName;} SmLog_Access_t;
フィールド | 説明 |
nVersion
| ポリシー サーバのバージョン番号。 |
nCurrentTime
| イベントが発生したポリシー サーバ時間(GMT)。 |
nReason
| 理由識別子が含まれます。 |
szAgentName
| エージェントの名前です。 |
szSessionId
| セッション ID を追跡します。 |
szClientIp
| クライアントの IP アドレス。 |
szUserName
| ユーザまたは管理者の完全な識別名。 |
szDomainOid
| ドメイン オブジェクトのオブジェクト識別子。 |
szRealmName
| リソースが保護されているレルムの名前。 |
szRealmOid
| レルム オブジェクトに対するオブジェクト識別子。 |
szAuthDirName
| ディレクトリの名前。 |
szAuthDirServer
| ユーザ コンテキストが確立された CA Single Sign-on ユーザ ディレクトリのディレクトリ サーバ。 |
szAuthDirNamespace
| LDAP、WinNT または ODBC などのディレクトリ ネームスペース。 |
szServer
| リソースを保持するサーバの名前。 |
szResource
| リソースの名前。 |
szAction
| リソース上で実行されるアクションのタイプ。Web リソースにアクセスする場合の典型的なアクションは GET です。 |
szTransactionId
| エージェントとポリシー サーバ間のトランザクションの識別子。エージェントはこの ID を設定し、ポリシー サーバがそれをログ記録します。 エージェントがポリシー サーバに対して要求を発行する場合、ID を要求と関連付けます。エージェントは、このような要求を多く発行する可能性があるためポリシー サーバからの情報を元の要求と一致するために ID を使用します。 |
szStatusMsg
| ステータス メッセージ。 |
szImpersonatorName
| インパーソネータの名前を指定します。 進行中のインパーソネートされたセッションがない場合、NULL に設定されます。 |
szDomainName
| ドメインの名前を指定します。 |
szImpersonator DirName
| インパーソネータを認証するのに使用されるユーザ ディレクトリの名前を指定します。 進行中のインパーソネートされたセッションがない場合、NULL に設定されます。 |
SmLog_EMS_t
Entitlement Management Services(EMS)イベントに関する情報が含まれます。EMS イベントは、ディレクトリ オブジェクト上で実行されたアクションから生成されます。
構文
typedef struct SmLog_EMS_s{long nVersion;long nCurrentTime;char* szUserName;char* szSessionId;char* szDirName;char* szObjName;char* szObjPath;char* szObjClass;char* szOrgName:char* szRoleName;int szFieldDesc;char* szStatusMsg;} SmLog_EMS_t;
フィールド | 説明 |
nVersion
| ポリシー サーバのバージョン番号。 |
nCurrentTime
| イベントが発生したポリシー サーバ時間(GMT)。 |
szUserName
| ユーザが管理者の場合、EMS イベントを開始した管理者の ID。イベントがエンドユーザ イベントの場合、ユーザ名は Registration です。 |
szSessionID
| EMS サービス セッション ID。 |
szDirName
| EMS のイベントによって影響を受ける CA Single Sign-on ディレクトリの名前。 |
szObjName
| このイベントによってターゲットにされるオブジェクトの名前。 |
szObjPath
| オブジェクトの完全な識別名。 |
szObjClass
| オブジェクトのクラス名。 |
szOrgName
| オブジェクトの組織の名前。 |
szRoleName
| オブジェクトが関連付けられるロールの名前(ロールが含まれるイベントに対してのみ)。 |
szFieldDesc
| イベントの説明。 |
szStatusMsg
| ステータス メッセージ。 |
SmLog_Obj_t
オブジェクト イベントに関する情報が含まれます。
構文
typedef struct SmLog_Obj_s{long nVersion;long nCurrentTime;char* szUserName;char* szSessionId;char* szDomainOid;char* szObjName;char* szObjOid;char* szFieldDesc;char* szStatusMsg;} SmLog_Obj_t;
フィールド | 説明 |
nVersion
| ポリシー サーバのバージョン番号。 |
nCurrentTime
| イベントが発生したポリシー サーバ時間(GMT)。 |
szUserName
| イベントをトリガしたユーザの名前。 |
szSessionId
| セッション ID を追跡します。 |
szDomainOid
| ドメイン オブジェクトに対するオブジェクト識別子。 |
szObjName
| オブジェクトの名前。 |
szObjOid
| オブジェクトのオブジェクト識別子。 |
szFieldDesc
| ユーザ DN。 |
szStatusMsg
| ステータス メッセージ。 |
SmLog_System_t
システム イベントに関する情報が含まれます。
構文
typedef struct SmLog_System_s{long nVersion;long nCurrentTime;char* szName;char* szIpAddress;int nIpPort;char* szMsg;} SmLog_System_t;
フィールド | 説明 |
nVersion
| ポリシー サーバのバージョン番号。 |
nCurrentTime
| イベントが発生した時間。 |
szName
| クライアント、データベースまたはディレクトリの名前。 |
szIpAddress
| クライアントの IP アドレス。 |
nIpPort
| クライアントが通信するポート番号。 |
szMsg
| イベントに対する文字列メッセージを受信するバッファ。 |
イベント関数宣言
以下の表は、イベント API で使用される関数のリストを示しています。共有ライブラリはこれらのエントリ ポイントをエクスポートする必要があります。
関数定義 | 説明 |
SmEventInit() | イベント ハンドラが自身の初期化手順を実行できるように、ポリシー サーバによって呼び出されます。 |
SmEventRecord() | イベントが示される場合にポリシー サーバによって呼び出されます。 |
SmEventRelease() | イベント ハンドラが自身のランダウン手順を実行できるように、ポリシー サーバによって呼び出されます。 |
SmEventInit()
この関数は、イベント プロバイダが自身の初期化手順を実行するように、ポリシー サーバによって呼び出されます。この呼び出しは、プロバイダが最初にロードされるときに一度実行されます。
構文
int SM_EXTERN SmEventInit();
戻り値
成功する場合は 1、失敗した場合は 0 を返します。
SmEventRecord()
この関数は、イベントが示される場合にポリシー サーバによって呼び出されます。
構文
void SM_EXTERN SmEventRecord (const int nCategoryType,const int nCategory,const int nEventId,void* pData);
パラメータ | I/O | 説明 |
nCategoryType
| I | ログ記録されているイベントのタイプ。以下のいずれかの有効な値です。 SmLog_Access SmLog_EMS SmLog_Obj SmLog_System |
nCategory
| I | イベント カテゴリ。このパラメータ表の後に有効なイベント カテゴリのリストが示されます。 |
nEventID
| I | イベント。 |
nCategory
パラメータに対する有効な値は以下のとおりです。SmLogAccessCat_Admin SmLogAccessCat_Affiliate SmLogAccessCat_Auth SmLogAccessCat_Az SmLogEmsCat_DirectoryAdmin SmLogEmsCat_DirectorySession SmLogEmsCat_DirectoryUser SmLogEmsCat_EventPostprocess SmLogEmsCat_EventPreprocess SmLogObjCat_ActiveExpr SmLogObjCat_Admin SmLogObjCat_Agent SmLogObjCat_AgentGroup SmLogObjCat_AgentKey SmLogObjCat_Auth SmLogObjCat_AuthAzMap SmLogObjCat_CertMap SmLogObjCat_Domain SmLogObjCat_KeyManagement SmLogObjCat_ManagementCommand SmLogObjCat_ODBCQuery SmLogObjCat_PasswordPolicy SmLogObjCat_Policy SmLogObjCat_PolicyLink SmLogObjCat_Property | SmLogObjCat_PropertyCollection SmLogObjCat_PropertySection SmLogObjCat_Realm SmLogObjCat_Response SmLogObjCat_ResponseAttr SmLogObjCat_ResponseGroup SmLogObjCat_Root SmLogObjCat_RootConfig SmLogObjCat_Rule SmLogObjCat_RuleGroup SmLogObjCat_Scheme SmLogObjCat_SelfReg SmLogObjCat_TaggedString SmLogObjCat_UserDirectory SmLogObjCat_UserPolicy SmLogObjCat_Variable SmLogObjCat_VariableType SmLogObjCat_Vendor SmLogObjCat_VendorAttr SmLogSystemCat_Acct SmLogSystemCat_Admin SmLogSystemCat_Auth SmLogSystemCat_Az SmLogSystemCat_Combined SmLogSystemCat_System |
SmEventRelease()
この関数は、イベント ハンドラが自身のランダウン手順を実行するように、ポリシー サーバによって呼び出されます。この呼び出しは、
CA Single Sign-on
がシャットダウンするときに 1 回実行されます。構文
void SM_EXTERN SmEventRelease();
イベント ログ
Single Sign-On
は、明確に定義されたデータを含む以下のタイプのイベントをログ記録します。- アクセス イベント(構造 SmLog_Access_t に関連する)。
- EMS イベント(構造 SmLog_EMS_t に関連する)。
- オブジェクト イベント(構造 SmLog_Obj_t に関連する)。
- システム イベント(構造 SmLog_Obj_t に関連する)。