リソースへのユーザ アクセス

エージェントは要求されたリソースにユーザ アクセスを付与する前に以下の手順に従う必要があります。エージェントのパフォーマンスを向上するために、ほとんどの手順は結果をキャッシュできるようになっています。エージェントは、キャッシュを望むだけ実行することができます。
casso1283
エージェントは要求されたリソースにユーザ アクセスを付与する前に以下の手順に従う必要があります。エージェントのパフォーマンスを向上するために、ほとんどの手順は結果をキャッシュできるようになっています。エージェントは、キャッシュを望むだけ実行することができます。
  1. ユーザの要求を受け入れます。
    リソースにアクセスするためのユーザの要求を受理します。これはアプリケーション固有の要求です。たとえば、Web エージェントは、URL に対する GET 要求を受け入れます。
  2. リソースが保護されているかどうかを確認します。
    要求されたリソースが保護されているかどうかを確認するには isProtected() を呼び出します。
    リソースが保護されている場合、ポリシー サーバはユーザの身元を検証するためにユーザから取得される必要がある必要な認証情報を返します。リソースが保護されていない場合、要求されたリソースへのアクセスが許可されます。
    この手順の結果はキャッシュできます。
  3. ユーザを認証します。
    1. ケース 1
      : ユーザから必要な認証情報を収集し、かつユーザを認証するには login() を呼び出します。
      認証が成功したら、ポリシー サーバはセッションを作成し、一意のセッション ID およびセッション指定を含むレスポンス属性を返します。これらのレスポンス属性は、ポリシーによって駆動され、ユーザ プロファイル データ、スタティックまたはダイナミックの権限、多くの事前定義された認証状態属性、またはポリシー管理者によって指定された他のデータです。
      エージェントは、ユーザ セッション情報をキャッシュし、セッション有効期限を追跡することにより、セッション管理を実行できるようになります。
    2. ケース 2
      : リソースが認証チェーン方式で保護されている場合に、loginAdv() を呼び出します。最初のログイン呼び出しでは、入力属性数を 0 に、入力属性配列を NULL に設定します。 
      認証が成功したら、ポリシー サーバはセッションを作成し、一意のセッション ID およびセッション指定を含むレスポンス属性を返します。動作はケース 1 と同じようになります。
      リターン コードが SM_AGENTAPI_CHALLENGE で認証が失敗したとき、チェーンの次の認証方式の詳細を取得するためにレスポンス属性を読み取る必要があります。 
      ポリシー サーバは、レスポンス属性として、以下の情報を送信します。
      1. この情報をポリシー サーバに渡す、次の Sm_AgentApi_LoginAdv() コールを処理するためにポリシー サーバによって使用されるチェーンスペック。
      2. ユーザ認証情報の収集を実行するエージェントによって使用される必要な認証情報を示す値。IsProtected call as Sm_AgentApi_Realm_t で受信される内容に類似しています。例: nRealmCredentials
      3. 認証を実行するエージェントによって使用される認証情報プロバイダ URL。IsProtected call as Sm_AgentApi_Realm_t で受信される内容に類似しています。例: lpszFormLocation
  4. ユーザが許可されているかどうか確認します。
    authorize() を呼び出して、要求されたリソースにユーザがアクセスできるかどうか検証します。
    許可に成功したら、ポリシー サーバはリソース固有の権限を含めたレスポンス属性を返します。これらのレスポンス属性は、ポリシーによって駆動され、ユーザ プロファイル データ、スタティックまたはダイナミックの権限、またはポリシー管理者によって指定された他のデータです。
    この時点では、要求されたリソースに関するユーザの許可情報は知られており、将来の要求の処理速度を向上するためにキャッシュできます。
  5. キャッシュされた許可情報を監査します。
    認証および許可手順のいずれもユーザ、保護されたリソース、およびエージェントに関する関連情報をログ記録します。ただし、エージェントがそのキャッシュからの許可を実行する場合、トランザクションは、今までどおり audit() メソッドを通してログ記録できます。
  6. リソースへのアクセスを許可します。
    ユーザの識別情報が知られ、許可が検証され、必要な権限が取得されたため、許可されたユーザにリソースへのアクセス権を付与します。
  7. 管理要求を発行します。
    これは、ポリシー サーバで更新コマンドをポーリングするために必要に応じて実行される手順です。コマンドに応じて、エージェントは暗号化キーの更新またはキャッシュのクリアのいずれかまたは両方を実行します。
エージェントが必要なくなった場合に、各 API インスタンスに対して unInit() メソッドを発行します。これにより、すべてのポリシー サーバへの TCP 接続が閉じられます。
エージェント API で提供されるキャッシュ機能では、セッション有効期間は適用されません。ユーザ セッションとリソース固有の権限のいずれかまたは両方をキャッシュすることを選択することで、各ユーザの要求の間に自身のセッション管理を実行する必要がエージェントに発生します。これが必要なのは、エージェント上でのキャッシュによって、セッション検証およびリソース許可のいずれかまたは両方の実行のために
SiteMinder
ポリシー サーバに接続する必要がなくなるためです。