エージェント API サービス

エージェント API が提供するサービスを使用して、高機能かつ安全で堅牢なエージェントを開発できます。エージェント構築の一環で、以下のサービスを使用します。
casso1283
エージェント API が提供するサービスを使用して、高機能かつ安全で堅牢なエージェントを開発できます。エージェント構築の一環で、以下のサービスを使用します。
  • セッション サービス
  • 許可サービス
  • 監査サービス
  • 管理サービス(キーの暗号化、キャッシュの更新)
  • トンネル サービス
セッション サービス
セッションは、ユーザ ログインが成功した後に作成されます。作成後は終了されるまでユーザ セッションが継続します。多層アプリケーション環境内で整合性のあるユーザ セッションを維持するために、(ポリシー サーバではなく) Web エージェントによってユーザ セッション仕様が維持されます。セッション仕様は、セッション チケットと呼ばれます。セッション仕様は、ユーザ セッションを表し、
SiteMinder
セッション管理の鍵となります。ユーザ セッションが作成された環境によって、セッション仕様の永続ストレージが決定されます。たとえば、Web エージェント(HTTP 環境)はセッション仕様を HTTP Cookie に保存します。
SiteMinder
のユニバーサル ID は、セッション メカニズムに統合されます。ユニバーサル ID は、カスタマ アカウント番号などの一意の識別子を使用して、
SiteMinder
環境内のアプリケーションのユーザを識別します。ユニバーサル ID は、アプリケーションに関係なく、ユーザの識別を自動的に実行するとにより、新旧アプリケーション間のユーザ識別を簡素化します。ユーザのユニバーサル ID をポリシー サーバ 上で設定すると、このユニバーサル ID は、セッション仕様の一部となり、セッション期間を通じてエージェントに利用可能になります。
エージェントは、Sm_AgentApi_Login() を使用してセッションを作成します。この関数は、ユーザ認証情報を認証し、セッション仕様および一意のセッション ID を Sm_AgentApi_Session_t で返します。セッション仕様は、次のエージェント API コール時に更新され、これらのコールでも更新された有効回数が返されます。エージェントは、この情報を使用してカスタム セッション管理を実行し、セッション タイムアウトを追跡できます。
使用している Web サーバのユーザ追跡機能が有効な場合、
SiteMinder
から、セッション仕様と共に識別チケットが発行されます。識別チケットは、匿名認証方式によって保護されたリソースにユーザがアクセスしている場合のアイデンティティ ベースのパーソナライゼーションに使用できます。識別チケットに有効期限はありません。
アプリケーションのロジック フローがアプリケーション層を横切る場合、2 つのエージェント間でセッション仕様を渡すことによりセッションを委任できます。各エージェントは、セッション指定の検証を選択することができます。
セッション仕様の検証は、ユーザ セッションが期限切れではなく、終了や取り消しもされていないことを確認する場合に実行されます。これは、セッション期間中いつでも発生する可能性があります。エージェントは、Sm_AgentApi_Login() をコールしてセッション仕様を検証します。
ユーザがログアウトした後や、セッションの期限切れまたはセッションの取り消しによりエージェントがセッション仕様を破棄した後に、セッションが終了されます。セッションが終了された場合、ユーザが新しいセッションを確立するには再度ログインする必要があります。
セッションの開始後にユーザが無効化された場合、セッションは終了される必要があります。ユーザの無効状態を調べるには、Sm_AgentApi_Login() をコールしてセッションを検証します。
セッションを終了する場合、エージェントは Sm_AgetnApi_Logout() をコールします。このとき、そのセッション仕様(Sm_AgentApi_Session_t)に対して割り当てられたメモリがすべて解放される必要があります。
 
アプリケーション セッション情報
セッション情報の構成には、セッション仕様以外の情報も含まれる場合があります。セッション情報には、クライアント アプリケーションがユーザのセッションとの関連付けに必要とする情報を含めることができます。
アプリケーションに定義されるセッション情報は、セッション変数と呼ばれる名前/値のペアで構成されます。たとえば、アフィリエイト操作用のビジネス ロジック、証明書情報および SAML アサーションはすべて、セッション変数として保存し、セッション ID にバインドできます。
エージェント API では、セッション変数の設定、取得、削除用に以下の関数を提供します。
  • Sm_AgentApi_SetSessionVariables()
  • Sm_AgentApi_GetSessionVariables()
  • Sm_AgentApi_DelSessionVariables()
セッション変数は、セッション ストアと呼ばれるサーバ側のデータベースに保存されます。セッション ストアはポリシー サーバによって管理されます。
 
セッション変数の利点
クライアント アプリケーションがセッション変数を使用する場合、
  • 各セッション変数値に対して最大 4K のデータを保存できます。
  • セッション情報が複数のポリシー サーバにわたって維持されます。サーバ上のセッション情報の一元化により、異なるドメインにわたるログアウトおよびアイドル タイムアウトの適用を含むクロス ドメイン セッション管理などの機能が可能になります。
セッション変数を使用するための要件
クライアント アプリケーションでセッション変数を使用するには、以下の前提条件の両方に適合する必要があります。
  • セッション ストアをポリシー サーバ管理コンソールで有効にする必要があります。
  • 管理 UI でのレルム設定時に、永続セッションは、セッション中にアクセスするレルムの少なくとも 1 つに対して選択する必要があります。永続セッションに対して設定されたレルムにユーザがアクセスすると即座に、それ以降のセッション全体を通じてセッション変数が使用可能になります。
セッション終了時のクリーンアップ
ユーザがログアウトし、エージェントがセッション指定を破棄すると、セッションは終了します。永続セッションの場合、
SiteMinder
は、すべてのセッション変数を含めたすべてのセッション情報をセッション ストアから削除します。
タイムアウト
エージェントでは、セッション タイムアウトを自身で適用したり、各要求の検証をポリシー サーバに依存することができます。通常、エージェントによるユーザ セッションや権限のキャッシュには、エージェント側での何らかの形式のタイムアウト適用が必要となります。この場合、最終アクセス時間を追跡し、セッションの期限を把握する役割がエージェントに課せられます。
キャッシュしないエージェントは、ポリシー サーバのタイムアウトの適用を利用できます。以下のエージェント API メソッドは、それぞれのコール後に更新されたタイムアウト情報を返します。
  • Sm_AgentApi_Login()
  • Sm_AgentApi_Authorize()
  • Sm_AgentApi_Audit()
許可サービス
アクセス制御機能を実行するエージェントは、エージェント API の認可サービスを使用します。これらのサービスを使用することにより、クライアントでは、どのアクセス制御がリソースに対して実行されているかを判別したり、リソースにアクセスするためのユーザ権限を確認したり、特定のリソースに対するユーザ権限を取得することができます。
リソースが保護されているかどうかの判別は、Sm_AgentApi_IsProtected() メソッドをコールすることにより行えます。このメソッドは、要求元のエージェントによってサービスが提供されているリソースに対応して、認証に必要な認証情報に関する情報を返します。
ユーザの身元が確認された後、エージェントは、Sm_AgentApi_Authorize() メソッドをコールして、要求元ユーザが要求対象リソースのアクセス権を持つかどうかを判別します。エージェントでは、このメソッドによって返されたレスポンス属性の値をテストすることにより、きめ細かなアクセス制御を実行できます。
トランザクションの追跡
エージェントがセッション中のすべてのユーザ アクティビティを追跡するための機能が用意されています。アクティビティの多くはポリシー サーバによってログ記録されますが、エージェント キャッシュから実行された認可のログ記録が必要となる場合があります。エージェントは、Sm_AgentApi_Audit() メソッドをコールして、リソースに対する要求をログ記録することができます。
エージェントは、一意のトランザクション ID を生成することによって、アクセス制御アクティビティアプリケーション アクティビティに相関させることができます。トランザクション ID は、認可方式と監査方式の両方に与えることができるため、ポリシー サーバではトランザクションに固有の ID をアプリケーション アクティビティと関連付けて記録できます。これは非否認に使用できます。
管理サービス
管理プロトコルはエージェントとポリシー サーバの間に存在します。エージェントでは、このプロトコルを使用して、ポリシー サーバのポリシーおよび管理上の変更に合致した方式でキャッシュと暗号化キーを管理することができます。
キャッシュ コマンド
エージェントは、SM_AGENTAPI_MANAGEMENT_GET_AGENT_COMMANDS コマンドと共に Sm_AgentApi_DoManagement() コールを発行して、最新のエージェント コマンドを要求します。通常、これは、バックグランドで実行されているスレッド別に
N
秒ごとに実行されます。受信可能なエージェント コマンドのタイプは、キャッシュ コマンドおよび暗号化コマンドです。
キャッシュ コマンドは、ポリシー サーバの管理上の更新の結果として実行されることが必要となる可能性のあるキャッシュ変更をエージェントに通知します。これらのエージェント コマンドは次のとおりです。
  • SM_AGENTAPI_CACHE_FLUSH_ALL
  • SM_AGENTAPI_CACHE_FLUSH_ALL_USERS
  • SM_AGENTAPI_CACHE_FLUSH_THIS_USER
  • SM_AGENTAPI_CACHE_FLUSH_ALL_REALMS
  • SM_AGENTAPI_CACHE_FLUSH_THIS_REALM
暗号化コマンド
暗号化コマンドは、ポリシー サーバによって自動的に生成された新しい暗号化キーや管理上で生成された新しい暗号化キーをエージェントに通知します。セキュア状態を保存する必要のあるエージェントは、このプロトコルを活用して、最新の暗号化気ーを常に把握することができます。これらのエージェント コマンドは次のとおりです。
  • SM_AGENTAPI_AGENT_KEY_UPDATE_NEXT
  • SM_AGENTAPI_AGENT_KEY_UPDATE_LAST
  • SM_AGENTAPI_AGENT_KEY_UPDATE_CURRENT
  • SM_AGENTAPI_AGENT_KEY_UPDATE_PERSISTENT
トンネル サービス
トンネル サービスは、ポリシー サーバ上に置かれた呼び出し可能なサービスとのセキュアな通信を確立するためにエージェントを有効化します。これにより、VPN と同様なセキュアなチャネルでカスタム アクションを実行することができ、暗号化やキー管理など問題を処理する必要がなくなります。