#概要
Cognos BIやCognos Analyticsで、Tivoli Access Manager(TAM)やIBM Security Access Manager(ISAM)を経由してシングルサインオンを実現したい場合に、TAMのジャンクション作成時に -j オプションを付与してジャンクションを作成しないと、SSOが実現できない場合が良くあります。
覚えておいて欲しい事は**「CognosとTAM(ISAM)のSSO時は、ジャンクションの作成時に-jオプションを考慮が必要」**という一言なのですが、-jオプションってなんだろう、というのを調べたので投稿しておきます。
#ジャンクションの-jオプション
WebSEALはリバースプロキシとして動作します。
リバースプロキシ処理のためにWebSEALはバックエンドサーバーをWebSEAL上の仮想ディレクトリとしてマッピングします。
仮想ディレクトリのことをジャンクション(Junction)と呼びます。
仮想ディレクトリ名の追加、削除処理をするためにコンテンツをWebSEALで変換する必要があります
WebSEALの変換処理は万能ではないため、WebSEALが処理出来るようにコンテンツの変更が必要なケースがあります
WebSEALはリバースプロキシーの処理をする際に、バックエンドサーバごとにジャンクション名をつけることで、複数のサーバを識別します。
ブラウザからコンテンツにアクセスするときに、ジャンクション名つきのURLでアクセスさせる必要があります。
レスポンス送信時にURLのパスにジャンクション名を付け加えます。
この動作をURLフィルタリングと呼びます。
URLフィルタリング出来ないままコンテンツがクライアントに送られた場合、ブラウザからWebSEALのジャンクションを含まないURLに対するリクエストが送信される可能性があります。
例: JavaScriptで文字列の演算を行ってURLを生成するケースなどでWebSEALを通過する時点でフィルタリング対象のURLと見なされなかったコンテンツ
ジャンクションオプション –j
この様な場合にジャンクション名を補完する機能として、-j オプションがあります。
ジャンクション名をCookieにセットしてブラウザに記憶させます。
HTMLコンテンツにCookieをセットするJavaScriptを挿入します。
Cookie名: IV_JCT
値にはジャンクション名が入ります。
WebSEALへのリクエストURLにジャンクション名が入っていなくてもCookieでジャンクション名を補うことで正常にアクセスが可能になります。
ジャンクションを作成するときに–j オプションを指定することでCookieがセットされるようになります。
-jオプションを指定すると、URLフィルタリングの動作が変わりますので注意が必要です。
–バックエンドサーバーが発行するCookieのpathの処理
–バックエンドサーバーが発行するCookieの名前の処理
#参考情報
実際にCognos Analytics 11とISAM(TAM)で構成した時の事例を投稿していますので、うまく行かない場合はこちらもご参照下さい。
Cognos Analytics と ISAM(TAM)でSSO実装する時に必要な設定
https://qiita.com/shinyama/items/7877bc2240e27c7e0723