カスタム エージェントおよびシングル サインオン

目次
casso1283
目次
シングル サインオン環境では、所定のエージェントで正しく認証されたユーザが別のエージェントによって保護されたレルムにアクセスする場合、再認証は不要です。カスタム エージェントがシングル サインオン環境に関与する場合、2 つのエージェントは同じ Cookie ドメイン(たとえば、xxx.domainname.com など)に配置される必要があります。
シングル サインオンは SMSESSION という名前のシングル サインオン Cookie によって可能になります。この Cookie は、
SiteMinder
またはカスタム エージェントによって作成され、ユーザのブラウザに書き込まれます。
エージェント API には、標準の
SiteMinder
Web エージェントによるシングル サインオン環境にカスタム エージェントが参加する場合に使用可能な以下の 2 つの関数が含まれています。
  • Sm_AgentApi_DecodeSSOToken()。カスタム エージェントは、既存の SMSESSION Cookie から Cookie の内容(トークンと呼ばれます)を抽出し、トークンをこの関数に渡します。関数では、トークンを復号し、指定された情報を抽出します。この関数は、トークンの最終アクセスのタイム スタンプを更新するためにも使用できます。
  • Sm_AgentApi_CreateSSOToken()。ユーザがカスタム エージェントを介して正常にログインした後、カスタム エージェントは、ユーザに関する情報をこの関数に渡します。関数では、このユーザ情報、およびログイン コールから返されたセッション情報から、暗号化されたトークンを作成します。カスタム エージェントは、トークンを SMSESSION Cookie に書き込みます。
シングル サインオン関数のパラメータをセットアップし、結果を解析するための例については、サンプル カスタム エージェント コードを参照してください。サンプル カスタム エージェント コードは、<install_path>\sdk\samples の smagentapi ディレクトリにあります。
標準エージェント サポート
SiteMinder
SDK v5.5 SPx 以降で作成されたカスタム エージェントは、標準の
SiteMinder
Web エージェントによって作成された SMSESSION Cookie を使用できます。
ただし、標準エージェントが適切な
SiteMinder
Agent Quarterly Maintenance Release (QMR)でアップグレードされている場合には、標準
SiteMinder
Web エージェントはカスタム エージェントによって作成された Cookie しか使用できません。各標準エージェントのバージョンに必要な QMR バージョンの詳細については、付属の SDK リリース ノートを参照してください。
また、
SiteMinder
エージェントを適切な QMR アップグレードで有効にし、カスタム エージェントによって作成された SMSESSION Cookie を受け入れるようにするには、標準エージェントのエージェント設定ファイル(IIS サーバの場合は LocalConfig.conf、その他のサーバの場合は WebAgent.conf)または中央設定オブジェクト(v5.x 以降)に以下のエントリが含まれる必要があります。
AcceptTPCookie="yes"
AcceptTPCookie を以下のとおりに設定します。
  • 4.xQMR4 エージェント以上の場合、AcceptTPCookie="yes" を標準エージェントのエージェント設定ファイルに直接追加します。
  • 5.xQMR1 エージェント以降において、エージェント設定オブジェクトの AllowLocalConfig パラメータが no に設定されている場合は、エントリをエージェント設定オブジェクトに追加します。AllowLocalConfig が yes に設定されている場合には、標準エージェントのエージェント設定ファイルに AcceptTPCookie を設定できます。
カスタム エージェント経由のログイン
ここでは、初期ログインがカスタム エージェントを通して実行される場合のシングル サインオン環境のイベントの典型的なシーケンスを示します。
  1. ユーザはカスタム エージェント経由でログインします。
  2. カスタム エージェントは、Sm_AgentApi_Login() をコールしてユーザを認証します。ユーザは認証情報を要求されます。
  3. カスタム エージェントは Sm_AgentApi_CreateSSOToken() をコールし、これにユーザに関する情報(ユーザ名、ユーザ DN、要求元クライアントの IP アドレス)を渡します。
    SiteMinder
    は、ログイン コールから返されたセッション情報と共にトークンにこの情報を追加します。
    SiteMinder
    はトークン内の情報の暗号化も実行します。
  4. カスタム エージェントは、ユーザのブラウザに SMSESSION Cookie を作成し、この Cookie にトークンを書き込みます。
  5. ユーザは標準的な
    SiteMinder
    エージェントによって保護されたリソースを要求します。
  6. 標準エージェントはログイン操作を実行します。この操作により、シングル サインオン Cookie 内の情報に基づいてユーザが検証されます。ユーザは、認証情報を要求されません。
標準エージェント経由のログイン
ここでは、シングル サインオン環境で、初回ログインが標準の
SiteMinder
Web エージェント経由の場合のイベントの標準的なシーケンスを示します。
  1. ユーザは標準エージェント経由でログインします。
  2. 標準エージェントは、ログイン コールを通じて認証情報をユーザに要求して、ユーザを認証します。
  3. SiteMinder
    は、ユーザのブラウザに SMSESSION Cookie を作成し、セッション情報が含まれる暗号化トークンを挿入します。
  4. ユーザはカスタム エージェントによって保護されたリソースを要求します。
  5. カスタム エージェントは、ユーザの要求から SMSESSION Cookie を取得し、トークンを抽出します。
  6. カスタム エージェントは、トークンを Sm_AgentApi_DecodeSSOToken() 関数に渡します。関数は、トークンをデコードし、トークンの属性のサブセットをカスタム エージェントに返します。
  7. カスタム エージェントは、セッション仕様をトークンから取得し、このセッション仕様を Sm_AgentApi_Login() に渡します。ログイン コールにより、ユーザへ認証情報を要求することなく、ユーザが検証されます。
  8. ユーザは標準的な
    SiteMinder
    エージェントによって保護されたリソースを要求します。
  9. 標準エージェントはログイン操作を実行し、SMSESSION Cookie の内容に基づいてユーザを検証します。ユーザは、認証情報を要求されません。