Comments
Description
Transcript
DataPower TAM,TFIM と の連携
連携 08. Tivoli DataPowerとTAM,TFIMの連携 ISE. システムズ・ システムズ・マネージメント 百瀬 孝三 基盤構築 2007/07 WebSphere DataPower SOA 当セッションでは、DataPowerとTivoli Access Manager for e-businessおよびTivoli Federated Identity Managerとの連携について紹介します。 1 連携 08.Tivoli 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Systems Engineering Co., Ltd. 2007 基盤構築 2007/07 WebSphere DataPower SOA 2 連携 08.Tivoli 内容 TAM,TFIMとの連携概要 AAAアーキテクチャ TAM,TFIM連携の必要性 WS-Security,WS-Trustとは TAMとの連携 TAMとは 認証・認可機能 DataPowerとTAMの連携シナリオ TFIMとの連携 TFIMとは TFIM Trust Service DataPowerとTFIMの連携シナリオ まとめ 基盤構築 2007/07 WebSphere DataPower SOA 3 連携 08.Tivoli TAM,TFIMとの連携概要 基盤構築 2007/07 WebSphere DataPower SOA 4 連携 08.Tivoli はじめに TAM,TFIM連携は、ライセンスド・フィーチャーが必要 DataPowerと連携可能なTAM,TFIMの前提レベル TAM 4.1、5.0、5.1、6.0 TFIM 6.0.x、6.1 ディレクトリはLDAPのみサポート 基盤構築 2007/07 WebSphere DataPower SOA IBM Tivoli Access Manager, Tivoli Federated Identity Managerとの連携を行う場合、 DataPowerのTAM連携ライセンス・フィーチャーが必要となります。 発注時に適切なTAMのVersion(4/5/6)を指定します。指定したTAMのVersionに対応 するライブラリがDataPowerのファームウェアに含まれたかたちで、製品出荷されます。 製品出荷後のライセンスのアップグレード、ファームウェアのアップグレードも技術的に は可能です。但し、オンサイトでのアップグレードや保守サービスに関する正式な手続 きについては別途IBM営業担当員、製品担当部門にご確認下さい。 TAMでは、各種のユーザー・レポジトリをサポートしていますが、DataPowerと連携する 場合のユーザー・レポジトリは、LDAPディレクトリである必要があります。URAFディレク トリ(Microsoft® Active Directory および Lotus® Domino®)は利用できませんのでご 注意下さい。 5 連携 08.Tivoli AAAアーキテクチャ 認証、認可、監査に関するアーキテクチャ RFC2903 Generic AAA Architecture RFC2904 AAA Authorization Framework ISO10181-3 Authorizataion Model AAAシステム PEP (Policy Enforcement Point) PDP (Policy Decision Point) Policy Repository ユーザー管理 ポリシー管理 監査の仕組みも必要 基盤構築 2007/07 WebSphere DataPower SOA DataPowerとTAM,TFIM連携を理解するうえで、まずAAAアーキテクチャについて説明します。 AAA:Authentication Authorization Audit(またはAccounting) 認証・認可・監査(またはアカウンティング)に関するリファレンス・アーキテクチャとして、 RFC 2903,2904やISO10181-3 があります。 ISO10181はTAMの認可機能で参照されているモデルで、後ほどTAMの認可機能の章で説明します。 ここでは一般によく使われているRFC2904 AAA Authorization Frameworkの用語を使用して、AAAに 必要とされる機能を概観します。 ・PEP(Policy Enforcement Point) はポリシーを強制するポイントで、リクエスト・メッセージを受けて認 証・認可処理を行います。 ・PDP(Policy Decision Point)は、認証・認可の判断を下すポイントです。 ・PolicyRepositoryは、アクセス制御情報や、ユーザー情報を保持します。 DataPowerとTAMの連携において、DataPowerはPEPの役割を果たし、TAMはPDPとPolicy Repositoryの役割を提供します。 このようなAAAアーキテクチャをシステムとして実現するためには、PolicyRepositoryの情報を管理するた めの機能・仕組みも重要となります。 (RFC2904は認可のフレームワークで、認証後の認可処理について言及していますが、ここでは認証も 含めて広義に説明しています) 6 連携 08.Tivoli ドメイン間の信頼 ドメイン間の信頼 各セキュリティドメインは、ベンダー固有の認証情報(クレデンシャル)で管理されている 異なるベンダー間での連携には、標準的なフォーマット、プロトコルが必要 ドメイン間の仲介役(Point of Contact, Trust Service)が必要 ドメインA 保護 リソース 独自の AAAシステム 保護 リソース Trust Service Point Of Contact 標準セキュリティ トークン Trust Service ドメインB Point Of Contact 独自の AAAシステム 保護 リソース 保護 リソース Client Client 基盤構築 2007/07 WebSphere DataPower SOA 先のアーキテクチャは、各ベンダー固有の製品実装により、単一または複数セキュリ ティ・ドメインのAAAシステムとして実装されてきました。 しかし、企業間の連携など、異なるベンダー製品からなるセキュリティ・ドメインを連携す るには、各社共通の標準的なフォーマット・プロトコルが必要となります。 Point of Contact(PoC) やTrust Service は、これらのドメイン間の連携を実現するた めの構成要素です。 DataPowerはPoint of Contact TFIMはTrust Service TAMは両者に参照されるPolicyRepositoryを提供します。 7 連携 08.Tivoli TAM,TFIM連携の概要 TAM,TFIM連携時の構成要素と役割 サービス リクエスト Web 認証要求 サービス リクエスト Web <wsse:UserName Token> <wsse:LTPA Token> サービス・ プロバイダー トークンのマッピング要求 認可要求 認可要求 LDAP TAM TFIM Trust サーバー 許可サーバー サーバー TAM User Directory TAM Policy DB Keystores DataPower: XML FW,ルーティング、メッセージ変換、WS-Security LDAPサーバー: 認証時に、ユーザー・レポジトリとして参照 TAM許可サーバー: 認可時に、アクセス権限のチェックを実施 TFIM Trust Service: TokenのValidate/Issue/Exchange 2007/07 WebSphere DataPower SOA基盤構築 DataPowerはXML FW,ルーティング、メッセージ変換、WS-Security 機能を提供しま す。 LDAPサーバーは、ユーザー情報(ユーザーIDやパスワード, その他ユーザー属性)を 保持し、認証時に、ユーザー・レジストリとして参照されます。 TAM許可サーバーはポリシーDBを参照しながら認可の判断を行います。 TFIMはトークンのマッピングと認可を行います。 8 連携 08.Tivoli DataPowerとTAM,TFIM連携の必要性 TAM,TFIMと連携する事で得られるメリット AAAの機能強化 DataPowerでの認証で、TAM/LDAPのユーザー・レポジトリを利用 DataPowerでの認可で、TAMポリシーDBを参照 ユーザー管理、ポリシー管理をTAM側の管理機能で実現 認証・認可における外部インターフェースの強化 Webシングル・サインオン、IDフェデレーションの提供(TAM、TFIM) 他システムに対するTokenマッピング、IDマッピング、プロビジョニング サービスの提供 (TFIM) DataPowerのみで実現する場合 ユーザー・レポジトリ、ポリシー管理の仕組みが別途必要 アクセス制御のロジックをXSLTで作成する必要がある IDフェデレーション、プロビジョニング機能は提供されていない 基盤構築 2007/07 WebSphere DataPower SOA DataPowerとTAM,TFIMを連携することで両者の機能を互いに補完・強化する事がで きます。DataPowerのXMLアクセラレーションによるパフォーマンスの強化やXML FW 機能によるセキュリティの強化を享受するとともに、TAMが提供する認証・認可機能およ び、TFIMが提供するフェデレーション機能の活用など、拡張性・柔軟性のある企業の 認証・認可基盤を実現する事ができます。 すでにTAM,TFIMによる認証・認可基盤システムがある環境においては、DataPowerと 連携させることにより、Webサービスに対するXMLアクセラレーションやXML FWを実現 する事ができるとともに、AAAにおいてTAM,TFIM,LDAPの認証・認可基盤をそのまま 活用できるため、既存の投資を有効活用する事が可能です。 また、新規に構築する場合においても、TAM,TFIMとの連携によりDataPowerのAAA 機能を以下の面で強化できるというメリットがあります。 ・パスワード・ポリシーの強制 ・アカウント・ポリシーの強制 ・ユーザー情報、アクセス制御情報の管理 ・他システムに対するセキュリティ・トークンサービスの提供 DataPowerでは、ローカル・レポジトリとしてXMLで記述されるAAA Infoファイルにより、 認証、認可を行う事も可能ですが、ユーザ数が多いエンタープライズレベルでの運用に は実用的ではありません。TAMなどの外部管理の仕組みと連携する事が推薦されます。 9 連携 08.Tivoli 標準の概説 WS-Security SOAPメッセージへの署名、暗号化ヘッダーおよびセキュリティトークン の添付方法を定義 WS-Trust セキュリティトークンによるWebサービスの信頼モデル WS-Security WS-Security Webサービス WS-Trust TAM TFIM WS-Secure Conversation WSFederation WSAuthorization WS-Policy WS-Trust WS-Privacy WS-Security SOAP Foundation 基盤構築 2007/07 WebSphere DataPower SOA ここでは、WS-*のうち、TAM,TFIM連携に関係する2つの重要な標準、WS-Securityと WS-Trustについて概説します。 • WS-Security SOAP メッセージに署名ヘッダおよび暗号化ヘッダを添付する方法を記述しています。 さらに、X.509 証明書や Kerberos チケットなどのバイナリ セキュリティ トークンを含む セキュリティ トークンをメッセージに添付する方法を記述しています。 • WS-Trust Web サービスが安全に相互運用できるようにする信頼モデルのフレームワークを記述 しています。 10 連携 08.Tivoli WS-Security WS-Security: SOAP Message Security SOAP Headerの拡張 トークン、署名、暗号化ヘッダーを添付する方法を定義 Envelope Header Security要素 Security Token Signature Encrypted Data Body <application data> 基盤構築 2007/07 WebSphere DataPower SOA SOAP Message Securityは、「Web Service Security: SOAP Message Security 1.0」として仕様が定義されています。 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-messagesecurity-1.0.pdf この標準では、以下のSOAP 拡張を定義しています。 1.発信元を示すためのSecurity Token 2.メッセージの全体または一部に対するXML Signature準拠の署名 Soap Body,Security Token,または両方 3.メッセージの全体または一部に対するXML Encription準拠の暗号化 署名と暗号化について、DataPowerは、W3C XML Encription、XML Signatureをサ ポートしています。 http://www.w3.org/Signature/2001/04/05-xmldsig-interop.html http://www.w3.org/Encryption/2002/02-xenc-interop.html 11 連携 08.Tivoli WS-Security: Security Token Security Username Token Username Unsername & Password (平文またはダイジェスト) Envelope Binary Token X.509証明書 Kerberos Token SAML Token Token - メッセージ発信元のクレーム Header Security要素 Security Token XML Token Signature User Defined Token Encrypted Data Body <application data> OASIS Standards http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss 基盤構築 2007/07 WebSphere DataPower SOA 各Tokenのフォーマットは、OASIS Standarsの以下のProfileに定義されています。 Username Token Profile X.509 Token Profile Kerveros Token Profile REL Token Profile SAML Token Profile http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss 以下は、Username Tokenの使用例です。 <S:Envelope xmlns:S=“http://www.w3.org/2001/12/soap-envelope” xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext"> <S:Header> … <wsse:Security> <wsse:UsernameToken> <wsse:Username>Zoe</wsse:Username> <wsse:Password>ILoveDogs</wsse:Password> </wsse:UsernameToken> </wsse:Security> </S:Header> … </S:Envelope> 12 連携 08.Tivoli WS-Security: Security Token SAML(Security Assertion Markup Language) OASIS標準、XMLベースの認証、認可、属性 交換フォーマット、サービスを定義 Liberty ID-FF 1.2, Shibboleth 1.2 以降はSAML2.0に統合 WS-SecurityでもSAML Token Profileとして包含 SAML Assertion AssertionID IssueInstant Issuer Authentication Statement MajorVersion Minor Version Subject(User Identity) Authentication Instant Authentication Mechanism Conditions Attribute Statement NotBefore NotOnOrAfter Audience Restriction Subject Asserted Attributes Signature 基盤構築 2007/07 WebSphere DataPower SOA SAMLは、ユーザーの認証情報や、属性情報などを交換するためのフォーマット、サー ビスを定義したOASYS標準です。 異なるセキュリティ・ドメイン間での認証情報の交換にSAML Authentication Assertion が利用できます。 以下はWS-Security Security Tokenにおける、SAML Assertionの例です。 <?xml version="1.0" encoding="UTF-8"?> <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Header> <saml2:Assertion ID="IDae73df56-c1c5-4b73-abdf-723382342cc7" IssueInstant="2007-0620T07:36:50Z" Version="2.0“ xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> <saml2:Issuer>XS</saml2:Issuer> <saml2:Subject> <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameidformat:unspecified">fred</saml2:NameID> <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/> </saml2:Subject> <saml2:AuthnStatement> …</saml2:AuthnStatement> </saml2:Assertion> </SOAP:Header> <soapenv:Body > …</soapenv:Body> </SOAP:Envelope> 13 連携 08.Tivoli WS-Trust WS-Trust: ドメイン間の信頼モデル Trusted 3rd Party モデル(第三者による信頼の仲介) Direct Trust モデル (二者間の相互信頼) Security Tokenの発行、検査、交換を行うWebサービス ドメイン間の信頼フレームワーク Security Token Service (STS) 基盤構築 2007/07 WebSphere DataPower SOA WS-Trustでは、ドメイン間の信頼フレームワークを定義しています。 ドメイン間の信頼モデルはPKIの認証局(CA:Certification Authority)のモデルのような、 信頼された第三者による仲介型のものと、 二者間の直接の信頼モデルがあります。TFIMは二者間の直接の信頼モデルを実装し ています。 14 連携 08.Tivoli WS-Trust: Security Token Service WS-Trust: Security Token Service (STS) STSのインターフェース RequestSecurityToken でTokenのValidate/Issue/Exchangeを要求 RequestSecurityTokenResponseで要求結果を応答 要求タイプ: 要求 <wst:RequestSecurityToken Context="..."> <wst:TokenType>...</wst:TokenType> <wst:RequestType>...</wst:RequestType> ... </wst:RequestSecurityToken> Validate Issue Exchange リクエスター DataPower XS40 WAS V6.0 など STS 応答 TFIM <wst:RequestSecurityTokenResponse Context="..."> <wst:TokenType>...</wst:TokenType> <wst:RequestedSecurityToken>...</wst:RequestedSecurityToken> ... </wst:RequestSecurityTokenResponse> 基盤構築 2007/07 WebSphere DataPower SOA リクエスター側はDataPower、WebSphere Application Server、WebSphere Web Services GateWay、あるいはWS-Trust STSクライアントを実装するアプリケーションな どが考えら得ます。 TFIMはSTSサーバー側として機能します。 15 連携 08.Tivoli TAMとの連携 基盤構築 2007/07 WebSphere DataPower SOA 16 連携 08.Tivoli TAMとは TAMはWeb環境における認証・認可のフレームワークを提供 以下の構成要素からなる Policyサーバー ポリシーDBを保持し、保護対象オブジェクトとアクセス制御情報を管理する ユーザー管理やポリシー管理を行う ユーザー情報を保持するディレクトリ WebベースのTAMの管理GUIインターフェースを提供する LDAPサーバー WPM(Web Portal Manager)サーバー 許可サービス(または許可サーバー) アクセス制御情報(ポリシーDB)をチェックして、アクセスの可否を判断するサービス 許可API(aznAPI)により、リモート/ローカルから呼び出し可能 WebSEALサーバー リバースプロキシー型の認証サーバーで、フロントエンドに配置され、LDAPやPolicy サーバーと連携して、認証、認可処理を実施する。許可サービス、aznAPIの1実装例 基盤構築 2007/07 WebSphere DataPower SOA TAMは、Policyサーバー、LDAPサーバー、WPM(Web Portal Manager)、許可サー バー、WebSEALサーバーから構成されます。 DataPowerと直接連携するのはLDAPサーバーと許可サーバーです。 WebSEALサーバーはブラウザ-Webサーバー間のシングル・サインオンを提供します が、DataPowerとの連携には関係しないため必須のコンポーネントではありません。 17 連携 08.Tivoli TAMの認可機能 ISO 10181-3 認可モデルを参照 AEF: Access Enforcement Function アクセス制御の実施点 アクセス可否をポリシーに基づき判断する機能 TAMの許可API(aznAPI)をAEFとして実装 ADF:Access Decision Function DataPowerとTAMの実装 DataPower は、Resource Managerとして機能する TAM 許可サーバーはADFとして機能 DataPower アクセス要求 リクエスター Resource Manager Webサービス アクセス要求 Target Initiator AEF 認可判定要求 結果 ADF TAM許可サーバー ISO 1018-3 認可モデルとDataPower,TAMの実装 基盤構築 2007/07 WebSphere DataPower SOA TAMの許可制御は、ISO10181-3許可モデルを参照した実装になっています。 DataPowerとTAMの連携も、このモデルに従っています。 Resource ManagerがDataPower、ADFがTAM許可サーバーという役割分担になりま す。 18 連携 08.Tivoli DataPowerとTAMの連携 DataPowerはLDAPを参照して認証を行う DataPowerはaznAPIを使い、認可チェックを許可サーバーに要求する 認可制御情報はポリシーDBに保持されている SOAP/XML Webサービス SOAP/XML 認証チェック LDAPサーバー ユーザー情報 aznAPIによる 認可チェック 許可サーバー ポリシーDB (レプリカ) Policyサーバー ポリシーDB (マスタ) WPM サーバー Webサービス 認証チェック WebSEALサーバー ブラウザ Junction DB ポリシーDB (レプリカ) Webサーバー TAMの認証・認可 フレームワーク 基盤構築 2007/07 WebSphere DataPower SOA Webサービス リクエストは、DataPowerがPoint of Contactとなり認証・認可制御をTAM に連携します。 ブラウザからのHTTP,HTTPS要求はTAM WebSEALサーバーがPoint of Contactとし て認証・認可制御を行います。 認可制御情報は、ポリシーDBに保持されています。 マスターはPolicyサーバー上に あり、許可サーバーとWebSEALサーバーにレプリケーションされます。 19 連携 08.Tivoli TAM ポリシーDB ポリシーDBには以下の情報が保持されています 保護オブジェクトスペース アクセス制御の対象オブジェクト(URLや各種リソース)をツリー構造で管理 任意のオブジェクト・スペースを作成可能 誰がどのような操作を出来るかを示したリスト ユーザーID,グループ名,操作フラグからなる アクセス可能時間帯(TOD)や監査ログ・レベルなど、オブジェクトに対する追加の制御ポリシーを指定 アクセス制御リスト(ACL) 保護オブジェクトポリシー(POP) Policyサーバー 保護オブジェクトスペース ACL ポリシーDB … POP ACL名:acl-web1 POP:pop-web1 Group iv-admin Trwxl Audit level: none User mike Trwxl TOD access: mon,tue:anytime Any-other Tr Unauthenticated コンテナオブジェクト リソースブジェクト 基盤構築 2007/07 WebSphere DataPower SOA ポリシーDBはバイナリーのファイルです。保護オブジェクトスペース、ACL、POPの情報 が格納されています。 これらの情報は、Policyサーバーに対するpdadminコマンドまたはWPMからの WebGUIによる管理操作で管理されます。 20 連携 08.Tivoli DataPowerの保護オブジェクトの作成 DataPower用のオブジェクト・スペースを作成 DataPower用の操作フラグをACLで指定 操作フラグは任意の文字、DataPower側の設定と一致させる(以下では [webservice]i としている) POPは許可サーバー側で自動チェックされる TOD(曜日、時間)、IPアドレスでのForbidden、監査レベルの設定が可能 保護オブジェクトスペース /( ACL(アクセス制御リスト) ルート) ACL:acl-datapower /Management /WebSEAL アタッチ /DATAPOWER サービスのURI /Web Mike [webservice]i Anyother T Unauthenticated T このリソースに対して、 Mikeに『[webservice]i』権限を付与 アクセスを許可するという意味の任意の文字列を指定可能 DataPower側での設定と一致させる 2007/07 WebSphere DataPower SOA基盤構築 オブジェクトの作成、ACL,POPの作成、それらのオブジェクトへのアタッチ処理は、 TAM WPMによるWebGUI画面またはTAM pdadminコマンドにより実行します。 以下は、pdadminコマンドの例です。 pdadmin objectspace create /DATAPOWER pdadmin acl create acl-datapower pdadmin acl modify acl-datapower set user mike [webservice]i : pdadmin acl attach /DATAPOWER/xxx acl-datapower pdadmin pop create pop-datapower pdadmin pop modify pop-datapower set tod-access weekday:0900-2300:local pdadmin pop attach /DATAPOWER pop-datapower 21 連携 08.Tivoli DataPowerとTAMの連携シナリオ シナリオ リクエスターからのInboud方向のアクセス UserName Tokenで認証 リクエストURLに対する認可 サービス リクエスト サービス リクエスト Web Web <wsse:UserName Token> 認証要求 <wsse:UserName Token> 認可要求 LDAP サーバー ユーザー 情報 TAM 許可サーバー ポリシー DB 基盤構築 2007/07 WebSphere DataPower SOA DataPowerとTAMの連携の簡易なシナリオをもとに、構成定義をご紹介します。 このシナリオでは、Inbound方向のリクエストについて、UserName Tokenに含まれる ユーザーID,パスワードによる認証と、リクエストされたURLに対するアクセスがそのユー ザーに対して許可されているかをチェックする認可制御を行います。 22 連携 08.Tivoli DataPowerとTAMの連携シナリオ TAM連携におけるAAA構成 AAAアクションの以下の項目を設定 5 リソース の抽出 UserName Token SOAP/XML Message AAA Framework リソース のマップ Web Service URI SOAP op name Transfer amount 2 1 IDの IDの抽出 SAML Username token SSL client cert HTTP Basic Auth 4 Authorize Authenticate クレデン シャルの シャルの マップ SAML assertion Non-repudiation Monitoring Audit & Accounting 7 UserName Token SOAP/XML Message 6 3 TAM LDAP TAM 許可サーバー 基盤構築 2007/07 WebSphere DataPower SOA DataPowerのAAA Frameworkの各コンポーネントについて、以下の項目を順番に設 定していきます。 1.識別(Identification)方法の選択 2.認証方式の選択 3.TAM構成ファイルとSSL鍵の生成 4.TAM許可サーバーの指定 5.リソースの抽出とオブジェクト・スペースへのマッピング 6.認可方法の選択 7.ログの設定 23 連携 08.Tivoli DataPowerとTAMの連携シナリオ XML Firewall、Web Service Proxy、マルチプロトコル・ゲートウェイなどにて AAAアクションを追加する アクションを ドラッグ&ドロップ する AAA 基盤構築 2007/07 WebSphere DataPower SOA XML Firewall,Web Service Proxy,マルチプロトコル・ゲートウェイなどにて、AAAの構 成を行います。 UserName Tokenの署名や暗号化がされている場合は、VerifyやDecryptをAAAアク ションの前に構成しておく必要があります。 ここでは、VerifyやDecryptは構成済みであると想定し、AAAアクションについて定義例 を紹介していきます。 24 連携 08.Tivoli 識別(Identification)方法の選択 クライアントの識別子をどのように決定するかを指定する 複数の方法を指定する事も可能 クレデンシャルMAPや認証システムが複数ケースを処理できる必要がある 基盤構築 2007/07 WebSphere DataPower SOA 当シナリオでは、UsernameTokenを選択します。 複数のリクエスターがそれぞれ異なるTokenや識別方法を行う場合など、複数の方法を 選択する事も可能です。そのような場合は、後続のクレデンシャルMAPの設定や認証 システム側での構成で、それらの複数の識別方法を処理できる事が必要です。 25 連携 08.Tivoli 認証方法の選択 どのように認証を行うかを一覧から選択する TAM連携の場合は、「Contact Tivoli Access Manager」を選択 Contact Tivoli Access Manager を選択 構成ファイルを 生成するために、 「+」をクリックする。 TAM 基盤構築 2007/07 WebSphere DataPower SOA Contact Tivoli Access Managerを選択します。 認証処理は、TAM LDAPに対して行われます。 認証時のLDAP側でのAuditログの例 AuditV3--2007-05-17-20:20:54.266+09:00--V3 Search--bindDN: cn=DataPower/9.188.198.164,cn=SecurityDaemons,secAuthority=Default--client: 9.188.198.167:60287--connectionID: 53--received: 2007-05-17-20:20:54.266+09:00--Success base: O=IBM,C=JP scope: wholeSubtree derefAliases: neverDerefAliases typesOnly: false filter: (secdomainid=DEFAULT%FRED) AuditV3--2007-05-17-20:20:54.267+09:00--V3 Search--bindDN: cn=DataPower/9.188.198.164,cn=SecurityDaemons,secAuthority=Default--client: 9.188.198.167:60287--connectionID: 53--received: 2007-05-17-20:20:54.266+09:00--Success base: SECAUTHORITY=DEFAULT scope: wholeSubtree derefAliases: neverDerefAliases typesOnly: false filter: (secdomainid=DEFAULT%FRED) : AuditV3--2007-05-17-20:20:54.269+09:00--V3 Bind--bindDN: cn=fred,o=IBM,c=JP--client: 9.188.198.167:43914--connectionID: 89--received: 2007-05-17-20:20:54.269+09:00--Success name: cn=fred,o=IBM,c=JP authenticationChoice: simple AuditV3--2007-05-17-20:20:54.269+09:00--V3 Unbind--bindDN: cn=fred,o=IBM,c=JP--client: 9.188.198.167:43914--connectionID: 89--received: 2007-05-17-20:20:54.269+09:00--Success AuditV3--2007-05-17-20:20:54.271+09:00--V3 Search--bindDN: cn=DataPower/9.188.198.164,cn=SecurityDaemons,secAuthority=Default--client: 9.188.198.167:60287--connectionID: 53--received: 2007-05-17-20:20:54.271+09:00--Success base: cn=Default,cn=Policies,secAuthority=Default scope: baseObject derefAliases: neverDerefAliases typesOnly: false filter: (objectclass=SECPOLICY) attributes: passwordMinLength, secPwdSpaces, passwordMaxRepeatedChars, passwordMinAlphaChars, passwordMinOtherChars, passwordMaxAge, secAcctExpires, timeExpireLockout, secAcctLife, secAcctInactivity, maxFailedLogins, passwordMinAge, passwordMinDiffChars, passwordTimeReuse, numberWarnDays, passwordReuseNum, secTODAccess, secMaxWebSessions 26 連携 08.Tivoli TAM構成ファイルの生成 TAM Policyサーバーと、LDAPサーバーの情報を入力する 「Create....]をクリックすると、右 のような入力画面が表示される。 全てのフィールドに入力してから、 この「Create....]をクリックする。 ローカルディスク に,local:TAM.confと鍵ファイル cert:TAM.kdb, cert:TAM.sthが 生成される。 基盤構築 2007/07 WebSphere DataPower SOA 以下、主要な構成ファイルの設定フィールドについて説明します。 ・Output Configuration File Name TAM構成ファイル名(任意の名前)を入力します。 local:ファイル名.conf という名前でファイルが作成されます。 cert: ディレクトリに、「ファイル名.kdb」と「ファイル名.sth」が生成されます。 ・Tivoli Access Manager Administrator TAM administratorのユーザーID(デフォルトはsec_master)を指定します。 ・Tivoli Access Manager Application ID TAMクライアント名(任意の名前)を指定します。ホスト名-TAMクライアント名で登録されます。 ・Policy Server TAM Policyサーバーのホスト名またはIPアドレスを指定します。 ・LDAP Server LDAPサーバーのホスト名またはIPアドレスを指定します。 ・LDAP Administrator Password LDAPにBINDする(DN) のパスワードを指定します。 27 連携 08.Tivoli TAM構成ファイルとSSL鍵の生成 生成したTAM構成ファイルとSSL鍵をApplyする 生成されたファイルをプル ダウンより、選択して、 「apply」する。 基盤構築 2007/07 WebSphere DataPower SOA TAM構成ファイルの生成時に、作成されたファイルを指定します。 28 連携 08.Tivoli TAM許可サーバーの指定 TAM許可サーバーのIPアドレス、ポート番号を指定する 複数の許可サーバーを指定する事が可能 許可サーバーの障害時に、別の許可サーバーを参照可能 どの許可サーバーを参照するかはWeight(1~10)に基づき決定される 基盤構築 2007/07 WebSphere DataPower SOA 許可サーバーを指定します。 許可サーバーのIPアドレスまたはHost名、ポート番号、Weightを指定します。 Weightは複数の許可サーバーを構成した場合の参照優先順位になります。 値の大きい方が優先されます。障害時は、次にWeightの大きい許可サーバーが参照さ れます。 複数の許可サーバーが同じWeightの場合、負荷バランスされます。 29 連携 08.Tivoli リソースの抽出とオブジェクト・スペースへのマッピング リソース識別方法を指定 ターゲットと保護オブジェクト・スペースのマッピング アクセス制御対象となるリ ソース識別(TAM上の保護 対象オブジェクトにマップさ れる)を選択する。 Tivoli, Customを選択し、 TAM上の保護対象オブ ジェクト・スペース名を指定 する。 基盤構築 2007/07 WebSphere DataPower SOA リソースの識別方法を指定します。 xslやxpathによるリソースマッピングも可能です。 この例では、リクエストにもともと指定されているURLを採用し、 TAMのオブジェクトスペースの/DATAPOWER 配下を参照してリソースに対する許可 チェックを行います。 TAMのオブジェクトスペースは、以下の製品毎に予約されたスペース名があります。こ れらのオブジェクトスペースを「Tivoli Object Space Mapping」に指定して、「Tivoli Object Space Instance Prefix」でprefixを付加して参照する事も可能です。 TAMBI: /PDMQ/<prefix> TFIM: /itfim-wssm/wssm-default/<prefix> WebSEAL: /WebSEAL/<prefix> 30 連携 08.Tivoli 認可方法の選択 TAM ACLの権限フラグを指定する。 許可制御時に、ここで指定したフラグがTAM保護オブジェクトスペース のACLで当ユーザーに対して設定されているかがチェックされる。 基盤構築 2007/07 WebSphere DataPower SOA 許可方法で、Contact Tivoli Access Managerを選択します。 Default Actionで指定したフラグが該当オブジェクトの該当ACLで当ユーザーに対して 許可されているかどうかで認可の判断が行われます。 登録済みのアクションマップ一覧から任意のフラグ(ここでは[WebService]i (TFIM Action)を選択しています) を選択するか、新たにフラグを作成する事も可能です。 31 連携 08.Tivoli ログの設定 AAA処理でのモニターの対象、ログ・レベルを指定 アクセス許可/拒否のカウンター、閾値 アクセス許可/拒否時のログ・レベル 基盤構築 2007/07 WebSphere DataPower SOA Monitors アクセス許可/拒否のモニター対象を設定します。 取得対象のリソース(リクエストURL)や条件(IPアドレス、メソッド、ヘッダーなど)、イン ターバル、閾値などの詳細条件を設定可能です。指定したインターバルで閾値を超え た場合のアクション(ログへの記録、リクエストの拒否など)が指定可能です。 Reject Counter Tool 認証失敗の頻度(時間間隔と回数)や、その閾値を超えた場合に、一定時間アクセスを 禁止する(Block Interval)などの処理をパラメータとして設定可能です。 Logging アクセス許可/拒否に対して、それぞれログを取得するか、取得する場合のログレベル (どのレベルとしてログに記録するか)を指定します。 32 連携 08.Tivoli TFIMとの連携 基盤構築 2007/07 WebSphere DataPower SOA 33 連携 08.Tivoli TFIMとは IDフェデレーション 異なる認証サイト間のシングル・サインオンを提供 シングルサイン・オン、シングルサイン・オフ アカウント連携、アカウント連携解除 アイデンティティ・プロバイダの解決 Liberty ID-FF, WS-Federation, SAML WSSM(Webサービス・セキュリティ・マネージメント) Webサービスにおける認証・認可機能を提供 WS-Trust、Security Trust Service (STS)の実装 プロビジョニング・サービス 異なる認証サイト間のユーザーおよび属性のプロビジョニング WS-Provisioning サービスによるサイト間のレポジトリ連携 TFIM WS-ProvisioningコネクターでITDI(IBM Tivoli Directory Integrator)と連携 ローカル・レポジトリの更新はITDIで実施 基盤構築 2007/07 WebSphere DataPower SOA TFIMが提供する3つの主要な機能について紹介します。 ・IDフェデレーション 複数サイト間、異なるセキュリティ・ドメイン間のシングルサインオンを実現する機能で、 SAML,WS-Federation,Libertyで標準化が進めれています。TFIM V6.1は、SAML 1.0/1.1/2.0、Liberty ID-FF 1.1/1.2、WS-Federationをサポートします。 ・WSSM(Web Service Security Management) IDフェデレーションがパッシブクライアント(ブラウザなど)のシングル・サインオンを対象 としているのに対して、WSSMは、アクティブクライアント(Webサービス リクエスター) のフェデレーション、Webサービスによるアプリケーション間の認証・認可、信頼の確立 に必要な機能を提供します。Token Management (Tokenの検査やマッピング)、 Identity&Attribute Management (IDや属性のXSL,カスタムJavaコードによるマッピン グ)、認可制御 (WSDLレベルのオブジェクト、TAM 許可サーバーとの連携による認可 制御)およびWS-Trustサーバー側機能(WASやDataPowerなどに対するSecurity Trust Service インターフェース)を提供します。 ・プロビジョニング・サービス ローカルとリモートのアカウント情報をリンクしたり、ID情報の更新・変更を連携するため のサービス。標準仕様が WS-Provisioning(http://www.ibm.com/developerworks/library/ws-provis/)で定義さ れています。TFIMは、WS-PサービスおよびITDI用のサンプル・アセンブリラインを提供 します。 34 連携 08.Tivoli TFIMの構成要素 TFIM Trust Service Alias Service Key Service(KESS) SSO Protocol Service (SPS) Provisioning Service Web Runtime Service Security Management(WSSM) Web Service Trust Handler WAS V6.0、WS GW 6.0の拡張機能として、TFIMが提供 Webサービスの認証・認可機能 TFIMコンソール WebベースのTFIM構成管理機能を提供 基盤構築 2007/07 WebSphere DataPower SOA IDフェデレーションに必要な各種のサービスとWSSMで利用されるWS-Trust Service は、TFIM Runtimeとして提供されます。 WSSMでは、WebSphere Application Serverのplug-inとしてTFIM Trust Handlerを 提供します。 TFIM Trust Handlerにより、TFIM Runtimeが提供するTrust ServiceにTokenの検査 や生成、マッピングをリクエストすることが可能になります。 TFIMコンソールは、ISC(IBM Integrated Solutions Console)フレームワークを利用し ます。 ISCはWASおよびWebSphere Portal Serverをベースとしており、複数のIBM製品を 管理可能な統合コンソール基盤を提供します。 35 連携 08.Tivoli TFIMとDataPowerの連携 TFIM Trust ServiceがSecurity TokenのValidation,マッピングを行う Webサービス サービス リクエスト サービス リクエスト Web wsse:SAML Token> < Web <wsse:UserName Token> TFIM Runtime WS-Trust Securityトークンの マッピング KESS TFIM管理サービス WAS Trust Service STS 認可要求 IDマッピング、TAMクレデンシャルの生成 Auth Service TFIM管理コンソール WAS Alias Service TAM Policyサーバー 許可サーバー ポリシーDB LDAPサーバー ユーザー情報 基盤構築 2007/07 WebSphere DataPower SOA DataPowerはWS-Trust Security Token Service(STS)のリクエスターとして動作しま す。TFIMのSTSをコールし、Tokenの検査、マッピングを要求します。TFIMはLDAPと 連携してIDのマッピングやTAMの許可サーバーと連携して認可処理を行います。 図の例ではInbound方向のリクエストに対して、SAML Tokenを検証、認可のチェック、 UserName Tokenに変換してWebサービスに送信する例を示しています。 36 連携 08.Tivoli TFIMの認可制御 WSDL2FIMユーティリティでオブジェクト生成 生成 WebサービスのWSDLからTAMの保護オブジェクトスペースを自動 は、Conatainer/Service/PortType/ perationで される 階層 O 作成 オブジェクトに対して、ACLやPOPをアタッチする TFIM Trust Serviceは、要求されたOperationに対するローカルユーザー(TAM Credentialで)の権限チェックを実施する XSLマッピングルールによるユーザー、 シャルを 生成 TFIM Runtime Trust Service 認可 チェック 属性のマッピング(必要に応じて)、TAMクレデン TAM 保護オブジェクトスペース /itfim-wssm /ContainerA ACL-1 /ServiceName XSL Mapping Roule /PortType POP /Operation WAS /ContainerB 基盤構築 2007/07 WebSphere DataPower SOA オブジェクトスペースへの登録は、手動でpdadminコマンドで実行するか、または、 WSDL2FIMユーティリティを使用して、WSDLから自動生成する事ができます。 ACLやPOPでアクセス権限、アクセスポリシーを定義、対象オブジェクトにアタッチしま す。 Web Serviceをリクエスト(invoke)する権限を与えるためのACLの操作フラグとして、 [WebService]i が定義されています。例えばBankUsersというグループにWeb Service をリクエストする権限を設定するためのACLコマンドは以下のようになります。 acl modify acl-servicea set group BankUsers T[WebService]i このaclを保護対象のオブジェクトにアタッチします。 acl attach /itfim-wssm/wssm-default/servicea acl-servicea WSDL2FIMユーティリティ使用の際は、DataPowerとの互換性の制限について最新の 保守情報をご確認下さい。 37 連携 08.Tivoli DataPowerとTFIMの連携シナリオ シナリオ リクエスターからのInboud方向のアクセス SAML Tokenで認証 リクエストURLに対する認可 UserName Tokenに変換してリクエストを転送 Webサービス リクエスト <wsse:SAMLToken> サービス リクエスト Web <wsse:UserName Token> Webサービス マッピング要求 Token TAM 許可サーバー ポリシー DB TFIM LDAP サーバー ユーザー 情報 基盤構築 2007/07 WebSphere DataPower SOA Inbound方向のアクセスで、SAML Tokenを受け取り、TFIMで認可制御、UserName Tokenに変換してWebサービスに転送するシナリオについて、具体的な定義例を見て いきます。 38 連携 08.Tivoli DataPowerとTFIMの連携シナリオ TFIM連携におけるAAA構成 AAAアクションの以下の項目を設定 3 AAA Framework リソース のマップ リソース の抽出 SAMLtoken SOAP/XML Message Web Service URI SOAP op name Transfer amount Authorize 2 1 IDの IDの抽出 5 4 Authenticate SAML WS-Security SSL client cert HTTP Basic Auth TAM LDAP クレデン シャルの シャルの マップ ポスト処理 ポスト処理 Audit & Accounting SAML assertion Non-repudiation Monitoring 6 UserName token SOAP/XML Message TFIM 基盤構築 2007/07 WebSphere DataPower SOA DataPowerのAAA Frameworkの各コンポーネントについて、以下の項目を順番に設 定していきます。 1.識別(Identification)方法の選択 2.認証方式の選択 3.リソース識別方法の選択 4.認可方法の選択 5.ポスト処理の指定 6.TFIM情報の設定 39 連携 08.Tivoli DataPowerとTFIMの連携シナリオ XML Firewall,Web Service Proxy,マルチプロトコル・ゲートウェイなどにて、 AAAアクションを追加する アクションを ドラッグ&ドロップ する AAA 基盤構築 2007/07 WebSphere DataPower SOA XML Firewall、Web Service Proxy、マルチプロトコル・ゲートウェイなどにて、AAAの 構成を行います。 SAML Tokenが署名、暗号化されている場合、Verify,DecryptアクションをAAAアクショ ンの前に実行する必要があります。 ここでは、Verify,Decryptは構成済みであると想定し、AAAアクションについて構成例を 紹介します。 40 連携 08.Tivoli 識別方法の選択 クライアントの識別子をどのように決定するかを指定 基盤構築 2007/07 WebSphere DataPower SOA このシナリオでは、SAML Attribute AssertionまたはSAML Atuthentication Assertion のいずれかでクライアントIDを識別する事を指定しています。 リクエスターはいずれかのSAML AssertionをSOAPヘッダーに含めることで認証を行う 事が出来ます。 41 連携 08.Tivoli 認証方法の選択 SAML Assertionによる認証方式を選択 基盤構築 2007/07 WebSphere DataPower SOA UserName TokenでユーザーIDとパスワードによるLDAPでの検査とは異なり、SAM Tokenにはパスワードは含まれていません。 通常、SAML Tokenでの認証は、署名の検査によって行われます。 42 連携 08.Tivoli リソース識別方法の選択 許可制御の対象となるリソース識別方法を選択 このシナリオでは、バックエンドサーバーに送るURLを選択 基盤構築 2007/07 WebSphere DataPower SOA このシナリオでは、リソース識別方法として、バックエンドサーバーに送るURLを選択し ます。 43 連携 08.Tivoli 認可方法の選択 この例ではDataPowerでの認可制御として、認証済みクライアントであ れば全て許可する設定を指定 基盤構築 2007/07 WebSphere DataPower SOA 認可制御はTFIM側で行うため、DataPowerでは全て許可にしています。 44 連携 08.Tivoli ポスト処理の指定 TFIMにTokenのマッピングを要求するための設定 に対して Token マッピン グを要求するために、onにす る TFIM から へマッピングす 側の構成に対し を要求するた SAML Token UsernameToken TFIM Token Mapping るための て めの設定 基盤構築 2007/07 WebSphere DataPower SOA Request TFIM Token Mapping TFIMにTokenマッピングを要求するために、Request TFIM Token Mapping をonにし ます。 Retrieval Method TFIMからTokenをリトリーブする方法を選択します。このシナリオではCallTFIMを選択 します。他にFromMCがあり、それぞれ以下の動作になります。 CallTFIM: 省略時値。TFIM にTokenマッピングが要求されその結果が使用されます。 FromMC: ポスト処理ではTFIMをCallしません。クレデンシャルのマップ処理でTFIMを Callしている場合、その時に返されたTokenが使用されます。 Replacement Method TFIMから返されたTokenをどのように扱うかを選択します。このシナリオではallを選択し ます。他にreplaceとpreserveがあり、それぞれ以下の動作になります。 all: 省略時値。TFIMから返されたTokenが既存のTokenに置き換えられます。 replace: 既存のTokenを消さずに、付加されます。同一TypeのTokenがある場合は置 き換えられます。 preserve: 既存のTokenを消さずに、付加されます。同一TypeのTokenがある場合は、 既存のTokenを優先します。 45 連携 08.Tivoli TFIM情報の設定 Tokenマッピングを要求するために必要なTFIM情報の設定 基盤構築 2007/07 WebSphere DataPower SOA このシナリオでは、以下のTFIM情報を設定します。 Request Token Format: SAML 2.0 Applies-To Address: http://scenario2saml2ut/appliesto Issuer: http://scenario2saml2ut/issuer Port Type: EchoService Operation: whoAmI ・Admin State このサービスをenableにするかdisableにするかを指定します。 ・Server Address TFIMのホスト名またはIPアドレスを指定します。 ・Port TFIMのポート番号を指定します。 ・Compatibility Mode TFIMのバージョンを指定します。バージョンに合わせたネームスペースやWS-Trust のメッセージが選択されます。 ・Request Token Format リクエストのTokenタイプを指定します。TFIMのバージョンによりサポートされるToken が異なります。 TFIM V6.0: Custom、SAML1.0/1.1、WSUserNameToken TFIM V6.1: BinarySecurityToken、Custom、CustomToken、SAML1.0/1.1/2.0、 WSKerberosToken、WSUserNameToken、WSX509Token ・Applies-To Address、Issuer、PortType、Operation このtokenを処理するTFIMサービス情報を指定します。 46 連携 08.Tivoli TFIMの構成 TFIM側での構成 モジュール・インスタンスの生成 SAML20STSModule UsernameTokenSTSModule トラスト・チェインの生成 Applies To Address, Issuer Address,portの指定 実行する処理モジュールの順番と処理内容を定義 Order Module Instance Module Type Mode 1 senario2saml20 SAML20STSModule validate 2 Default Map Token MapModuleInstance map 3 senario2usernametoken UsernameToken issue 基盤構築 2007/07 WebSphere DataPower SOA TFIMコンソールよりTFIMを構成します。以下に定義例を示します。 ・モジュールインスタンスの生成 モジュールインスタンスの生成では、Tokenを処理するモジュールとその名前を設定し ます。 Tivoli Federated Identity Manager > Configure Trust Service > Module Instances, Createをクリック。 SAML20STSModule を選択 任意の名前を指定、ここではscenario2saml20 UsernameTokenSTSModuleを選択 任意の名前を指定、ここではscenario2usernametoken ・Trust Chainの生成 Trust Chainの生成では、実行する処理モジュールと処理内容を定義します。 Tivoli Federated Identity Manager> Configure Trust Service > Trust Service Chains, でCreateをクリック。 chainに任意の名前を指定。ここではScenario2SAML20ToUT、request type は Validate。 Applies To と Issuer addresses に、DataPower側での設定と合わせる。 NameValueApplies To AddressREGEXP:(.*scenario2saml2ut/appliesto) Issuer Address * 以下、テーブルに示した通りのモジュール構成を行います。 47 連携 08.Tivoli DataPower vs TFIM TFIMは汎用的なSecurity Token Server 企業内の各システムとの連携 WAS WSSM DataPower TAM その他のWS-Trust互換のクライアント ITDI (WS-Provisioning Connector) IDマッピング・プロバイダーとして機能 IDフェデレーション(SSO)機能のサポート DataPowerもTokenマッピング機能を提供 他のアプリケーションからはコールできない IDフェデレーション(SSO)機能は提供しない 簡易構成ではDataPower、エンタープライズ・レベルのインフラとしてはTFIM連携を 推薦 基盤構築 2007/07 WebSphere DataPower SOA 簡易なWebサービスメディエーション、Tokenメディエーション、IDマッピングであれば DataPowerで対応可能ですが、IDフェデレーションによる異なる認証サイト間のSSO要 件がある場合や、長期的な企業のインフラとしての構築を考えた場合は、TFIM連携ソ リューションの適用が推薦されます。 48 連携 08.Tivoli まとめ 認証の連携(TAM) TAM LDAPサーバーのユーザー情報を認証で利用可能 認可の連携(TAM、TFIM) TAM Policyサーバーで許可対象とアクセスリストが管理される 許可要求をTAM許可サーバー経由でチェックする TFIMと連携する場合は、TFIMに許可サーバー経由でチェックさせる事も可能 トークン・マッピング(TFIM) TFIMのWS-Trust セキュリティー・トラスト・サービスにより、トークンのマッピング が可能 DataPowerでも同等の機能はあるが他のアプリケーションからはコールできない 基盤構築 2007/07 WebSphere DataPower SOA Web Serviceに対するSecurity Tokenを使用した認証認可処理において、DataPower ではユーザー管理、認可制御の管理の仕組みを提供していません。TAMと連携する事 でユーザー管理、認可制御の管理が可能となり、より実用的なAAA基盤が構築できま す。 Security Tokenマッピングが必要な場合、DataPowerでも実現が可能ですが、他の サービスに対してWS-Trustのサービスインターフェースを提供していません。 企業内 のWebサービスがWS-TrustでトークンやIDのマッピング、許可情報にアクセスしたい場 合、TFIMが有効です。このようなケースではDataPowerとTFIMの連携が推薦されます。 49