Sm_AgentApi_Login()

この関数は、セッション ログインおよびセッション検証を実行します。
casso127jpjp
この関数は、セッション ログインおよびセッション検証を実行します。
ポリシー サーバは、セッション ログイン中にユーザ認証情報を認証し、セッション検証中にセッション仕様を検証します。ポリシー サーバがセッション ログインを実行するかセッション検証を実行するかは、以下のように、セッション仕様が Sm_AgentApi_Session_t 構造体の
lpszSessionSpec
フィールドに定義されているかどうかによります。
  • セッション仕様が存在する場合、ポリシー サーバはセッション検証を実行します。セッション検証中、
    lpszSessionSpec
    フィールドに特定の長さがある場合、ポリシー サーバは以下のアクションを実行します。
    • Sm_AgentApi_Session_t の
      nMaxTimeout
      フィールドに基づき、セッションが期限切れになっていないことを確認します。
    • IP アドレスを確認します。
    • ユーザがユーザ ディレクトリ存在して、無効化されていないことを確認します。
  • セッション仕様が存在しない場合、ポリシー サーバはセッション ログインを実行します。セッション ログイン中、セッション ID が指定されている場合には、認証成功時にこれがセッション ID として使用されます。
構文
int SM_EXTERN Sm_AgentApi_Login (
   const void*                            pHandle,
   const char*                            lpszClientIpAddr,
   const Sm_AgentApi_ResourceContext_t*   pResourceContext,
   const Sm_AgentApi_Realm_t*             pRealm,
   const Sm_AgentApi_UserCredentials_t*   pUserCredentials,
   Sm_AgentApi_Session_t*                 pSession,
   long*                                  pNumAttributes,
   Sm_AgentApi_Attribute_t**              ppAttributes
);
パラメータ
I/O
説明
pHandle
I
Sm_AgentApi_Init() の
ppHandle
パラメータで返されるエージェント API セッション ハンドル。
lpszClientIpAddr
I
ユーザのログイン元のクライアントの IP アドレス。これはオプションのパラメータです。クライアント IP がアスタリスク(*)で始まる場合、ポリシー サーバはこの IP アドレスをログ記録しますが、セッション仕様に照らした検証は行いません。
pResourceContext
I
リソース定義構造体へのポインタ。
pRealm
I
レルム定義構造体。
pUserCredentials
I
ユーザ認証情報定義構造体。
pSession
O
ユーザ セッション定義構造体。
pNumAttributes
O
ppAttributes
内の属性の数。
ppAttributes
O
レスポンス属性定義構造体の配列へのポインタ。
この関数は、以下の属性を返します(利用可能な場合)。
SM_AGENTAPI_ATTR_AUTH_DIR_OID
SM_AGENTAPI_ATTR_AUTH_DIR_NAME
SM_AGENTAPI_ATTR_AUTH_DIR_SERVER
SM_AGENTAPI_ATTR_AUTH_DIR_NAMESPACE
SM_AGENTAPI_ATTR_USERMSG
SM_AGENTAPI_ATTR_USERDN
SM_AGENTAPI_ATTR_USERUNIVERSALID
SM_AGENTAPI_ATTR_IDENTITYSPEC
匿名認証方式によってリソースが保護される場合に設定される属性の詳細については、「注釈」を参照してください。
戻り値
  • SM_AGENTAPI_YES。ユーザが認証されました。
  • SM_AGENTAPI_NO。ユーザは認証されませんでした。
  • SM_AGENTAPI_CHALLENGE。認証にはチャレンジが必要です。
  • SM_AGENTAPI_NOCONNECTION。初期化できませんでした。
  • SM_AGENTAPI_FAILURE。サーバにアクセスできませんでした。
  • SM_AGENTAPI_TIMEOUT。関数がタイム アウトしました。
注釈
認証イベントが発生すると、レスポンス属性が返されることがあります。「レスポンス属性」に述べられているように、既知の属性とポリシーベースの属性の両方が返される可能性があります。たとえば、認証の成功時、レスポンスはユーザの DN を返すことがあります。
リソースが匿名認証方式によって保護されている場合、以下の属性のみが設定されます。
  • SM_AGENTAPI_ATTR_USERDN。匿名セッションの SessionID を設定します。
  • SM_AGENTAPI_ATTR_IDENTITYSPEC。匿名セッションのグローバルに一意の識別チケットを設定します。
必須の認証情報のみを提供してください(必要な認証情報は Sm_AgentApi_IsProtected() のコールによって決定されます。この関数は Sm_AgentApi_Login() の前にコールされる必要があります)。ユーザ認証情報構造体の未使用のフィールドは、ゼロ初期化される必要があります。
Sm_AgentApi_Login() は、Sm_AgentApi_Attribute_t 構造体内の属性を返します。属性を解放するには、Sm_AgentApi_FreeAttributes() をコールします。
ログインの成功時、Sm_AgentApi_Session_t 構造体には、セッション仕様が入力されます。この構造体に対してメモリを割り当てている場合には、メモリを手動で解放する必要があります。
この関数の例については、サンプル アプリケーション smagentexample.cpp を参照してください。