seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

Tivoli Access Manager(TAM)のASP.NETでの使い方メモ(備忘録)

概要

一年ほど前に、IBMのTivoli Access Manager(TAM)によるシングルサインオンのユーザ認証の仕組みをASP.NETのアプリに組み込んだ。
記憶があいまいになってきているので、まだ覚えてるうちに、ASP.NET側での要点を備忘録として残す。

要点

  • TAMはゲートウェイ型認証である。
    • サーバとクライアントの間にTAMが入る。
    • どのアドレスを、どのサーバに転送するかはJunctionという設定で行う.(ApacheのReverseProxyみたいな感じ)
    • ASP.NETでは、*.axd などのリソースファイルの位置が自動生成されるJavaScriptから直書きされているので、リダイレクト位置には注意が必要。
      • ※ コンテキストルートのフォルダ階層が実サーバとジャンクションとで異なる場合は、うまく動かないので、転送する仕組みなどが必要になった。
  • TAMからASP.NET(IIS)には、認証情報(本人情報)がリクエストヘッダとして渡されるため、扱いは非常に簡単である。
    • たとえば、認証済みユーザ情報として"IV_USER"ヘッダがリクエスト毎にわたってくる。
    • リクエストヘッダで認証ユーザを判断するので、サーバにクライアントから直接アクセスできるとセキュリティの意味がなくなる。
      • IISに接続できるIPをTAMに限定するのが定石か?
      • ※ クライアントからTAMに対してIV_USER等のヘッダを偽造して渡すとTAMで除去される。(なので、ユーザ側からIV_USER等の改ざんはできない)
      • ※ 逆にいうと、開発する場合は、任意のリクエストヘッダを追加できるブラウザやプロキシを使うと比較的簡単にテストできる。
  • 認証はweb.configで標準の認証をnoneとしカスタム認証とする。