12/18にリリースされていました。
アップデート内容ですが、"Geneva" Team Blogによると、下記の通りです。
・SAML 2.0 protocol support for Identity Provider Lite, Service Provider Lite and the eGov 1.5 Profile verified by Liberty Interoperable SAML 2.0 interoperability testing
→以前お知らせしたようにLibertyのSAML2.0相互運用性にパスしています。
・Simplified user experience for configuring high availability federation server farm and proxy deployments
→冗長構成のフェデレーションサーバファームとProxyのデプロイが簡単に。
・Automatic encryption and signing certificate distribution and rollover across a farm of multiple federation servers, enabling zero touch management of trust relationships
→自動暗号化、証明書配布署名、複数のフェデレーションサーバから構成されるファーム間のロールオーバー、操作なしでの信頼関係構成
・Choice of deploying without SQL Server for storing AD FS 2.0 configuration data
→ADFS2.0の構成データストア用のSQL Serverなしでのデプロイが可能に
・Claims based authorization rules for restricting security token issuance
→制限されたセキュリティトークン発行の為のクレイムベース認可ルール
・Improved events, audits, and tracing for diagnostics
→診断のためのイベント、監査、トレースの増強
・Complete PowerShell support for end to end AD FS 2.0 management
→ADFS2.0の管理をするためのPowerShellの完全サポート
・Lots of other fixes and UI improvements!
→その他多数の修正とUIの改善
また、同時に以下のモジュールもリリースされています。
・Microsoft Federation Extensions for SharePoint 3.0 RC
・Windows CardSpace 2.0 Beta 2 Refresh
例によってVMイメージ(VHD)もあわせてダウンロード可能なので、環境をお持ちの方はそちらが手軽かも知れません。(私はHyper-V環境を持っていないのでゼロからの構築になりますが・・・)
2009年12月22日火曜日
2009年12月21日月曜日
安全なクラウド・コンピューティングの実現に向けたガイドライン
CSA(Cloud Security Alliance)が12/17にSecurity Guidance for Critical Areas of Focus in Cloud Computing V2.1をリリースしています。
ガイドラインによるとクラウドコンピューティングの定義は、
1)オンデマンドかつセルフサービス方式で利用されるようになっていること
2)ネットワーク経由でさまざまな場所からアクセスできること
3)共有コンピューティング・リソース・プールからリソースが提供されること
4)必要に応じて利用規模を迅速に拡大、縮小できること
5)何らかの方法で使用量が測定されること
だそうです。
また、クラウド環境におけるセキュリティを下記の13の領域(ドメイン)に分割してそれぞれに関する指針が提示されています。
1)Cloud Computing Architectural Framework
2)Governance and Enterprise Risk Management
3)Legal and Electronic Discovery
4)Compliance and Audit
5)Information Lifecycle Management
6)Portability and Interoperability
7)Traditional Security, Business Continuity, and Disaster Recovery
8)Data Center Operations
9)Incident Response, Notification, and Remediation
10)Application Security
11)Encryption and Key Management
12)Identity and Access Management
13)Virtualization
その中で12番目に来ている「アイデンティティ&アクセス管理」についてざくっと紹介しておきます。
ガイドラインによるとアイデンティティ&アクセス管理を以下の4つの主要な機能に分けています。
・アイデンティティプロビジョニング/デプロビジョニング
・認証(Authentication)
・連携(Federation)
・認可(Authorization)/ユーザプロファイル管理
資料ではそれぞれの機能領域について以下のように解説をしています。
◆アイデンティティプロビジョニング
クラウドコンピューティングサービスを採用する組織にとって主要なチャレンジのひとつはクラウドへのユーザのセキュアかつタイムリーなプロビジョニングとデプロビジョニングである。その上、企業内のユーザ管理プロセスに投資をしてきた企業はそれらのプロセスと経験をクラウドサービスに拡張/展開しようとするであろう。
◆認証(Authentication)
企業がクラウドサービスを活用し始める再、信頼でき、管理できる方法でのユーザ認証は重大な要求である。企業はクレデンシャル管理、マルチファクター認証等の強度の高い認証、委任された認証、すべての種類のクラウドサービスに渡る信頼の管理の様な認証に関連する取り組みを行う必要がある。
◆連携(Federation)
クラウドコンピューティング環境においてはアイデンティtフェデレーション(Federated Identity Management)は、企業がその企業が選択したアイデンティティプロバイダを使用してクラウドサービスのユーザ認証を行う上で、重大な役割を演じる。その中で、サービスプロバイダとアイデンティティプロバイダの間でID属性を安全な方法で交換することは重要な要求である。クラウド内でアイデンティティフェデレーションを考える企業は、サポートされる範囲において、アイデンティティライフサイクル管理や信頼性・完全性を守るあらゆる認証方式を兼ね備える様々なチャレンジやソリューションを理解すべきである。
◆認可/ユーザプロファイル管理
ユーザプロファイルとアクセスコントロールポリシーに対する要求は対象となるユーザがコンシューマの様に個人なのか、従業員や学校や医療機関など企業に所属しているのかによって様々である。SPI環境(※)におけるアクセスコントロールは、クラウドサービスへのアクセスをコントロールし、監査可能な方法で実行する為に使用するユーザプロファイルとポリシー情報の信頼関係を構築することを含む。
※SPI:以下の頭文字
Software as a Service
Platform as a Service
Infrastructure as a Service
また、その上で各機能に対する推奨ポイントを以下のようにまとめています。
◆アイデンティティプロビジョニングに関する推奨
・クラウドプロバイダによって提供されるケイパビリティは現在の企業の要求には適切とは言えない。カスタマーは管理の複雑性を増大させるクラウドプロバイダに特化したカスタムコネクタを開発する様なプロプライエタリなソリューションを避けるべきである。
・カスタマーはクラウドプロバイダによって提供される実用的で(望ましくはSPMLスキーマに則った)標準的なコネクタを利用すべきである。もしクラウドプロバイダが現在SPMLに対応していないのであれば、対応するように要求すべきである。
・クラウドカスタマーは自身の信頼できるアイデンティティ情報レポジトリをクラウドのアプリケーションとプロセスに対応できるように修正もしくは拡張すべきである。
◆認証(Authentication)に関する推奨
クラウドプロバイダとカスタマ企業は両者ともクレデンシャル管理、強固な認証に関して適切にリスクを低減させる費用対効果の良いソリューションで実現させるべきである。
SaaSおよびPaaSプロバイダは彼らのアプリケーションやプラットフォームにアクセスする為のビルトインの認証サービスもしくは企業に認証を委任する為のサービスを提供している。カスタマへは認証方式について以下の選択肢が提供される。
・企業向けの認証。企業はユーザ認証をフェデレーションによってSaaSベンダと信頼関係が構築された企業自身のアイデンティティプロバイダを経由して実施する。
・個人ユーザ向けの認証。企業は複数のサイトにおいて単一のクレデンシャルセットの利用を可能にするGoogleやYahoo,OpenID、LiveIDなどのユーザセントリック認証を利用する。
・認証委任する為のプロプライエタリな方式を要求するSaaSプロバイダは継続する前に適切なセキュリティ検証がなされているかを徹底的に検証されるべきである。一般的にはオープンスタンダードを利用すべきである。
IaaSについては認証戦略は企業における既存環境を利用できる。
・IT要員については既存のシステムと手続きを利用できるので、VPNの確立が良いと思われる。
・いくつかのソリューションは企業ネットワークとのVPNトンネルを作成する、もしくは連携させることが可能である。VPNトンネルはSSOやLDAPベースの認証システムなど既存のアイデンティティ管理システムをアプリケーションが利用するような場合に有効である。
・VPNトンネルが使えないような場合はアプリケーションはSSLの様なネットワークの暗号化とともに様々なフォーマット(SAMLやWS-Federationなど)の認証アサーションに対応する様に設計されるべきである。このアプローチは企業に対し、企業内だけでなくクラウドについてもSSO連携(Federated SSO)が可能にする。
・OpenIDはアプリケーションが企業ユーザを超えて使われる場合における別の選択肢である。しかしながら、OpenIDのクレデンシャルのコントロールは企業の外部にあるので、そのようなユーザに対するアクセス権限は適切に制限されるべきである。
・クラウドプロバイダによって提供されるローカル認証サービスはOATHに準拠すべきである。OATHに準拠したソリューションであれば、企業は単一ベンダーの認証クレデンシャルに固定されることを避けることができる。
・(テクノロジーに関係なく)強固な認証を有効にするためにクラウドアプリケーションは企業にSAMLで認証を委任する機能をサポートすべきである。
・クラウドプロバイダはワンタイムパスワードやバイオメトリクス、デジタル証明書、ケルベロスなど様々な強固な認証オプションを提供することを考えるべきである。このことは企業に対して彼らの既存インフラの利用についての別の選択肢を提供する。
◆連携(Federation)に関する推奨
クラウドコンピューティング環境においてアイデンティティの連携は、連携した企業に認証、シングルサインオン、サービスプロバイダとアイデンティティプロバイダの間での属性交換を有効にする為の主要な要素である。クラウド内でアイデンティティフェデレーションを考える企業は、サポートされる範囲において、アイデンティティライフサイクル管理や信頼性・完全性を守るあらゆる認証方式を兼ね備える様々なチャレンジやソリューションを理解すべきである。
・クラウドプロバイダを探している企業はそのプロバイダが最低でも一つの標準(SAML、WS-Federation)をサポートしていることを確認すべきである。SAMLは主要なSaaS、PaaSクラウドプロバイダによって広くサポートされているフェデレーション標準である。複数の標準をサポートすることは柔軟性を増すことを可能にする。
・クラウドプロバイダは異なったアイデンティティプロバイダから標準フェデレーションフォーマットを受け入れる為の柔軟性を持つべきである。しかしながら現状の大多数のクラウドプロバイダは単一の標準(例えばSAML1.1やSAML2.0)だけをサポートしている。クラウドプロバイダには各種フェデレーションゲートウェイによって実装されることが考えられる複数のフェデレーショントークンをサポートすることが望まれる。
・組織は連携されたパブリックSSOと連携されたプライベートSSOの比較検討をすることを望むと考えられる。連携されたパブリックSSOはクラウドプロバイダとSAMLやWS-Federationの様な標準に基づき連携するが、一方で連携されたプライベートSSOはVPNを介して既存のSSOアーキテクチャを利用する。
・組織はトークンの発行と確認を管理するためにフェデレーションの実装を外部に出すためにフェデレーションゲートウェイを選択することを望むと考えられる。この方法を利用することで企業はフェデレーションゲートウェイに対して各種トークンの発行を委任することができる。そして、フェデレーションゲートウェイはトークンのフォーマットを変換することが可能である。
◆アクセスコントロールに関する推奨
クラウドサービスに関するアクセスコントロールソリューションの選択や妥当性のレビューは様々な側面を持ち、以下の考慮を伴なう。
・サービスやデータの種類に応じたアクセスコントロールモデルの適切さのレビュー
・ポリシーやユーザプロファイル情報の信頼できるソースを認識する
・データに対する必要なプライバシーポリシーへのアクセスサポート
・ポリシーとユーザ情報を特定する為のフォーマットの選択
・ポリシー管理ポイント(PAP)からポリシー決定ポイント(PDP)への伝搬ポリシーのためのメカニズムの決定
・
ポリシー情報ポイント(PIP)からポリシー決定ポイント(PDP)へのユーザ情報の伝搬に関するメカニズムの決定
・ポリシー決定ポイントからのポリシー決定の要求
・ポリシー強制ポイント(PEP)におけるポリシー決定の強制
・監査に必要なログ情報
◆IDaaSに関する推奨
Identity as a Service(IDaaS)はプライバシー、完全性、監査可能性についての追加の考慮をした上で、内部IAMの導入がそうしたようにベストプラクティスに従う必要がある。
・企業内ユーザにとって。管理者はクラウドプロバイダが提供するクラウドに安全にアクセスするために提供されるオプション、もしくは直接のVPN接続やSAML等の業界標準と強固な認証によるアクセスを比較レビューする必要がある。クラウドを使う事によるコスト削減は従業員情報が外部に保管されることに起因するプライバシー考慮に関するリスク緩和とバランスされる必要がある。
・パートナーなどの外部ユーザにとって。情報オーナーは彼らのSDLC※に脅威に対するアセスメントと同様にIAMの相互作用について盛り込む必要がある。アプリケーションセキュリティ(様々なコンポーネントの相互に作用、それらにより発生するSQLインジェクションやクロスサイトスクリプティングなど脆弱性)も同様に考慮され守られなければならない。
・PaaSカスタマーはどのIDaaSベンダがプロビジョニング、認証、アクセスコントロールポリシーに関する通信、情報監査について業界標準をサポートしているかの範囲を調査すべきである。
・プロプライエタリなソリューションはプロプライエタリなコンポーネントに対する透過性の欠如によりクラウドにおけるIAM環境に関して重大なリスクとなる。プロプライエタリなネットワークプロトコルや暗号化アルゴリズム、データ通信はしばしばセキュリティ低下や強固さの低下、相互運用性の低下をもたらす。外部化を行う上でIAMコンポーネントにオープンスタンダードを使うことは非常に重要なことである。
・IaaSカスタマーにとって。仮想サーバを起動する際に使用するサードパーティイメージはユーザとイメージ自身の信憑性について確認される必要がある。そのイメージに対して提供されるライフサイクル管理のサポートに関するレビューは社内ネットワークにインストールされるソフトウェアに対するのと同様の確認が必要である。
※SDLC:Software Development Life Cycle
ガイドラインによるとクラウドコンピューティングの定義は、
1)オンデマンドかつセルフサービス方式で利用されるようになっていること
2)ネットワーク経由でさまざまな場所からアクセスできること
3)共有コンピューティング・リソース・プールからリソースが提供されること
4)必要に応じて利用規模を迅速に拡大、縮小できること
5)何らかの方法で使用量が測定されること
だそうです。
また、クラウド環境におけるセキュリティを下記の13の領域(ドメイン)に分割してそれぞれに関する指針が提示されています。
1)Cloud Computing Architectural Framework
2)Governance and Enterprise Risk Management
3)Legal and Electronic Discovery
4)Compliance and Audit
5)Information Lifecycle Management
6)Portability and Interoperability
7)Traditional Security, Business Continuity, and Disaster Recovery
8)Data Center Operations
9)Incident Response, Notification, and Remediation
10)Application Security
11)Encryption and Key Management
12)Identity and Access Management
13)Virtualization
その中で12番目に来ている「アイデンティティ&アクセス管理」についてざくっと紹介しておきます。
ガイドラインによるとアイデンティティ&アクセス管理を以下の4つの主要な機能に分けています。
・アイデンティティプロビジョニング/デプロビジョニング
・認証(Authentication)
・連携(Federation)
・認可(Authorization)/ユーザプロファイル管理
資料ではそれぞれの機能領域について以下のように解説をしています。
◆アイデンティティプロビジョニング
クラウドコンピューティングサービスを採用する組織にとって主要なチャレンジのひとつはクラウドへのユーザのセキュアかつタイムリーなプロビジョニングとデプロビジョニングである。その上、企業内のユーザ管理プロセスに投資をしてきた企業はそれらのプロセスと経験をクラウドサービスに拡張/展開しようとするであろう。
◆認証(Authentication)
企業がクラウドサービスを活用し始める再、信頼でき、管理できる方法でのユーザ認証は重大な要求である。企業はクレデンシャル管理、マルチファクター認証等の強度の高い認証、委任された認証、すべての種類のクラウドサービスに渡る信頼の管理の様な認証に関連する取り組みを行う必要がある。
◆連携(Federation)
クラウドコンピューティング環境においてはアイデンティtフェデレーション(Federated Identity Management)は、企業がその企業が選択したアイデンティティプロバイダを使用してクラウドサービスのユーザ認証を行う上で、重大な役割を演じる。その中で、サービスプロバイダとアイデンティティプロバイダの間でID属性を安全な方法で交換することは重要な要求である。クラウド内でアイデンティティフェデレーションを考える企業は、サポートされる範囲において、アイデンティティライフサイクル管理や信頼性・完全性を守るあらゆる認証方式を兼ね備える様々なチャレンジやソリューションを理解すべきである。
◆認可/ユーザプロファイル管理
ユーザプロファイルとアクセスコントロールポリシーに対する要求は対象となるユーザがコンシューマの様に個人なのか、従業員や学校や医療機関など企業に所属しているのかによって様々である。SPI環境(※)におけるアクセスコントロールは、クラウドサービスへのアクセスをコントロールし、監査可能な方法で実行する為に使用するユーザプロファイルとポリシー情報の信頼関係を構築することを含む。
※SPI:以下の頭文字
Software as a Service
Platform as a Service
Infrastructure as a Service
また、その上で各機能に対する推奨ポイントを以下のようにまとめています。
◆アイデンティティプロビジョニングに関する推奨
・クラウドプロバイダによって提供されるケイパビリティは現在の企業の要求には適切とは言えない。カスタマーは管理の複雑性を増大させるクラウドプロバイダに特化したカスタムコネクタを開発する様なプロプライエタリなソリューションを避けるべきである。
・カスタマーはクラウドプロバイダによって提供される実用的で(望ましくはSPMLスキーマに則った)標準的なコネクタを利用すべきである。もしクラウドプロバイダが現在SPMLに対応していないのであれば、対応するように要求すべきである。
・クラウドカスタマーは自身の信頼できるアイデンティティ情報レポジトリをクラウドのアプリケーションとプロセスに対応できるように修正もしくは拡張すべきである。
◆認証(Authentication)に関する推奨
クラウドプロバイダとカスタマ企業は両者ともクレデンシャル管理、強固な認証に関して適切にリスクを低減させる費用対効果の良いソリューションで実現させるべきである。
SaaSおよびPaaSプロバイダは彼らのアプリケーションやプラットフォームにアクセスする為のビルトインの認証サービスもしくは企業に認証を委任する為のサービスを提供している。カスタマへは認証方式について以下の選択肢が提供される。
・企業向けの認証。企業はユーザ認証をフェデレーションによってSaaSベンダと信頼関係が構築された企業自身のアイデンティティプロバイダを経由して実施する。
・個人ユーザ向けの認証。企業は複数のサイトにおいて単一のクレデンシャルセットの利用を可能にするGoogleやYahoo,OpenID、LiveIDなどのユーザセントリック認証を利用する。
・認証委任する為のプロプライエタリな方式を要求するSaaSプロバイダは継続する前に適切なセキュリティ検証がなされているかを徹底的に検証されるべきである。一般的にはオープンスタンダードを利用すべきである。
IaaSについては認証戦略は企業における既存環境を利用できる。
・IT要員については既存のシステムと手続きを利用できるので、VPNの確立が良いと思われる。
・いくつかのソリューションは企業ネットワークとのVPNトンネルを作成する、もしくは連携させることが可能である。VPNトンネルはSSOやLDAPベースの認証システムなど既存のアイデンティティ管理システムをアプリケーションが利用するような場合に有効である。
・VPNトンネルが使えないような場合はアプリケーションはSSLの様なネットワークの暗号化とともに様々なフォーマット(SAMLやWS-Federationなど)の認証アサーションに対応する様に設計されるべきである。このアプローチは企業に対し、企業内だけでなくクラウドについてもSSO連携(Federated SSO)が可能にする。
・OpenIDはアプリケーションが企業ユーザを超えて使われる場合における別の選択肢である。しかしながら、OpenIDのクレデンシャルのコントロールは企業の外部にあるので、そのようなユーザに対するアクセス権限は適切に制限されるべきである。
・クラウドプロバイダによって提供されるローカル認証サービスはOATHに準拠すべきである。OATHに準拠したソリューションであれば、企業は単一ベンダーの認証クレデンシャルに固定されることを避けることができる。
・(テクノロジーに関係なく)強固な認証を有効にするためにクラウドアプリケーションは企業にSAMLで認証を委任する機能をサポートすべきである。
・クラウドプロバイダはワンタイムパスワードやバイオメトリクス、デジタル証明書、ケルベロスなど様々な強固な認証オプションを提供することを考えるべきである。このことは企業に対して彼らの既存インフラの利用についての別の選択肢を提供する。
◆連携(Federation)に関する推奨
クラウドコンピューティング環境においてアイデンティティの連携は、連携した企業に認証、シングルサインオン、サービスプロバイダとアイデンティティプロバイダの間での属性交換を有効にする為の主要な要素である。クラウド内でアイデンティティフェデレーションを考える企業は、サポートされる範囲において、アイデンティティライフサイクル管理や信頼性・完全性を守るあらゆる認証方式を兼ね備える様々なチャレンジやソリューションを理解すべきである。
・クラウドプロバイダを探している企業はそのプロバイダが最低でも一つの標準(SAML、WS-Federation)をサポートしていることを確認すべきである。SAMLは主要なSaaS、PaaSクラウドプロバイダによって広くサポートされているフェデレーション標準である。複数の標準をサポートすることは柔軟性を増すことを可能にする。
・クラウドプロバイダは異なったアイデンティティプロバイダから標準フェデレーションフォーマットを受け入れる為の柔軟性を持つべきである。しかしながら現状の大多数のクラウドプロバイダは単一の標準(例えばSAML1.1やSAML2.0)だけをサポートしている。クラウドプロバイダには各種フェデレーションゲートウェイによって実装されることが考えられる複数のフェデレーショントークンをサポートすることが望まれる。
・組織は連携されたパブリックSSOと連携されたプライベートSSOの比較検討をすることを望むと考えられる。連携されたパブリックSSOはクラウドプロバイダとSAMLやWS-Federationの様な標準に基づき連携するが、一方で連携されたプライベートSSOはVPNを介して既存のSSOアーキテクチャを利用する。
・組織はトークンの発行と確認を管理するためにフェデレーションの実装を外部に出すためにフェデレーションゲートウェイを選択することを望むと考えられる。この方法を利用することで企業はフェデレーションゲートウェイに対して各種トークンの発行を委任することができる。そして、フェデレーションゲートウェイはトークンのフォーマットを変換することが可能である。
◆アクセスコントロールに関する推奨
クラウドサービスに関するアクセスコントロールソリューションの選択や妥当性のレビューは様々な側面を持ち、以下の考慮を伴なう。
・サービスやデータの種類に応じたアクセスコントロールモデルの適切さのレビュー
・ポリシーやユーザプロファイル情報の信頼できるソースを認識する
・データに対する必要なプライバシーポリシーへのアクセスサポート
・ポリシーとユーザ情報を特定する為のフォーマットの選択
・ポリシー管理ポイント(PAP)からポリシー決定ポイント(PDP)への伝搬ポリシーのためのメカニズムの決定
・
ポリシー情報ポイント(PIP)からポリシー決定ポイント(PDP)へのユーザ情報の伝搬に関するメカニズムの決定
・ポリシー決定ポイントからのポリシー決定の要求
・ポリシー強制ポイント(PEP)におけるポリシー決定の強制
・監査に必要なログ情報
◆IDaaSに関する推奨
Identity as a Service(IDaaS)はプライバシー、完全性、監査可能性についての追加の考慮をした上で、内部IAMの導入がそうしたようにベストプラクティスに従う必要がある。
・企業内ユーザにとって。管理者はクラウドプロバイダが提供するクラウドに安全にアクセスするために提供されるオプション、もしくは直接のVPN接続やSAML等の業界標準と強固な認証によるアクセスを比較レビューする必要がある。クラウドを使う事によるコスト削減は従業員情報が外部に保管されることに起因するプライバシー考慮に関するリスク緩和とバランスされる必要がある。
・パートナーなどの外部ユーザにとって。情報オーナーは彼らのSDLC※に脅威に対するアセスメントと同様にIAMの相互作用について盛り込む必要がある。アプリケーションセキュリティ(様々なコンポーネントの相互に作用、それらにより発生するSQLインジェクションやクロスサイトスクリプティングなど脆弱性)も同様に考慮され守られなければならない。
・PaaSカスタマーはどのIDaaSベンダがプロビジョニング、認証、アクセスコントロールポリシーに関する通信、情報監査について業界標準をサポートしているかの範囲を調査すべきである。
・プロプライエタリなソリューションはプロプライエタリなコンポーネントに対する透過性の欠如によりクラウドにおけるIAM環境に関して重大なリスクとなる。プロプライエタリなネットワークプロトコルや暗号化アルゴリズム、データ通信はしばしばセキュリティ低下や強固さの低下、相互運用性の低下をもたらす。外部化を行う上でIAMコンポーネントにオープンスタンダードを使うことは非常に重要なことである。
・IaaSカスタマーにとって。仮想サーバを起動する際に使用するサードパーティイメージはユーザとイメージ自身の信憑性について確認される必要がある。そのイメージに対して提供されるライフサイクル管理のサポートに関するレビューは社内ネットワークにインストールされるソフトウェアに対するのと同様の確認が必要である。
※SDLC:Software Development Life Cycle
2009年12月10日木曜日
FIM2010RC1 update2リリース
早くもupdate2がリリースされています。
今回からはMicrosoft Updateでのリリースになっており、現在カタログサイトからダウンロード可能です。
今回のリリースでは以下の領域に関する複数の更新を含んでいるとのことです。
•Sets
•Setup
•Codeless Provisioning
•Management Policy Rules
•Portal user interface
•Schema
•Self-service Password Reset
•Synchronization engine
•Workflow
また、update1までの不具合となっていたナビゲーションバーに出てくるリソースの数の不整合が今回のリリースで改修されたようです。
http://social.technet.microsoft.com/Forums/en/ilm2/thread/184bb2b7-b20a-4c8a-ab7d-d7098bd997ba
今回からはMicrosoft Updateでのリリースになっており、現在カタログサイトからダウンロード可能です。
今回のリリースでは以下の領域に関する複数の更新を含んでいるとのことです。
•Sets
•Setup
•Codeless Provisioning
•Management Policy Rules
•Portal user interface
•Schema
•Self-service Password Reset
•Synchronization engine
•Workflow
また、update1までの不具合となっていたナビゲーションバーに出てくるリソースの数の不整合が今回のリリースで改修されたようです。
http://social.technet.microsoft.com/Forums/en/ilm2/thread/184bb2b7-b20a-4c8a-ab7d-d7098bd997ba
2009年12月3日木曜日
FIM2010のパフォーマンス その2
前回に引き続きパフォーマンスに関するネタです。
※前回同様に情報ソースはDarryl Russiさんのblogです。
今回は実際にパフォーマンステストを行った2種類のトポロジの紹介です。また、同時にどのようなハードウェアを使ったのかも紹介されています。
・トポロジ関連情報
http://blogs.msdn.com/darrylru/archive/2009/10/06/fim-2010-performance-testing-topology.aspx
・ハードウェア関連情報
http://blogs.msdn.com/darrylru/archive/2009/10/09/fim-2010-performance-testing-hardware.aspx
※製品チームがリリースに際して実際にテストを行っている環境(トポロジ、スペック)だそうです。マイクロソフトのIT部門のワークロードに対応するサイジングになっているということです。(あくまでテスト環境用のハードウェアですよ、、と断りはついていますが・・・つまりは冗長性についてはあんまり考慮してないってことです)
まず、テストに使ったハードウェアスペックですが、下記の2種類です。
次にトポロジです。
■標準的なトポロジ
いわゆるシンプルな構成です。
・ポータル、FIM Service、FIM Service用DBの同居(ハイスペック機)
・FIM Synchronization Service+DB(ハイスペック機)
の2台構成
■NLBトポロジ
少々複雑な構成です。
・ポータル x2 (NLB)(標準機)
・FIM Service x 2 (NLB)(標準機)
・FIM Service用DB x 1(ハイスペック機)
・FIM Synchronization Service+DB x 1(ハイスペック機)
の6台構成
現実にはハードウェアロードバランサーを使うケースや各DBをクラスタリングするケース、既存のMOSSの中にフロント(ポータル)を取り込む構成など色々あるとは思いますが、あくまでテストのスコープがFIM単体のパフォーマンスなのでこのような構成でテストをしているようです。
次回以降、これらの環境を使って各コンポーネントの実際のパフォーマンス測定を行った結果をご紹介します。
※前回同様に情報ソースはDarryl Russiさんのblogです。
今回は実際にパフォーマンステストを行った2種類のトポロジの紹介です。また、同時にどのようなハードウェアを使ったのかも紹介されています。
・トポロジ関連情報
http://blogs.msdn.com/darrylru/archive/2009/10/06/fim-2010-performance-testing-topology.aspx
・ハードウェア関連情報
http://blogs.msdn.com/darrylru/archive/2009/10/09/fim-2010-performance-testing-hardware.aspx
※製品チームがリリースに際して実際にテストを行っている環境(トポロジ、スペック)だそうです。マイクロソフトのIT部門のワークロードに対応するサイジングになっているということです。(あくまでテスト環境用のハードウェアですよ、、と断りはついていますが・・・つまりは冗長性についてはあんまり考慮してないってことです)
まず、テストに使ったハードウェアスペックですが、下記の2種類です。
コンポーネント | 標準機 | ハイスペック機 |
CPU | Core2 Quad Q6600 2.4GHz | Xeon E5410(Quad Core) 2.33GHz x 2 |
メモリ | 4GB | 32GB |
ディスク | シングルドライブ | 136GB(10krpm) x 8 【内訳】 Cドライブ(OS/アプリケーション) x 1 Eドライブ(SQLログファイル) x 1 Fドライブ(SQLデータファイル) x 6(RAID0) |
次にトポロジです。
■標準的なトポロジ
いわゆるシンプルな構成です。
・ポータル、FIM Service、FIM Service用DBの同居(ハイスペック機)
・FIM Synchronization Service+DB(ハイスペック機)
の2台構成
■NLBトポロジ
少々複雑な構成です。
・ポータル x2 (NLB)(標準機)
・FIM Service x 2 (NLB)(標準機)
・FIM Service用DB x 1(ハイスペック機)
・FIM Synchronization Service+DB x 1(ハイスペック機)
の6台構成
現実にはハードウェアロードバランサーを使うケースや各DBをクラスタリングするケース、既存のMOSSの中にフロント(ポータル)を取り込む構成など色々あるとは思いますが、あくまでテストのスコープがFIM単体のパフォーマンスなのでこのような構成でテストをしているようです。
次回以降、これらの環境を使って各コンポーネントの実際のパフォーマンス測定を行った結果をご紹介します。
2009年11月28日土曜日
FIM2010のパフォーマンス その1
ILM"2"RC0からFIM2010RC1でのエンハンスされた点の一つに「パフォーマンス」があげられていたことを覚えておいででしょうか?
https://idmlab.eidentity.jp/2009/09/fim2010rc1.html
FIM2010の製品チームのDarryl RussiさんがblogでFIM2010のパフォーマンステストについて書いているので、実際どうなのかblogをみていくことにします。
イントロダクションをみると、以下の視点で解説がされることになっています。
1.トポロジ
FIM2010をどのようなトポロジで配備することができるのか?(SQL ServerはFIMServiceと同一筺体に配置するべきなのか?ネットワークロードバランサは使うのか?など)に関して
2.ハードウェア
トポロジ内の各要素をどのようなハードウェアの上で動かすのか?(CPU、メモリ、ディスク、ネットワークは?またドライブ構成やSQL Serverの物理設計は?など)に関して
3.ポリシーオブジェクト
SETやMPR、スキーマ、ワークフロー、同期ルールなどのFIM2010の中のキーとなるコンポーネント(ポリシーオブジェクト)をどのように構成するのかに関して
4.スケール
通常ユーザ数に関連して検討されるスケール(アウト)ですがFIMにおいてはオブジェクトタイプ(グループの数とタイプは?動的グループはあるかなど)についても重視する必要がある。
5.ロード
グループの作成の頻度やパスワードリセット時の負荷、ポータルアクセスかOutlookのアドインか?による負荷(ロード)に関して
次回からこれらの各要素について紐解いていくことにします。
https://idmlab.eidentity.jp/2009/09/fim2010rc1.html
FIM2010の製品チームのDarryl RussiさんがblogでFIM2010のパフォーマンステストについて書いているので、実際どうなのかblogをみていくことにします。
イントロダクションをみると、以下の視点で解説がされることになっています。
1.トポロジ
FIM2010をどのようなトポロジで配備することができるのか?(SQL ServerはFIMServiceと同一筺体に配置するべきなのか?ネットワークロードバランサは使うのか?など)に関して
2.ハードウェア
トポロジ内の各要素をどのようなハードウェアの上で動かすのか?(CPU、メモリ、ディスク、ネットワークは?またドライブ構成やSQL Serverの物理設計は?など)に関して
3.ポリシーオブジェクト
SETやMPR、スキーマ、ワークフロー、同期ルールなどのFIM2010の中のキーとなるコンポーネント(ポリシーオブジェクト)をどのように構成するのかに関して
4.スケール
通常ユーザ数に関連して検討されるスケール(アウト)ですがFIMにおいてはオブジェクトタイプ(グループの数とタイプは?動的グループはあるかなど)についても重視する必要がある。
5.ロード
グループの作成の頻度やパスワードリセット時の負荷、ポータルアクセスかOutlookのアドインか?による負荷(ロード)に関して
次回からこれらの各要素について紐解いていくことにします。
2009年11月20日金曜日
[PDC09]S+S IdentityそしてWIF1.0
USではPDC09が盛り上がっているようですね。
現場の様子は砂金さんがtwitterとblogで実況していただいていたり、オンデマンドの動画配信があるので国内にいても色々と情報を入手できます。
さて、そんな中Kim Cameronのセッションの中でRC1からまだ2週間も経っていないのにWindows Identity Foundation 1.0が発表されてしまいました。
PDC09のKim Cameronによるセッション「Software + Services Identity Roadmap Update」の資料および動画はこちらからダウンロードできます。
Windows Identity Foundation(WIF)関係では下記のものがリリースされました。
・Windows Identity Foundation
・Windows Identity Foundation SDK
・Identity Developer Training Kit (PDC 2009)
他にもMicrosoft .NET Services SDK (Nov 2009 CTP)などもリリースされています。
さすが開発者向けのビッグイベントですね。
今さっそく色々と試していますので、またレポートしようと思います。
現場の様子は砂金さんがtwitterとblogで実況していただいていたり、オンデマンドの動画配信があるので国内にいても色々と情報を入手できます。
さて、そんな中Kim Cameronのセッションの中でRC1からまだ2週間も経っていないのにWindows Identity Foundation 1.0が発表されてしまいました。
PDC09のKim Cameronによるセッション「Software + Services Identity Roadmap Update」の資料および動画はこちらからダウンロードできます。
Windows Identity Foundation(WIF)関係では下記のものがリリースされました。
・Windows Identity Foundation
・Windows Identity Foundation SDK
・Identity Developer Training Kit (PDC 2009)
他にもMicrosoft .NET Services SDK (Nov 2009 CTP)などもリリースされています。
さすが開発者向けのビッグイベントですね。
今さっそく色々と試していますので、またレポートしようと思います。
2009年11月16日月曜日
FIM2010のライセンスモデル
まだリリース前の製品なので完全に確定しているのかどうかは不明確ですが、Technetフォーラムでマイクロソフトのモデレータの方が下記のように発言しています。
FIM 2010 is licensed on a Server + User CAL basis:
・User CALs are required for each person who accesses FIM 2010
・Users for whom the software issues or manages identity information (including digital certificates)
・Admins accessing the FIM 2010 management capabilities
・As in ILM 2007, user access to certificate and smart card management (subset of credential management) requires user CALs
・Exception: CALs are not required to synchronize identity information using ILM
2007 server or MIIS 2003 server technology.
This is use of only FIM Synchronization Server and not FIM Service, FIM Portal or FIM Certificate Management.
・Server license is required for each server that the software is installed on
・There are no Device CALs
簡単にポイントを意訳すると、
・サーバライセンスとユーザCALで構成される
・ユーザCALはFIM2010(ポータル)にアクセスするユーザ、管理者に対して必要となる
・ILM2007/MIISの同期の仕組み(FIM Synchronization Serivce)を使う分にはユーザCALは不要である
・サーバライセンスはソフトウェアがインストールされる各サーバに必要
・デバイスCALはない
ということです。
基本的にILM2007と同様にID情報の同期だけを行うだけならサーバライセンスのみで済みそうですが、(ILM2007でもCLMの機能を使うとCALが必要だったように)デジタル証明書を管理したり、セルフサービスや管理者アクセスを含むポータルアクセスについてはCALが必要になります。
FIMのメリットであるcodeless provisioningやワークフローなどを使うためにはやはり追加で投資が必要になりそうです。
この辺りはこれまで通りの同期の仕組みを続けるのか、追加投資をして新機能を使うのかについて慎重に比較していくことになると思いますが、このライセンスの話だけではなく既存システムからの移行の手間を考えてもしばらくはILM2007/MIISの仕組みが引き続き使われることになるかもしれません。
FIM 2010 is licensed on a Server + User CAL basis:
・User CALs are required for each person who accesses FIM 2010
・Users for whom the software issues or manages identity information (including digital certificates)
・Admins accessing the FIM 2010 management capabilities
・As in ILM 2007, user access to certificate and smart card management (subset of credential management) requires user CALs
・Exception: CALs are not required to synchronize identity information using ILM
2007 server or MIIS 2003 server technology.
This is use of only FIM Synchronization Server and not FIM Service, FIM Portal or FIM Certificate Management.
・Server license is required for each server that the software is installed on
・There are no Device CALs
簡単にポイントを意訳すると、
・サーバライセンスとユーザCALで構成される
・ユーザCALはFIM2010(ポータル)にアクセスするユーザ、管理者に対して必要となる
・ILM2007/MIISの同期の仕組み(FIM Synchronization Serivce)を使う分にはユーザCALは不要である
・サーバライセンスはソフトウェアがインストールされる各サーバに必要
・デバイスCALはない
ということです。
基本的にILM2007と同様にID情報の同期だけを行うだけならサーバライセンスのみで済みそうですが、(ILM2007でもCLMの機能を使うとCALが必要だったように)デジタル証明書を管理したり、セルフサービスや管理者アクセスを含むポータルアクセスについてはCALが必要になります。
FIMのメリットであるcodeless provisioningやワークフローなどを使うためにはやはり追加で投資が必要になりそうです。
この辺りはこれまで通りの同期の仕組みを続けるのか、追加投資をして新機能を使うのかについて慎重に比較していくことになると思いますが、このライセンスの話だけではなく既存システムからの移行の手間を考えてもしばらくはILM2007/MIISの仕組みが引き続き使われることになるかもしれません。
2009年11月11日水曜日
続[ILM2007→FIM2010]データベースごと移行してみる
時間が経ってしまいましたが、先日の続きです。
先日はILM2007とFIM2010RC1ではSynchronization Serviceの使うデータベースの名前が異なるのでインストーラが引継ぎ対象として認識をしてくれない、というところで終わっていました。
その後、試験的に移行元のデータベース名を新しいもの(FIMSynchronizationService)に変更して移行検証をしたところ、問題なく動いてしまいました。
ただ、感覚的にデータベース名を変更する、というのは無理やりな気がしていたので「マイクロソフトがサポートする正式な方法は何なのか?」という観点で情報を集めてみました。
その中でTechnetフォーラムで質問してみたらマイクロソフトの方から返信がありました。
http://social.technet.microsoft.com/Forums/ja-JP/ilm2/thread/780de881-b223-4ad7-9f9e-8617615a90c8
「データベースのリネームという方法でインストーラは移行元として認識をするのか?マイクロソフトとしてこの方法はサポートされるのか?」という質問に対し、
Yes,
Renaming an ILM2007 FP1 Sync Service database and use it with FIM 2010 is supported. That is the only supported upgrade scenario from ILM 2007 to FIM 2010.
という回答をいただきました。
結局この方法しかなく、かつサポートされるということなのでこれが正式な方法だった、ということです。
※当然RCの話なので製品版でどうなるかはわかりませんが・・・
ということで、間単に手順を紹介しておきます。
※前提としてILM2007のデータベースをSQL Server 2008 CU2以降にアップグレードした状態になっていることとします。
1.データベースをシングルユーザモードにする
メンテナンスを行うので当然シングルユーザモードにする必要があります。ということは当然このデータベースを使っているILM2007はとめておく必要があります。
2.データベースの名前を変更する
SQL Server Management Studioからデータベース名を変更します。(データベースを選択して右クリック→名前の変更でOKです)
3.FIM2010RC1のSynchronization Serviceをインストールする
先のデータベースを使うようにインストールを行います。するとRC0の時と同じように既存のデータベースを使うかどうか?というダイアログが表示されるので、「Yes」を選択しインストールを実行します。
4.Synchronization Service(旧Identity Manager)の動作を確認する
普通に起動し、動作できるか確認します。前回お話したようにDLLのリコンパイルは不要でしたが、MADATA以下のMA用フォルダの再作成およびデータのコピーは必要です。
先日はILM2007とFIM2010RC1ではSynchronization Serviceの使うデータベースの名前が異なるのでインストーラが引継ぎ対象として認識をしてくれない、というところで終わっていました。
その後、試験的に移行元のデータベース名を新しいもの(FIMSynchronizationService)に変更して移行検証をしたところ、問題なく動いてしまいました。
ただ、感覚的にデータベース名を変更する、というのは無理やりな気がしていたので「マイクロソフトがサポートする正式な方法は何なのか?」という観点で情報を集めてみました。
その中でTechnetフォーラムで質問してみたらマイクロソフトの方から返信がありました。
http://social.technet.microsoft.com/Forums/ja-JP/ilm2/thread/780de881-b223-4ad7-9f9e-8617615a90c8
「データベースのリネームという方法でインストーラは移行元として認識をするのか?マイクロソフトとしてこの方法はサポートされるのか?」という質問に対し、
Yes,
Renaming an ILM2007 FP1 Sync Service database and use it with FIM 2010 is supported. That is the only supported upgrade scenario from ILM 2007 to FIM 2010.
という回答をいただきました。
結局この方法しかなく、かつサポートされるということなのでこれが正式な方法だった、ということです。
※当然RCの話なので製品版でどうなるかはわかりませんが・・・
ということで、間単に手順を紹介しておきます。
※前提としてILM2007のデータベースをSQL Server 2008 CU2以降にアップグレードした状態になっていることとします。
1.データベースをシングルユーザモードにする
メンテナンスを行うので当然シングルユーザモードにする必要があります。ということは当然このデータベースを使っているILM2007はとめておく必要があります。
2.データベースの名前を変更する
SQL Server Management Studioからデータベース名を変更します。(データベースを選択して右クリック→名前の変更でOKです)
3.FIM2010RC1のSynchronization Serviceをインストールする
先のデータベースを使うようにインストールを行います。するとRC0の時と同じように既存のデータベースを使うかどうか?というダイアログが表示されるので、「Yes」を選択しインストールを実行します。
4.Synchronization Service(旧Identity Manager)の動作を確認する
普通に起動し、動作できるか確認します。前回お話したようにDLLのリコンパイルは不要でしたが、MADATA以下のMA用フォルダの再作成およびデータのコピーは必要です。
2009年11月9日月曜日
FIM2010RC1 update1リリース
先日リリースされたばかりのFIM2010RC1ですが、早くもupdate 1がconnectサイトで公開されています。(要登録)
間もなく一般にはMicrosoft Update経由で公開される予定ですが、現状はこのサイトから個別にダウンロードする必要があります。
対象コンポーネントとダウンロードできるファイル名は下記の通りです。
さて、update内容ですがリリースノートによると下記の通りです。
■QueryとSet
・動的Setのメンバシップ情報が間違っていることに起因した問題の解決
・マルチバリューの属性へのXPathクエリにおける!=オペレータの削除
→今後はnot()関数を使う必要があります
■Synchronization Engine
・マルチマスタ環境(複数の同期元がある状態)においてmember属性を削除してもADとFIMのFull同期時に属性が書き戻されてしまう問題を解決
■ワークフロー
・ワークフローは作成された際のFIM Serviceの外部ホスト名と同じサーバでのみ動作するようになった。このことにより機能毎にFIM Serviceホストを分割することが可能になった。
・要求がタイムアウトした場合にRequestStatus属性がValidatingのまま残る問題を解決
・EnumerateResourcesActivityを使用した際に選択した属性だけでなくすべての属性が返却されてしまう問題を解決
■下記に関連するその他問題の解決と改良
・MPR(Managed Policy Rules)
・ポータルユーザインターフェイス
・セルフサービスパスワードリセット
・スキーマ
来年1月(予定)の正式ローンチに向けて大詰めといった感じでしょうか。
間もなく一般にはMicrosoft Update経由で公開される予定ですが、現状はこのサイトから個別にダウンロードする必要があります。
対象コンポーネントとダウンロードできるファイル名は下記の通りです。
Component | Filename |
FIM 2010 RC1 Synchronization Service (Evaluation edition--this is the version in the public download) | FIMSyncService_EVAL_KB976465.exe |
FIM 2010 RC1 Service and Portal | FIMService_KB976465.exe |
FIM 2010 RC1 Service and Portal Language Packs | FIMServiceLP_KB976465.cab |
FIM 2010 RC1 Add-ins and Extensions | FIMAddinsExtensions_KB976465.cab (Note: versions included for x86 and x64) |
FIM 2010 RC1 Add-ins and Extensions Language Pack | FIMAddinsExtensionsLP_KB976465.cab (Note: versions included for x86 and x64) |
さて、update内容ですがリリースノートによると下記の通りです。
■QueryとSet
・動的Setのメンバシップ情報が間違っていることに起因した問題の解決
・マルチバリューの属性へのXPathクエリにおける!=オペレータの削除
→今後はnot()関数を使う必要があります
■Synchronization Engine
・マルチマスタ環境(複数の同期元がある状態)においてmember属性を削除してもADとFIMのFull同期時に属性が書き戻されてしまう問題を解決
■ワークフロー
・ワークフローは作成された際のFIM Serviceの外部ホスト名と同じサーバでのみ動作するようになった。このことにより機能毎にFIM Serviceホストを分割することが可能になった。
・要求がタイムアウトした場合にRequestStatus属性がValidatingのまま残る問題を解決
・EnumerateResourcesActivityを使用した際に選択した属性だけでなくすべての属性が返却されてしまう問題を解決
■下記に関連するその他問題の解決と改良
・MPR(Managed Policy Rules)
・ポータルユーザインターフェイス
・セルフサービスパスワードリセット
・スキーマ
来年1月(予定)の正式ローンチに向けて大詰めといった感じでしょうか。
2009年11月6日金曜日
[終了]カンターラ・イニシアティブ・シンポジウム2009
以前ご紹介したカンターラ・イニシアティブ・シンポジウム2009が終わりました。
想像以上の動員で130~150人くらいは来場していたのではないでしょうか?
さて、内容です。
14:05~15:05 基調講演 "Why Kantara matters to ISOC and the Internet" (同時通訳)
Lucy Lynch
Trustee, Kantara Initiative
Director of Trust and Identity Initiatives, Internet Society
まずはLucyさんの基調講演ですが、こちらは非常にジェネラルというかインターネットとセキュリティや標準化の歴史的な話が中心だったのですが、おさらいの意味でとても役に立ちました。
15:10~15:30 一般講演 「アイデンティティ管理の『現在・過去・未来』」
金子以澄
日本CA株式会社 マーケティング部 マーケティングマネージャー
次にCA金子さんのセッションです。こちらは特にエンタープライズにおける課題とアイデンティティ管理関連技術の移り変わりがとてもきれいにまとめられていて、ある意味これまで技術仕様の解説中心だったLiberty/Kantaraの中ではかつてないほどわかりやすいセッションだったと思います。
15:30~16:00 一般講演 「カンターラ・イニシアティブにおける分科会の取組み事例」
伊藤宏樹
日本電信電話株式会社 NTT情報流通プラットフォーム研究所
伊藤さんのセッションでは各分科会の活動内容概要が紹介されました。IAFやUMAなど今後のID連携システムが普及する上でキーとなりそうなものについて簡単にまとめられていました。
ちなみにIAF(Identity Assurance Framework)では
・認証行為の保証レベルの規定
・各保障レベルに応じて必要となる実装/管理運用体制に関する規定
が定められます。
これにより、扱うID情報の種類のレベル付けや管理体制の定義、およびそれらを外部から監査するという枠組みが規定され信頼性を担保します。(ISMSなどと同じイメージ)
監査を通過すれば対象となるプロバイダにKantaraがお墨付きを与える、というようなことも検討しているようです。
また、UMA(User Management Access)ですが、こちらはユーザセントリックな環境においてユーザが複数のサービス(IdP、SP)を使う際に個別にID情報の伝搬の可否を判断することになり、利便性/確実性が低下することを防ぐための取り組みです。具体的には個々で行っていたアクセスコントロールをAuthorization Managerというコンポーネントを介在させることで用語やインターフェイスを統一させて混乱を防ぐことを考えているようです。
16:15~17:00 特別講演 「健康情報活用基盤 (日本版EHR) の全体構想について」
山本隆一
東京大学情報学環・学際情報学府 准教授 医学博士
山本先生の話は話し方、内容ともに非常に刺激的な内容で非常に面白かったです。
つかみは医療におけるITの活用の歴史から始まり、「保健医療情報は本来個人に帰属すべきである」という考え方に基づく基盤構想の紹介(ユーザセントリックですね)、浦添市における実証実験の内容の紹介、と生活に密着しているが故に興味深い内容でした。
この構想ではキーとして社会保障カードを使い、ID登録/カード発行は行政サービスとして自治体が行い、ID情報の取り扱いにはSAML2.0/ID-WSF2.0が使われていました。また、ポイントは扱う情報の中に「関係」という属性を持たせており、例えばフィットネスクラブで計測した体重などの情報についても主治医として関係付けがされた機関(SP)からは情報の参照が出来たり、という属性ベースのアクセスコントロール的なことが行われていました。
17:00~17:30 事例研究 「事例でみるID管理技術の使い分け(仮) 」
澤井 真二
日本オラクル株式会社 Fusion Middleware事業統括本部 Security SC部
こちらはオラクルさんによる事例紹介です。
澤井さんの組織の名前を見てもわかるようにオラクルではIdM製品群をセキュリティ製品の中心に置いているのでIdM導入のゴールはセキュリティ・コントロールというところに置いているのが印象的でした。
17:30~18:00 事例研究 「J-SaaS における SAML2.0 の適用」
永野 一郎
NTTソフトウェア株式会社 モバイル&セキュリティ・ソリューション
事業グループ セキュリティソリューションチーフエキスパート
こちらも事例ベースの話です。
特に印象深かったのはSSOした後に別のIDへの切り替えをしなければならない、という要件への対応です。これは企業で兼務対応などをする際には実際にあり得る話だなぁと思います。(例えばログインはA部の部長としてするが、特定のシステムにおいては出向先の本部長としてのアクセスが必要、、とか)
この事例ではSAML2.0のForceAuthnを使っていました。
と、ざっと感想めいたことを書いてみましたが、おいおい資料なども公開されるようですので、本日参加できなかった方も是非参考にしていただければ、と思います。
想像以上の動員で130~150人くらいは来場していたのではないでしょうか?
さて、内容です。
14:05~15:05 基調講演 "Why Kantara matters to ISOC and the Internet" (同時通訳)
Lucy Lynch
Trustee, Kantara Initiative
Director of Trust and Identity Initiatives, Internet Society
まずはLucyさんの基調講演ですが、こちらは非常にジェネラルというかインターネットとセキュリティや標準化の歴史的な話が中心だったのですが、おさらいの意味でとても役に立ちました。
15:10~15:30 一般講演 「アイデンティティ管理の『現在・過去・未来』」
金子以澄
日本CA株式会社 マーケティング部 マーケティングマネージャー
次にCA金子さんのセッションです。こちらは特にエンタープライズにおける課題とアイデンティティ管理関連技術の移り変わりがとてもきれいにまとめられていて、ある意味これまで技術仕様の解説中心だったLiberty/Kantaraの中ではかつてないほどわかりやすいセッションだったと思います。
15:30~16:00 一般講演 「カンターラ・イニシアティブにおける分科会の取組み事例」
伊藤宏樹
日本電信電話株式会社 NTT情報流通プラットフォーム研究所
伊藤さんのセッションでは各分科会の活動内容概要が紹介されました。IAFやUMAなど今後のID連携システムが普及する上でキーとなりそうなものについて簡単にまとめられていました。
ちなみにIAF(Identity Assurance Framework)では
・認証行為の保証レベルの規定
・各保障レベルに応じて必要となる実装/管理運用体制に関する規定
が定められます。
これにより、扱うID情報の種類のレベル付けや管理体制の定義、およびそれらを外部から監査するという枠組みが規定され信頼性を担保します。(ISMSなどと同じイメージ)
監査を通過すれば対象となるプロバイダにKantaraがお墨付きを与える、というようなことも検討しているようです。
また、UMA(User Management Access)ですが、こちらはユーザセントリックな環境においてユーザが複数のサービス(IdP、SP)を使う際に個別にID情報の伝搬の可否を判断することになり、利便性/確実性が低下することを防ぐための取り組みです。具体的には個々で行っていたアクセスコントロールをAuthorization Managerというコンポーネントを介在させることで用語やインターフェイスを統一させて混乱を防ぐことを考えているようです。
16:15~17:00 特別講演 「健康情報活用基盤 (日本版EHR) の全体構想について」
山本隆一
東京大学情報学環・学際情報学府 准教授 医学博士
山本先生の話は話し方、内容ともに非常に刺激的な内容で非常に面白かったです。
つかみは医療におけるITの活用の歴史から始まり、「保健医療情報は本来個人に帰属すべきである」という考え方に基づく基盤構想の紹介(ユーザセントリックですね)、浦添市における実証実験の内容の紹介、と生活に密着しているが故に興味深い内容でした。
この構想ではキーとして社会保障カードを使い、ID登録/カード発行は行政サービスとして自治体が行い、ID情報の取り扱いにはSAML2.0/ID-WSF2.0が使われていました。また、ポイントは扱う情報の中に「関係」という属性を持たせており、例えばフィットネスクラブで計測した体重などの情報についても主治医として関係付けがされた機関(SP)からは情報の参照が出来たり、という属性ベースのアクセスコントロール的なことが行われていました。
17:00~17:30 事例研究 「事例でみるID管理技術の使い分け(仮) 」
澤井 真二
日本オラクル株式会社 Fusion Middleware事業統括本部 Security SC部
こちらはオラクルさんによる事例紹介です。
澤井さんの組織の名前を見てもわかるようにオラクルではIdM製品群をセキュリティ製品の中心に置いているのでIdM導入のゴールはセキュリティ・コントロールというところに置いているのが印象的でした。
17:30~18:00 事例研究 「J-SaaS における SAML2.0 の適用」
永野 一郎
NTTソフトウェア株式会社 モバイル&セキュリティ・ソリューション
事業グループ セキュリティソリューションチーフエキスパート
こちらも事例ベースの話です。
特に印象深かったのはSSOした後に別のIDへの切り替えをしなければならない、という要件への対応です。これは企業で兼務対応などをする際には実際にあり得る話だなぁと思います。(例えばログインはA部の部長としてするが、特定のシステムにおいては出向先の本部長としてのアクセスが必要、、とか)
この事例ではSAML2.0のForceAuthnを使っていました。
と、ざっと感想めいたことを書いてみましたが、おいおい資料なども公開されるようですので、本日参加できなかった方も是非参考にしていただければ、と思います。
2009年10月27日火曜日
開催直前PDC09。そしてTech・Days2010
Azureのローンチということで盛り上がっているPDC09(Professional Developer Conference)の開催(2009/11/17-19)が迫ってきました。
そんな中Best Of PDC/Tech・Days2010のサイトがオープンしています。
http://www.microsoft.com/japan/events/techdays/2010/(2月23日~24日@ホテルグランパシフィックLE DAIBA)
砂金さんのblogを見ているとまだ誰がキーノートを担当するのかが決まっていなさそうなので、是非Kim Cameron(もしくはDavid Cutler)を!と思ったりしています。
セッションについても当然これから選定ということなのでしょうが、試しに本家PDCのセッションからIdentityというキーワードで引っ張って見ました。
やはりDeveloper向けということもありWIF(Windows Identity Foundation)やOsloのM言語でのディレクトリアクセスといった内容が多いのですが、少なくとも
・Enabling Single Sign-On to Windows Azure Applications
・Software + Services Identity Roadmap Update
については日本でもやってくれれば、と思います。
そんな中Best Of PDC/Tech・Days2010のサイトがオープンしています。
http://www.microsoft.com/japan/events/techdays/2010/(2月23日~24日@ホテルグランパシフィックLE DAIBA)
砂金さんのblogを見ているとまだ誰がキーノートを担当するのかが決まっていなさそうなので、是非Kim Cameron(もしくはDavid Cutler)を!と思ったりしています。
セッションについても当然これから選定ということなのでしょうが、試しに本家PDCのセッションからIdentityというキーワードで引っ張って見ました。
セッション名 | スピーカー | 概要 |
The ‘M’-Based System.Identity Model for Accessing Directory Services | Gert Drapers, Kim Cameron | Hear about our investigation into modeling directory services data using an "M"-based logical model called System.Identity, which is included in the "Repository" CTP. See how to benefit immediately … |
Leveraging and Extending Microsoft SharePoint Server 2010 Identity Features | Venky Veeraraghavan | Get an architectural and programmatic overview of Claims based Identity implemented in SharePoint 2010 including how identity is dealt with at Sign-in and for service calls both within SharePoint and … |
How Microsoft SharePoint 2010 was Built with the Windows Identity Foundation | Sesha Mani | Explore how SharePoint 2010 has undergone a shift in identity and access control by adopting the claims-based object model offered by Windows Identity Foundation (WIF). Learn how SharePoint 2010 … |
Microsoft Project Code Name “Repository”: Using Metadata to Drive Application Design, Development, and Management | Shoshanna Budzianowski, Keith Short | Come see how to use the Microsoft SQL Server "Repository" to increase speed and accuracy of development, deployment, maintenance, and management of your enterprise applications. The "Repository" is a … |
Enabling Single Sign-On to Windows Azure Applications | Hervey Wilson | Learn how the Windows Identity Foundation, Active Directory Federation Services 2.0, and the claims-based architecture can be used to provide a uniform programming model for identity and single … |
Software + Services Identity Roadmap Update | Kim Cameron, Dmitry Sotnikov | At PDC 2008, Microsoft unveiled a comprehensive offering of identity software and services, based on the industry standard claims-based architecture, and designed to address the rapidly growing … |
Windows Identity Foundation Overview | Vittorio Bertocci | Hear how Windows Identity Foundation makes advanced identity capabilities and open standards first class citizens in the Microsoft .NET Framework. Learn how the Claims Based access model integrates … |
Architecting and Developing for Windows Azure | Chris Auld | Gain the skills to architect and develop real-world applications using Windows Azure. Going beyond ‘demo-ware’ we examine the theory and technical implementation of large scale elastic applications. … |
Microsoft Technology Overview | Michele Leroux Bustamante | Developers have increasingly more on their minds and on their plates. Though Microsoft Visual Studio and the Microsoft .NET Framework both provide tools that yield an overall increase in productivity … |
やはりDeveloper向けということもありWIF(Windows Identity Foundation)やOsloのM言語でのディレクトリアクセスといった内容が多いのですが、少なくとも
・Enabling Single Sign-On to Windows Azure Applications
・Software + Services Identity Roadmap Update
については日本でもやってくれれば、と思います。
2009年10月19日月曜日
[予告]カンターラ・イニシアティブ・シンポジウム2009
アイデンティティ管理技術の普及拡大を目的として今年6月に発足したカンターラ・イニシアティブのセミナが11/6(金)に開催されます。7月に開催されたセミナは発足記念セミナでしたので、実質今回のセミナが本格的な活動の第一歩と言えると思います。
私もJAPAN WGに参加しており、先日このセミナで使う講演資料に関する打ち合わせを実施しました。WGに参加されている方々はこの分野では名の通った方々ばかりなのでとっても緊張してしまうのですが、各種技術の相互運用など、今後有用なテーマに取り組んでいるので非常に勉強になります。
下記サイトで今回のシンポジウムに関する情報が公開されていますので、ご興味のある方は参加してみてはいかがでしょうか?
http://kantarainitiative.org/confluence/display/WGJ/091015+KI+2nd+Seminar
アジェンダ(予定)は下記です。
14:00~14:05 開会挨拶
高橋健司
カンターラ・イニシアティブ ジャパン・ワークグループ 議長
14:05~15:05 基調講演 "Why Kantara matters to ISOC and the Internet" (同時通訳)
Lucy Lynch
Trustee, Kantara Initiative
Director of Trust and Identity Initiatives, Internet Society
15:05~15:10 (休憩)
15:10~15:30 一般講演 「アイデンティティ管理の『現在・過去・未来』」
金子以澄
日本CA株式会社 マーケティング部 マーケティングマネージャー
15:30~16:00 一般講演 「カンターラ・イニシアティブにおける分科会の取組み事例」
伊藤宏樹
日本電信電話株式会社 NTT情報流通プラットフォーム研究所
16:00~16:15 (休憩)
16:15~17:00 特別講演 「健康情報活用基盤 (日本版EHR) の全体構想について」
山本隆一
東京大学情報学環・学際情報学府 准教授 医学博士
17:00~17:30 事例研究 「事例でみるID管理技術の使い分け(仮) 」
澤井 真二
日本オラクル株式会社 Fusion Middleware事業統括本部 Security SC部
17:30~18:00 事例研究 「J-SaaS における SAML2.0 の適用」
永野 一郎
NTTソフトウェア株式会社 モバイル&セキュリティ・ソリューション
事業グループ セキュリティソリューションチーフエキスパート
18:00 閉会挨拶
私もJAPAN WGに参加しており、先日このセミナで使う講演資料に関する打ち合わせを実施しました。WGに参加されている方々はこの分野では名の通った方々ばかりなのでとっても緊張してしまうのですが、各種技術の相互運用など、今後有用なテーマに取り組んでいるので非常に勉強になります。
下記サイトで今回のシンポジウムに関する情報が公開されていますので、ご興味のある方は参加してみてはいかがでしょうか?
http://kantarainitiative.org/confluence/display/WGJ/091015+KI+2nd+Seminar
アジェンダ(予定)は下記です。
14:00~14:05 開会挨拶
高橋健司
カンターラ・イニシアティブ ジャパン・ワークグループ 議長
14:05~15:05 基調講演 "Why Kantara matters to ISOC and the Internet" (同時通訳)
Lucy Lynch
Trustee, Kantara Initiative
Director of Trust and Identity Initiatives, Internet Society
15:05~15:10 (休憩)
15:10~15:30 一般講演 「アイデンティティ管理の『現在・過去・未来』」
金子以澄
日本CA株式会社 マーケティング部 マーケティングマネージャー
15:30~16:00 一般講演 「カンターラ・イニシアティブにおける分科会の取組み事例」
伊藤宏樹
日本電信電話株式会社 NTT情報流通プラットフォーム研究所
16:00~16:15 (休憩)
16:15~17:00 特別講演 「健康情報活用基盤 (日本版EHR) の全体構想について」
山本隆一
東京大学情報学環・学際情報学府 准教授 医学博士
17:00~17:30 事例研究 「事例でみるID管理技術の使い分け(仮) 」
澤井 真二
日本オラクル株式会社 Fusion Middleware事業統括本部 Security SC部
17:30~18:00 事例研究 「J-SaaS における SAML2.0 の適用」
永野 一郎
NTTソフトウェア株式会社 モバイル&セキュリティ・ソリューション
事業グループ セキュリティソリューションチーフエキスパート
18:00 閉会挨拶
2009年10月16日金曜日
[ILM2007→FIM2010]データベースごと移行してみる
先日のエントリに引き続きILM2007→FIM2010への移行に関してです。
FIMは以下の3つのコンポーネントで構成されているのは以前紹介したとおりです。(CLMも含めると4つ)
(ILM部分)
・FIM Synchronization Service(ILM Synchronization Service)
・FIM Service(ILM Service)
・FIM Portal/Password Portal(ILM Portal/Password Portal)
(CLM部分)
・ILM Certificate Management Service
この中でMIIS/ILM2007の時代から存在していたのはFIM Synchronization Serviceだけなので、基本的に「移行」ということになるとこのサービスが対象となります。
先日は新規にFIM2010をセットアップしてILM2007の設定をExport→Importで移行する、という方法でしたが、今回はデータ(MetaVerse、ConnectorSpaceの中身や実行ログなど)を含めごっそり移行する方法を試してみます。
基本的な流れは下記の通りです。
1.SQL Server 2005→SQL Server 2008へのアップグレードを行う
2.アップグレードしたSQL Serverを使用してFIM2010をセットアップする
早速試してみましょう。
と言ったものの結果的に言うとFIM2010RC1ではこの方法はうまく行きません。
ILM"2"RC0の頃はフォーラムにも書かれている通りこの方法でうまく移行が出来ていました。
フォーラムにはDLLのリコンパイルやMicrosoft.metadirectoryservicesex.dllの入れ替えなども必要、とありますが少なくとも私の試した限りそのような作業はしなくてもILM2007の時と同様の動きが再現出来ました。
今更ですが簡単に流れを紹介しておきます。
1.移行対象のILM2007の使用しているSQL ServerをSQL Server 2008へアップグレードする
2.ILM Synchronization Serviceをインストールする際に1のデータベースを指すようにDBサーバとインスタンスを指定すると既存のデータベースを再利用するかどうかをインストーラが聞いてくるのでYESを指定する
3.既存データベースにアクセスするためにkeyファイルが必要、と言われるのでILM2007で作成しておいたkeyファイルをインストーラに読み込ませる
4.インストール完了!
この手順でRulesExtenstionのDLLファイルまで含め環境の再現が出来ていました。データベースの移行だけで何故か物理的なDLLファイルまで再現されるのには驚きました。
※ただ、MADATAフォルダだけは移行されないので手動でコピーしてあげる必要がありました。
と、RC0の話をこれ以上詳しくしても仕方がないのでRC1で何故この手順が失敗するのかを見ていくと、答えはFIM Synchronization Serviceが使うデータベースの名前にありました。
下の画面を見るとわかるとおりデータベースの名前が変わってしまっているため、既存で使っていたインスタンスを指定しても既存のデータベースを使わずに新規にデータベースを作成してしまっています。
バージョン毎のデータベースの名前は下記のようになっています。
ということで、データベースの名前をあらかじめ変更することが必要なのか、それともFIM2010RC1のインストーラに古いデータベース名でも移行元として認識させる方法があるのか少し調べる必要がありそうです。
FIMは以下の3つのコンポーネントで構成されているのは以前紹介したとおりです。(CLMも含めると4つ)
(ILM部分)
・FIM Synchronization Service(ILM Synchronization Service)
・FIM Service(ILM Service)
・FIM Portal/Password Portal(ILM Portal/Password Portal)
(CLM部分)
・ILM Certificate Management Service
この中でMIIS/ILM2007の時代から存在していたのはFIM Synchronization Serviceだけなので、基本的に「移行」ということになるとこのサービスが対象となります。
先日は新規にFIM2010をセットアップしてILM2007の設定をExport→Importで移行する、という方法でしたが、今回はデータ(MetaVerse、ConnectorSpaceの中身や実行ログなど)を含めごっそり移行する方法を試してみます。
基本的な流れは下記の通りです。
1.SQL Server 2005→SQL Server 2008へのアップグレードを行う
2.アップグレードしたSQL Serverを使用してFIM2010をセットアップする
早速試してみましょう。
と言ったものの結果的に言うとFIM2010RC1ではこの方法はうまく行きません。
ILM"2"RC0の頃はフォーラムにも書かれている通りこの方法でうまく移行が出来ていました。
フォーラムにはDLLのリコンパイルやMicrosoft.metadirectoryservicesex.dllの入れ替えなども必要、とありますが少なくとも私の試した限りそのような作業はしなくてもILM2007の時と同様の動きが再現出来ました。
今更ですが簡単に流れを紹介しておきます。
1.移行対象のILM2007の使用しているSQL ServerをSQL Server 2008へアップグレードする
2.ILM Synchronization Serviceをインストールする際に1のデータベースを指すようにDBサーバとインスタンスを指定すると既存のデータベースを再利用するかどうかをインストーラが聞いてくるのでYESを指定する
3.既存データベースにアクセスするためにkeyファイルが必要、と言われるのでILM2007で作成しておいたkeyファイルをインストーラに読み込ませる
4.インストール完了!
この手順でRulesExtenstionのDLLファイルまで含め環境の再現が出来ていました。データベースの移行だけで何故か物理的なDLLファイルまで再現されるのには驚きました。
※ただ、MADATAフォルダだけは移行されないので手動でコピーしてあげる必要がありました。
と、RC0の話をこれ以上詳しくしても仕方がないのでRC1で何故この手順が失敗するのかを見ていくと、答えはFIM Synchronization Serviceが使うデータベースの名前にありました。
下の画面を見るとわかるとおりデータベースの名前が変わってしまっているため、既存で使っていたインスタンスを指定しても既存のデータベースを使わずに新規にデータベースを作成してしまっています。
バージョン毎のデータベースの名前は下記のようになっています。
バージョン | データベース名 |
MIIS | MicrosoftIdentityIntegrationServer |
ILM2007 | |
ILM"2"RC0 | |
FIM2010RC1 | FIMSynchronizationService |
ということで、データベースの名前をあらかじめ変更することが必要なのか、それともFIM2010RC1のインストーラに古いデータベース名でも移行元として認識させる方法があるのか少し調べる必要がありそうです。
2009年10月6日火曜日
いつの間にか・・・
このblogを初めて1年が経ってしまっていました。
おかげさまでこんなニッチなテーマが中心にも関わらず15,000ページビュー程のアクセスをいただいております。
中途半端で終わってしまっているテーマも多くて情報としていまひとつまとまりがありませんが、今後なんとか改善して行き、役に立つコンテンツが提供出来ればと思っています。
今後ともよろしくお願いします<(_ _)>
おかげさまでこんなニッチなテーマが中心にも関わらず15,000ページビュー程のアクセスをいただいております。
中途半端で終わってしまっているテーマも多くて情報としていまひとつまとまりがありませんが、今後なんとか改善して行き、役に立つコンテンツが提供出来ればと思っています。
今後ともよろしくお願いします<(_ _)>
LDAP Manager 4.5リリース
新バージョンがリリースされたようです。
http://www.exgen.co.jp/info091005.html
主な強化ポイントは下記の通りです。
1.Windows Server 2008、および 64bit OSに正式対応:
LDAP Managerの動作プラットフォームに Windows Server 2008が追加され、同時に、従来の 32bit版に加えて 64bit版モジュールのご提供も開始いたします。
2.リモート制御プラグイン:
ユーザ情報のリアルタイム連携処理を、LDAP Managerサーバのバックエンド側で処理する新規プラグインです。エンドユーザの連携処理待ち時間短縮を実現しました。
3.リトライ機能を追加:
ユーザ情報のリアルタイム連携処理中に発生した連携エラー状況を記録し、あらかじめ設定した周期で連携処理を自動再実行するリトライ機能が、標準機能として追加されました。
4.連携パフォーマンスの大幅向上:
大量ユーザを効率よくメンテナンスする際に効果的な「連携機能」を持つプラグイン群の処理ロジックを見直し、従来版の3分の1から6分の1という大幅なパフォーマンス向上を実現しました。
個人的には差分同期機能をもう少し強化しても良いのかな?とも思ったりしています。
今はソースとデスティネーションを全件比較してしまうので、どうしても大規模環境だと厳しい感じがしますが、トランザクションログ(ジャーナル)との比較を行うような仕組みを取り入れればもう少し性能や同期先システムへのクエリ負荷も減るのかな?と思います。
まぁ、仕組みがややこしくなりますし、トランザクションが失敗したときなどの同期先レポジトリとトランザクションログとの整合性など気にしなければならないことが多いので実際に実装するのは大変だとは思いますが・・・
夢は広がりますが、そのトランザクションログから同期対象システムを含めた特定時点へのデータリカバリ(ロールバック/ロールフォワード)などが出来るようになると運用していく上で一番の問題となるエントリの「ズレ」の修正運用が楽になるかも知れません。
後は、シェア情報も載っていますが、やはり安価ということもあり大学や中小企業を中心に売れているようですね。
↓
* ミック経済研究所「情報セキュリティソリューション市場の現状と将来展望 2009【内部統制型・情報漏洩防止型ソリューシン編】」2009年6月刊において、「LDAPManager」は、2009年アイデンティティ管理パッケージ出荷本数の市場シェアで、20.3%となり第一位となっています。
http://www.exgen.co.jp/info091005.html
主な強化ポイントは下記の通りです。
1.Windows Server 2008、および 64bit OSに正式対応:
LDAP Managerの動作プラットフォームに Windows Server 2008が追加され、同時に、従来の 32bit版に加えて 64bit版モジュールのご提供も開始いたします。
2.リモート制御プラグイン:
ユーザ情報のリアルタイム連携処理を、LDAP Managerサーバのバックエンド側で処理する新規プラグインです。エンドユーザの連携処理待ち時間短縮を実現しました。
3.リトライ機能を追加:
ユーザ情報のリアルタイム連携処理中に発生した連携エラー状況を記録し、あらかじめ設定した周期で連携処理を自動再実行するリトライ機能が、標準機能として追加されました。
4.連携パフォーマンスの大幅向上:
大量ユーザを効率よくメンテナンスする際に効果的な「連携機能」を持つプラグイン群の処理ロジックを見直し、従来版の3分の1から6分の1という大幅なパフォーマンス向上を実現しました。
個人的には差分同期機能をもう少し強化しても良いのかな?とも思ったりしています。
今はソースとデスティネーションを全件比較してしまうので、どうしても大規模環境だと厳しい感じがしますが、トランザクションログ(ジャーナル)との比較を行うような仕組みを取り入れればもう少し性能や同期先システムへのクエリ負荷も減るのかな?と思います。
まぁ、仕組みがややこしくなりますし、トランザクションが失敗したときなどの同期先レポジトリとトランザクションログとの整合性など気にしなければならないことが多いので実際に実装するのは大変だとは思いますが・・・
夢は広がりますが、そのトランザクションログから同期対象システムを含めた特定時点へのデータリカバリ(ロールバック/ロールフォワード)などが出来るようになると運用していく上で一番の問題となるエントリの「ズレ」の修正運用が楽になるかも知れません。
後は、シェア情報も載っていますが、やはり安価ということもあり大学や中小企業を中心に売れているようですね。
↓
* ミック経済研究所「情報セキュリティソリューション市場の現状と将来展望 2009【内部統制型・情報漏洩防止型ソリューシン編】」2009年6月刊において、「LDAPManager」は、2009年アイデンティティ管理パッケージ出荷本数の市場シェアで、20.3%となり第一位となっています。
2009年10月1日木曜日
Forefront Identity Manager 2010 RC1/ポータル画面
インストールしてみたのですが、変な工夫が要らなくなって非常にスムーズです。
※変な工夫:SQLやブラウザの言語を一時的に日本語にしたり、Firewallのポリシーを設定したり、、Beta3やRC0ではたくさんありました。過去エントリ参照
尚、インストールの過程で何点か変わっているポイントがありました。
・SQL FullText Searchが必要になっている
・MAアカウントがインストールユーザと同じユーザを選択できない
・SQL Server Agentが実行されていないと怒られる
他にもFirewallの設定やWSSのサイトへのアクセス権の設定を自動でやってくれるようになっていたりしました。
とりあえずポータルの画面です。
ちなみにRC0のときはこんな感じ。
基本はマイナーチェンジですね。
※変な工夫:SQLやブラウザの言語を一時的に日本語にしたり、Firewallのポリシーを設定したり、、Beta3やRC0ではたくさんありました。過去エントリ参照
尚、インストールの過程で何点か変わっているポイントがありました。
・SQL FullText Searchが必要になっている
・MAアカウントがインストールユーザと同じユーザを選択できない
・SQL Server Agentが実行されていないと怒られる
他にもFirewallの設定やWSSのサイトへのアクセス権の設定を自動でやってくれるようになっていたりしました。
とりあえずポータルの画面です。
ちなみにRC0のときはこんな感じ。
基本はマイナーチェンジですね。
クラウド時代のID管理へ? ~ADFS2.0がSAML2.0相互運用性テストにパス~
先のポストにも一部書きましたが、カンターラ・イニシアティブとLiberty AllianceのSAML2.0相互運用性テストにマイクロソフトのADFS2.0(Geneva Server)がパスしています。
http://www.projectliberty.org/news_events/press_releases/entrust_ibm_microsoft_novell_ping_identity_sap_and_siemens_pass_liberty_alliance_saml_2_0_interoperability_testing
結果をみると、ADFS2.0が今回パスしたのは、
・IDP Lite
・SP Lite
・eGov 1.5
です。
企業内のAD/ADFSをIdPとしてクラウドのサービスの認証を行う、ということができるということになれば、クラウドサービスの利用の障壁が少しでも下がるのではないでしょうか?
また、SAMLという標準的なプロトコルに対応した、ということでオンプレミスの世界でもこれまでWindows統合認証ができないために利便性が悪かった様々なIIS以外のアプリケーションサーバの認証が別途SSOツールを導入しなくてもできる、となるとADFS2.0は非常に強力なソリューションということができると思います。
ちなみに、ひそかに2010年の第2四半期にリリースされる予定のSAP NetWeaver Identity Management 7.2もパスしてます。
こちらは
・IDP Lite
・SP Lite
が対象です。
MaXware時代後期にもMFS(MaXware Federation Server)が出てきてはいたものの、結局SAPに買収されたときに立ち消えになっていましたが、ここにきてリリースされるということになったようです。
GUIクライアントとのEnterpriseSSOとかも合わせて実装されればな~とも思います。
http://www.projectliberty.org/news_events/press_releases/entrust_ibm_microsoft_novell_ping_identity_sap_and_siemens_pass_liberty_alliance_saml_2_0_interoperability_testing
結果をみると、ADFS2.0が今回パスしたのは、
・IDP Lite
・SP Lite
・eGov 1.5
です。
企業内のAD/ADFSをIdPとしてクラウドのサービスの認証を行う、ということができるということになれば、クラウドサービスの利用の障壁が少しでも下がるのではないでしょうか?
また、SAMLという標準的なプロトコルに対応した、ということでオンプレミスの世界でもこれまでWindows統合認証ができないために利便性が悪かった様々なIIS以外のアプリケーションサーバの認証が別途SSOツールを導入しなくてもできる、となるとADFS2.0は非常に強力なソリューションということができると思います。
ちなみに、ひそかに2010年の第2四半期にリリースされる予定のSAP NetWeaver Identity Management 7.2もパスしてます。
こちらは
・IDP Lite
・SP Lite
が対象です。
MaXware時代後期にもMFS(MaXware Federation Server)が出てきてはいたものの、結局SAPに買収されたときに立ち消えになっていましたが、ここにきてリリースされるということになったようです。
GUIクライアントとのEnterpriseSSOとかも合わせて実装されればな~とも思います。
Forefront Identity Manager 2010 RC1公開
先日ポストしたように9/30(ダウンロードサイトの日付をみると9/29)に公開されました。
Forefrontチームのblog
http://blogs.technet.com/forefront/archive/2009/09/30/forefront-identity-manager-2010-release-candidate-1-available-now-part-of-microsoft-s-overall-identity-and-access-strategy.aspx
早速インストールしてみましたので記録は次回。
ロゴなどが色々と変わっています。
また、blogを見ていると他にも気になる点(ADFS2.0がSAML2.0の相互運用性テストにパスした、とか)もあるのでそちらも探ってみようと思います。
Forefrontチームのblog
http://blogs.technet.com/forefront/archive/2009/09/30/forefront-identity-manager-2010-release-candidate-1-available-now-part-of-microsoft-s-overall-identity-and-access-strategy.aspx
早速インストールしてみましたので記録は次回。
ロゴなどが色々と変わっています。
また、blogを見ていると他にも気になる点(ADFS2.0がSAML2.0の相互運用性テストにパスした、とか)もあるのでそちらも探ってみようと思います。
2009年9月24日木曜日
[FIM2010]そろそろRC1?
スケジュール上は2009年Q3にRC1という話でしたが実際のところはどうなんでしょうか。
#一部のblogによると2009/09/30に公開ということです!(2009/09/28追記)
先日(9/14@ベルリン)のTEC2009 EuropeでRC1関連のセッションもあったようなので、いよいよという感じがしています。(実際はTEC2009に間に合わせたかったんでしょうが・・・)
↓こんな感じのセッションがあったみたいです。これをみるとそろそろリリースっぽいです。
What's New in FIM 2010 RC1
Speakers: Mark Wahl
FIM 2010 RC1 should be shipping about the time of TEC 2009 EMEA, and it includes many improvements and new features. Find out about what’s new in RC1 including architectural changes, performance improvements, and simplified administration and operations. We will also discuss how to migrate from FIM 2010 RC0 to RC1, and how to move from a test environment to production.
なお、同じくTEC2009でFIM関連セッションを担当しているOxford Computer GroupのBlogにRC0からRC1での変更点についてまとめられていたので紹介しておきます。
The changes from RC0 are in these areas:
■Manageability and deployability,
■Usability,
■Performance and scalability, and
■(of course) bug fixes.
There are some little things:
■Object Types are now Resource Types
■OVCs are now RCDCs (resource control display configurations)
There are some bigger things:
■An MPR explorer ? you can list (and access) MPRs associated with a particular requestor, or target set, or workflow etc.
■Powershell commands to export, merge, compare and apply configurations (MPRs, schema details, sets etc.) ? so as to facilitate rollout from test to production etc.
■New health events available in the SCOM management pack
■Authentication of a user in the portal (e.g. for self-service) is now done by objectSID and not by sAMAccountName
■Patches after RC1 will be delivered automagically by Microsoft Update
■There is a new request validation activity which can be used to stop users being able to removed anyone but themselves from groups (previously Fred could remove Jane from a group ? assuming Fred basically had this kind of access)
■During password reset, you can insist that users authenticate themselves (to stop people sneaking up to a computer and changing a password while the owner is getting a coffee)
■All mail messages are customizable
■You can disable MPRs
■You can disable declarative provisioning
There were some rather more technical things:
■You can control how many simultaneous workflows can run (in order to tune performance)
■XPath has been changed so that Contains() now works like SQL Server Full text Search ? while some functions have been removed (like BetweenTime, Alltime) ? see next point
■The suggested way that you find information about who had access to what (historically) is now that you work it out using the request history ? more details are provided when examining Requests in order to aid this, and the data on which functions like BetweenTime depended is no long stored
■There are some updates to MAs (newer versions of connected directories supported)
MPRとxSRやAW関連の管理がややこしくなりがちなのでMPR explorerで簡単にできるようになったりするといいなぁと思ったりしてます。
#一部のblogによると2009/09/30に公開ということです!(2009/09/28追記)
先日(9/14@ベルリン)のTEC2009 EuropeでRC1関連のセッションもあったようなので、いよいよという感じがしています。(実際はTEC2009に間に合わせたかったんでしょうが・・・)
↓こんな感じのセッションがあったみたいです。これをみるとそろそろリリースっぽいです。
What's New in FIM 2010 RC1
Speakers: Mark Wahl
FIM 2010 RC1 should be shipping about the time of TEC 2009 EMEA, and it includes many improvements and new features. Find out about what’s new in RC1 including architectural changes, performance improvements, and simplified administration and operations. We will also discuss how to migrate from FIM 2010 RC0 to RC1, and how to move from a test environment to production.
なお、同じくTEC2009でFIM関連セッションを担当しているOxford Computer GroupのBlogにRC0からRC1での変更点についてまとめられていたので紹介しておきます。
The changes from RC0 are in these areas:
■Manageability and deployability,
■Usability,
■Performance and scalability, and
■(of course) bug fixes.
There are some little things:
■Object Types are now Resource Types
■OVCs are now RCDCs (resource control display configurations)
There are some bigger things:
■An MPR explorer ? you can list (and access) MPRs associated with a particular requestor, or target set, or workflow etc.
■Powershell commands to export, merge, compare and apply configurations (MPRs, schema details, sets etc.) ? so as to facilitate rollout from test to production etc.
■New health events available in the SCOM management pack
■Authentication of a user in the portal (e.g. for self-service) is now done by objectSID and not by sAMAccountName
■Patches after RC1 will be delivered automagically by Microsoft Update
■There is a new request validation activity which can be used to stop users being able to removed anyone but themselves from groups (previously Fred could remove Jane from a group ? assuming Fred basically had this kind of access)
■During password reset, you can insist that users authenticate themselves (to stop people sneaking up to a computer and changing a password while the owner is getting a coffee)
■All mail messages are customizable
■You can disable MPRs
■You can disable declarative provisioning
There were some rather more technical things:
■You can control how many simultaneous workflows can run (in order to tune performance)
■XPath has been changed so that Contains() now works like SQL Server Full text Search ? while some functions have been removed (like BetweenTime, Alltime) ? see next point
■The suggested way that you find information about who had access to what (historically) is now that you work it out using the request history ? more details are provided when examining Requests in order to aid this, and the data on which functions like BetweenTime depended is no long stored
■There are some updates to MAs (newer versions of connected directories supported)
MPRとxSRやAW関連の管理がややこしくなりがちなのでMPR explorerで簡単にできるようになったりするといいなぁと思ったりしてます。
2009年9月17日木曜日
[ILM2007→FIM2010]まずは、単純に設定を移行することができるかどうか?
#大前提ですが、この操作を行うことでFIM2010の他の機能へ影響が出ているのかどうかについては現段階では未検証です。この環境をベースにFIM2010の本来の機能がどう動くのかについては別途検証を行いたいと思います。
CSやMVの中身は今回は考えず、設定情報が移行できるかを検証します。
ポイントは「MAやDLLがそのまま使えるか?」です。
下記のような環境を作って検証を行います。
ILM2007とFIM2010は同一ドメインに参加している別の新規サーバで構築します(ILM2007は32bit、FI2010は64bitのOSのみサポートするため)
同期対象としては人事情報CSVとActiveDirectoryで、一方通行の単純なものを作ります。
■サーバ設定のImport/Exportを試してみる
まず試したのは、ILM2007で設定をExportし、FIM2010でその設定をImportする、という手順ですが、結果としてImport処理時に失敗してしまいます。
通常通りILM2007から設定をExport。
その設定ファイル(XML)をFIM2010へImportします。
見事にエラーで失敗します。
・ログ抜粋
また、ログの中を見るとエラー以外にMetaverseのスキーマを変更した、というようなログが出ているが気になるので念のためSchemaを見てみるが削除はされていなかったようなので一安心。
・ログ抜粋
■MAを個別にImport/Exportしてみる
次に試したのは、MAを個別でExport→Importする手順です。
こちらはうまく行きました。ただし、MVについてはすべて手動で再設定が必要です。
ILM2007で各MAを個別にExport。
関連する下記のファイルをILM2007サーバからFIM2010サーバへコピー。
・ExportしたMAのXMLファイル
・AD_MAのRulesExtensionのDLLファイル
・MVのRulesExtensionのDLLファイル
・HRのCSVファイル
今度はFIM2010サーバで各MAのImport。
AD_MAの接続パスワード部分だけ再度手入力が必要ですが他は[Next]を次々クリックしてMAをImportします。またこの操作でRunProfileも同時にImportされます。
各種ファイルを適正な場所に配置します。
MetaverseのRulesExtension設定はMAのExport/Importでは移行されないので、手動で再設定が必要となります。
他にもMetaverseの設定(スキーマやObjectDeletionRuleなど)を独自で行っていた場合は手動で再設定が必要です。
■動作確認
ここはILM2007と同じ手順で同期を実行させます。
1.AD_MAのFull Import処理を実行し、コンテナオブジェクトをAD_CS上に作成します。
2.次にHR_CSVのFull Import→Full Synchronization処理を実行し、HR_CS上へのエントリの作成およびAD_CSへのプロビジョニングを実行します。
→実はここで、事前にADから対象のユーザエントリを削除せずにそのまま実行したのでAD_MAのFull Import処理によりAD_CS上にオブジェクトができてしまっていたので、プロビジョニング時に重複エラーがでました。これはプロビジョニング関数の作りなので、本来はConnectorsを見て重複させないような作りにして回避します。
とりあえず今回はそこまでしていないのでDCからユーザエントリを削除して再実行しました。
3.ADへのExport処理を実行
→めでたしめでたし
■結論(わかったこと)
・サーバの全体設定をそのままExport/Importでは移行できない
・MA単位で個別に設定をExport/Importすることは可能
・ExtensionのDLLファイルは再コンパイルしなくてもそのまま使える
次回はデータを含めた移行を試してみたいと思います。
CSやMVの中身は今回は考えず、設定情報が移行できるかを検証します。
ポイントは「MAやDLLがそのまま使えるか?」です。
下記のような環境を作って検証を行います。
ILM2007とFIM2010は同一ドメインに参加している別の新規サーバで構築します(ILM2007は32bit、FI2010は64bitのOSのみサポートするため)
同期対象としては人事情報CSVとActiveDirectoryで、一方通行の単純なものを作ります。
■サーバ設定のImport/Exportを試してみる
まず試したのは、ILM2007で設定をExportし、FIM2010でその設定をImportする、という手順ですが、結果としてImport処理時に失敗してしまいます。
通常通りILM2007から設定をExport。
その設定ファイル(XML)をFIM2010へImportします。
見事にエラーで失敗します。
・ログ抜粋
Preparing existing metaverse configuration for update starting... An error was encountered while trying to update the metaverse configurations. 指定されたオブジェクト エクスポータが見つかりませんでした。 (HRESULT からの例外: 0x80070776) Error encountered trying to prepare the existing metaverse configuration. Server configuration import FAILED. |
また、ログの中を見るとエラー以外にMetaverseのスキーマを変更した、というようなログが出ているが気になるので念のためSchemaを見てみるが削除はされていなかったようなので一安心。
・ログ抜粋
Metaverse schema compare starting... Attribute deleted : 'accountName'. Attribute deleted : 'ad_UserCannotChangePassword'. Attribute deleted : 'address'. <中略> Attribute deleted : 'type'. ObjectType deleted : 'detectedRuleEntry'. ObjectType deleted : 'expectedRuleEntry'. ObjectType deleted : 'function'. ObjectType deleted : 'synchronizationRule'. The metaverse schema has been changed. |
■MAを個別にImport/Exportしてみる
次に試したのは、MAを個別でExport→Importする手順です。
こちらはうまく行きました。ただし、MVについてはすべて手動で再設定が必要です。
ILM2007で各MAを個別にExport。
関連する下記のファイルをILM2007サーバからFIM2010サーバへコピー。
・ExportしたMAのXMLファイル
・AD_MAのRulesExtensionのDLLファイル
・MVのRulesExtensionのDLLファイル
・HRのCSVファイル
今度はFIM2010サーバで各MAのImport。
AD_MAの接続パスワード部分だけ再度手入力が必要ですが他は[Next]を次々クリックしてMAをImportします。またこの操作でRunProfileも同時にImportされます。
各種ファイルを適正な場所に配置します。
ファイル | 配置場所 |
RulesExtensionのDLLファイル | FIM2010インストール先フォルダ\Extensions以下 |
HRのCSVファイル | FIM2010インストール先フォルダ\MAData\HR_MA以下 |
MetaverseのRulesExtension設定はMAのExport/Importでは移行されないので、手動で再設定が必要となります。
他にもMetaverseの設定(スキーマやObjectDeletionRuleなど)を独自で行っていた場合は手動で再設定が必要です。
■動作確認
ここはILM2007と同じ手順で同期を実行させます。
1.AD_MAのFull Import処理を実行し、コンテナオブジェクトをAD_CS上に作成します。
2.次にHR_CSVのFull Import→Full Synchronization処理を実行し、HR_CS上へのエントリの作成およびAD_CSへのプロビジョニングを実行します。
→実はここで、事前にADから対象のユーザエントリを削除せずにそのまま実行したのでAD_MAのFull Import処理によりAD_CS上にオブジェクトができてしまっていたので、プロビジョニング時に重複エラーがでました。これはプロビジョニング関数の作りなので、本来はConnectorsを見て重複させないような作りにして回避します。
とりあえず今回はそこまでしていないのでDCからユーザエントリを削除して再実行しました。
3.ADへのExport処理を実行
→めでたしめでたし
■結論(わかったこと)
・サーバの全体設定をそのままExport/Importでは移行できない
・MA単位で個別に設定をExport/Importすることは可能
・ExtensionのDLLファイルは再コンパイルしなくてもそのまま使える
次回はデータを含めた移行を試してみたいと思います。
2009年9月10日木曜日
ILM2007からFIM2010への移行
なんだか最近色々と忙しくて更新頻度が下がってきています(泣)
さて、延期されてから半年ほどたつFIM2010も延期の際に発表されたスケジュール通りに進んでいればそろそろRC1。海外ではILM2007からの移行のアセスメントサービスが立ち上がったりしつつある様子も見え隠れしています。
私もそろそろ試してみよう、、と思いながら時間が取れない日々を過ごしていますが、ぼちぼち情報の整理から始めていきたいと思います。
「移行」といっても環境、設定、データと考えなければいけない要素は色々とありますので、まずそれぞれについてILM2007とFIM2010の違いをまとめるところから始めていきます。
ざっくり下記の表のような違いが両バージョンの間にはあります。(抜けだらけです。検証しながら埋めていきます)
また、環境によっては色々と不具合が出るような話もあるので注意が必要なようです。(たとえばFIM2010のMetaverseのスキーマにはデフォルトでobjectSidという属性があるのですが、ILM2007の環境でADAMとの同期をとるうえでobjectSIDという属性をMetaverseに拡張してしまった、という環境だとコンフリクトがでたりするそうです)
そのあたりも含め、順番に手をつけていきたいと思います。
(仮想環境に環境を作っていたのですが、クローン元のOSのディスク容量が小さすぎたことに気付かないままDCとDBサーバをつくってしまい心が折れています。。作り直しです。。)
さて、延期されてから半年ほどたつFIM2010も延期の際に発表されたスケジュール通りに進んでいればそろそろRC1。海外ではILM2007からの移行のアセスメントサービスが立ち上がったりしつつある様子も見え隠れしています。
私もそろそろ試してみよう、、と思いながら時間が取れない日々を過ごしていますが、ぼちぼち情報の整理から始めていきたいと思います。
「移行」といっても環境、設定、データと考えなければいけない要素は色々とありますので、まずそれぞれについてILM2007とFIM2010の違いをまとめるところから始めていきます。
ざっくり下記の表のような違いが両バージョンの間にはあります。(抜けだらけです。検証しながら埋めていきます
対象 | ILM2007 | FIM2010 | マイグレーション方法 | |
動作環境 | OS | Windows Server 2003 R2 (32bit) | Windows Server 2008 (64bit) | 別サーバへの新規インストール |
DBMS | SQL Server 2005 SP2 (32bit) | SQL Server 2008 (64bit) | 別サーバへの新規インストール | |
開発環境 | Visual Studio 2005 | Visual Studio 2008 | 新規インストール | |
Portal | - | WSS3.0 | 新規インストール | |
データ | CS/MV,MV Schema | MicrosoftIdentityIntegrationServerデータベース | MicrosoftIdentityIntegrationServerデータベース | デタッチ→アタッチ? |
設定 | Rules Extension | Visual Studio 2005 | Visual Studio 2008 | リコンパイル |
同期ルール | MA | MA、OSR | Export / Import?新規作成 | |
同期実行 | Run Profile | Run Profile | 再作成? |
また、環境によっては色々と不具合が出るような話もあるので注意が必要なようです。(たとえばFIM2010のMetaverseのスキーマにはデフォルトでobjectSidという属性があるのですが、ILM2007の環境でADAMとの同期をとるうえでobjectSIDという属性をMetaverseに拡張してしまった、という環境だとコンフリクトがでたりするそうです)
そのあたりも含め、順番に手をつけていきたいと思います。
(仮想環境に環境を作っていたのですが、クローン元のOSのディスク容量が小さすぎたことに気付かないままDCとDBサーバをつくってしまい心が折れています。。作り直しです。。)
2009年9月1日火曜日
7 Laws of Identity
久しぶりの投稿になってしまいました。
マイクロソフトのアイデンティティ管理に関する基盤となる考え方であるアイデンティティの原則(The Laws of Identity)のポスターが同社のアイデンティティ&アクセスアーキテクトのKim Cameron氏のblogで紹介されています。
改めて見てみると初出が2005年であるにも関わらず錆ついていない内容になっています。(「原則」なのでそんなに簡単に変わってしまうと困りますが)
7 Laws of Identity
http://www.identityblog.com/?p=1065
Genevaの実装が見えてきて、ようやく同社のアイデンティティ&アクセスのVisionであったIdentity Metasystem構想が現実のものになってきた、ということもあり今改めて基盤となっているこの原則を掲載しなおしたのだと思います。
Identity Metasystemとは簡単に言うと、IdPが発行するセキュリティトークンの種類、RPとの間の受け渡し方法などの技術的な要素をユーザやディベロッパーが意識しなくても利用/開発ができるようにするための考え方(アーキテクチャ)です。
たとえば、IdP(STS)が発行するトークンの種類がSAMLトークンであろうがNTトークンであろうがアプリケーション側は意識をすることなく同じIClaimsIdentityクラスでトークンに含まれるクレーム(属性情報)にアクセスすることができます。
このあたりはカンターラ(Liberty Alliance)がやっている相互運用性の取り組みにもつながる話です。
ちなみに初出はこれです。↓(2006年1月8日/PDFは2005年5月13日)
The Laws of Identity
(http://www.identityblog.com/?p=352)
以下、概要です。
1. User Control and Consent
Technical identity systems must only reveal information identifying a user with the user’s consent.
ユーザーによる制御と同意
個々のアイデンティティ システムでは、ユーザーの同意がなければ、ユーザーの識別情報を開示することはできない。
2. Minimal Disclosure for a Constrained Use
The solution that discloses the least amount of identifying information and best limits its use is the most stable long-term solution.
制限付きアクセスでの最小限の開示
最も安定し、長期にわたって使用できるソリューションとは、開示するアイデンティティ情報を最小限にし、情報へのアクセスを適切に制限するソリューションである。
3. Justifiable Parties
Digital identity systems must be designed so the disclosure of identifying information is limited to parties having a necessary and justifiable place in a given identity relationship.
正当と認められる当事者
デジタル アイデンティティ システムは、特定の状況において識別情報を必要とし、かつ入手できる正当な権利を持つ当事者のみに対して識別情報を開示するように設計されなければならない。
4. Directed Identity
A universal identity system must support both “omni-directional” identifiers for use by public entities and “unidirectional” identifiers for use by private entities, thus facilitating discovery while preventing unnecessary release of correlation handles.
方向付けられた アイデンティティ
普遍的なアイデンティティ システムは、公共のエンティティが使用する“全方位的”な識別子と、プライベートなエンティティが使用する“特定の方向性”を持った識別子の両方をサポートしなければならない。このようにして、公共性を維持しながら、不要な相互関係までサポートすることを回避すべきである。
5. Pluralism of Operators and Technologies
A universal identity system must channel and enable the inter-working of multiple identity technologies run by multiple identity providers.
複数の運用者/テクノロジの共存
普遍的なアイデンティティ システムは、複数のアイデンティティ プロバイダーによって実行される複数のアイデンティティ テクノロジの相互作用を橋渡しし、有効にしなければならない。
6. Human Integration
The universal identity metasystem must define the human user to be a component of the distributed system integrated through unambiguous human-machine communication mechanisms offering protection against identity attacks.
ユーザーの統合
普遍的なアイデンティティ メタ システムは、利用者たるユーザーを分散システムの 1 つのコンポーネントとして定義しなければならない。ユーザー - マシン間の明確なコミュニケーション メカニズムを策定してユーザーを分散システムに統合し、アイデンティティを保護しなければならない。
7. Consistent Experience Across Contexts
The unifying identity metasystem must guarantee its users a simple, consistent experience while enabling separation of contexts through multiple operators and technologies.
特定のコンテキストに依存しない一貫したエクスペリエンス
アイデンティティの統一的なメタ システムは、運用者やテクノロジごとにコンテキストを分離することを可能にしつつも、シンプルで一貫したエクスペリエンスを確保できるものでなければならない。
マイクロソフトのアイデンティティ管理に関する基盤となる考え方であるアイデンティティの原則(The Laws of Identity)のポスターが同社のアイデンティティ&アクセスアーキテクトのKim Cameron氏のblogで紹介されています。
改めて見てみると初出が2005年であるにも関わらず錆ついていない内容になっています。(「原則」なのでそんなに簡単に変わってしまうと困りますが)
7 Laws of Identity
http://www.identityblog.com/?p=1065
Genevaの実装が見えてきて、ようやく同社のアイデンティティ&アクセスのVisionであったIdentity Metasystem構想が現実のものになってきた、ということもあり今改めて基盤となっているこの原則を掲載しなおしたのだと思います。
構成要素 | 現状実装 | 次期実装 |
"InfoCard" identity selector | CardSpace | Windows Cardspace ("Geneva" Cardspace) |
"InfoCard" simple self-issued identity provider | ||
Active Directory identity provider | ADFS | Active Directory Federation Services ("Geneva" Server) |
"Indigo" | WCF | Windows Identity Foundation ("Geneva" Framework) |
Identity Metasystemとは簡単に言うと、IdPが発行するセキュリティトークンの種類、RPとの間の受け渡し方法などの技術的な要素をユーザやディベロッパーが意識しなくても利用/開発ができるようにするための考え方(アーキテクチャ)です。
たとえば、IdP(STS)が発行するトークンの種類がSAMLトークンであろうがNTトークンであろうがアプリケーション側は意識をすることなく同じIClaimsIdentityクラスでトークンに含まれるクレーム(属性情報)にアクセスすることができます。
このあたりはカンターラ(Liberty Alliance)がやっている相互運用性の取り組みにもつながる話です。
ちなみに初出はこれです。↓(2006年1月8日/PDFは2005年5月13日)
The Laws of Identity
(http://www.identityblog.com/?p=352)
以下、概要です。
1. User Control and Consent
Technical identity systems must only reveal information identifying a user with the user’s consent.
ユーザーによる制御と同意
個々のアイデンティティ システムでは、ユーザーの同意がなければ、ユーザーの識別情報を開示することはできない。
2. Minimal Disclosure for a Constrained Use
The solution that discloses the least amount of identifying information and best limits its use is the most stable long-term solution.
制限付きアクセスでの最小限の開示
最も安定し、長期にわたって使用できるソリューションとは、開示するアイデンティティ情報を最小限にし、情報へのアクセスを適切に制限するソリューションである。
3. Justifiable Parties
Digital identity systems must be designed so the disclosure of identifying information is limited to parties having a necessary and justifiable place in a given identity relationship.
正当と認められる当事者
デジタル アイデンティティ システムは、特定の状況において識別情報を必要とし、かつ入手できる正当な権利を持つ当事者のみに対して識別情報を開示するように設計されなければならない。
4. Directed Identity
A universal identity system must support both “omni-directional” identifiers for use by public entities and “unidirectional” identifiers for use by private entities, thus facilitating discovery while preventing unnecessary release of correlation handles.
方向付けられた アイデンティティ
普遍的なアイデンティティ システムは、公共のエンティティが使用する“全方位的”な識別子と、プライベートなエンティティが使用する“特定の方向性”を持った識別子の両方をサポートしなければならない。このようにして、公共性を維持しながら、不要な相互関係までサポートすることを回避すべきである。
5. Pluralism of Operators and Technologies
A universal identity system must channel and enable the inter-working of multiple identity technologies run by multiple identity providers.
複数の運用者/テクノロジの共存
普遍的なアイデンティティ システムは、複数のアイデンティティ プロバイダーによって実行される複数のアイデンティティ テクノロジの相互作用を橋渡しし、有効にしなければならない。
6. Human Integration
The universal identity metasystem must define the human user to be a component of the distributed system integrated through unambiguous human-machine communication mechanisms offering protection against identity attacks.
ユーザーの統合
普遍的なアイデンティティ メタ システムは、利用者たるユーザーを分散システムの 1 つのコンポーネントとして定義しなければならない。ユーザー - マシン間の明確なコミュニケーション メカニズムを策定してユーザーを分散システムに統合し、アイデンティティを保護しなければならない。
7. Consistent Experience Across Contexts
The unifying identity metasystem must guarantee its users a simple, consistent experience while enabling separation of contexts through multiple operators and technologies.
特定のコンテキストに依存しない一貫したエクスペリエンス
アイデンティティの統一的なメタ システムは、運用者やテクノロジごとにコンテキストを分離することを可能にしつつも、シンプルで一貫したエクスペリエンスを確保できるものでなければならない。
2009年8月18日火曜日
FIM2010におけるJOINとPROJECTION
さて、久しぶりにFIM(ILM"2")ネタです。
ILM2007からFIM2010(ILM"2")への大きな進化として「コードレスプロビジョニング」がありますが、そういえばJOINとPROJECTIONってどこへ行ってしまったの?という話です。
答えから言うとSynchronization Ruleの中のAttribute Flowに吸収されてしまいました。
設定方法などはこれまでも解説をしてきたので細かくは割愛しますが、結果として少し注意が必要になったポイントもあるのでその点を含め今回は解説していきます。
まずおさらいですが、FIM2010においてはすべてのオブジェクトがMSILMデータベースを経由して同期されます。
入:ソースCS→Metaverse→MSILMのCS→MSILMデータベース
出:MSILMデータベース→MSILMのCS→Metaverse→ターゲットCS
ILM2007においてCS上のオブジェクトとMetaverse上のオブジェクトの関連付けを判断するのがJOINルールでした。
FIM2010でJOINルールにに対応するのがSynchronization RuleのRelationship Criteria設定です。ここに設定した属性の値が一致すればFIMは同一のオブジェクトとして扱います。
これはILM2007のJOINルールでも同様ですが、Relationship Criteriaに指定した属性の値を変更してしまうと別のオブジェクトとして扱われてしまうので、Metaverse上に別のオブジェクトが作成されてしまうことになります。
これを避けるため、Synchronization RuleのAttribute Flow設定時にInitial Flow Only(初回、つまりPROJECTION時のみ同期する)という設定をRelationship Criteriaとなっている属性について行うことが必要です。(同様の理由でDN属性についても必要)
横道にそれますが、このInitial Flow Onlyを使うことによる別の効果(むしろこちらが本来の使い方ですが)として、ILM2007ではRules ExtensionでProvision関数などに書く必要のあった初期値の設定をGUIから行うことができます。
例えば、ActiveDirectory上に作成するオブジェクトの初期パスワードを設定したい場合はunicodePwd属性にString値を入れたうえでInitial Flow Onlyをチェックすることで実現できます。
話を戻して設定を行う上での注意点ですが、現状のFIM2010ではRelationship Criteriaに指定した属性やDNにInitial Flow Onlyが設定されているかどうかのチェックをしてくれません。それほどややこしい設定ではないので忘れることはないとは思いますが、整合性をチェックするPowerShellがTechnet Forumに載っているので紹介しておきます。
http://social.technet.microsoft.com/Forums/en-US/ilm2/thread/a7946d62-0c15-4ade-a27c-5ed802a33efe
利用方法ですが、このスクリプトにチェック対象のMAの識別子を引数で渡して実行します。
チェック対象のMAの識別子はIdentity ManagerからILM MAのCSから取得します。
Search Connector SpaceでObject TypeがSynchronizationRuleの物を探してDisplayNameプロパティを見て対象のMAを判別し、Distinguished Nameを取得します。
スクリプトの実行結果は下記のようになります。
・整合性が取れている時
・DNにInitial Flow Onlyが設定されていない時
・Relationship Criteriaに設定された属性(ここではsAMAccountName)にInitial Flow Onlyが設定されていない時
最後に一応ps1ファイルのソースを転記しておきます。
#--------------------------------------------------------------------------------------------------------------------------
if($args.count -ne 1) {throw "Missing DN parameter"}
$srGuid = $args[0]
#--------------------------------------------------------------------------------------------------------------------------
write-host "`nInitial Flow Config Check"
write-host "======================"
#--------------------------------------------------------------------------------------------------------------------------
$lstMA = @(get-wmiobject -class "MIIS_ManagementAgent" -namespace "root\MicrosoftIdentityIntegrationServer"`
-computername "." -filter "Type='Identity Lifecycle Management (ILM)'")
if($lstMA.count -eq 0) {throw "There is no FIM MA configured"}
#--------------------------------------------------------------------------------------------------------------------------
write-host "MA Name:" $lstMA[0].Name
$ilmMAGuid = $lstMA[0].Guid
$lstCs = @(get-wmiobject -class "MIIS_CSObject" -namespace "root\MicrosoftIdentityIntegrationServer" `
-computername "." --filter "DN='$srGuid' and MaGuid = '$ilmMaGuid'")
if($lstCs.count -eq 0) {throw "Synchronization Rule not found"}
#--------------------------------------------------------------------------------------------------------------------------
[xml]$xmlDoc = $lstCs[0].Hologram
if($xmlDoc.selectSingleNode("/entry/primary-objectclass").get_InnerText() -ne "SynchronizationRule")
{throw ("Object is no synchronization rule!")}
write-host "SR Name:" $xmlDoc.selectSingleNode("/entry/attr[@name='DisplayName']/value").get_InnerText()
if($xmlDoc.selectSingleNode("/entry/attr[@name='FlowType']/value").get_InnerText() -eq "0x0")
{throw "Synchronization rule is not outbound!"}
if($xmlDoc.selectNodes("//entry/attr[@name='RelationshipCriteria']").count -eq 0)
{throw "Relationship criteria not defined!"}
[xml]$relNodes = $xmlDoc.selectSingleNode("//entry/attr[@name='RelationshipCriteria']/value").get_InnerText()
[xml]$exportFlows = "" +
$xmlDoc.selectSingleNode("//entry/attr[@name='InitialFlow']").get_InnerText() +
" "
$reqAttrs = @("dn")
foreach($curNode in $relNodes.selectNodes("conditions/condition/csAttribute"))
{$reqAttrs += $curNode.get_InnerText()}
$missingAttr = @()
foreach($attr in $reqAttrs)
{
if($exportFlows.selectNodes("/export-flows/export-flow[dest = '" + $attr + "']").count -eq 0)
{$missingAttr += $attr}
}
#--------------------------------------------------------------------------------------------------------------------------
write-host "`nInitial export flow is missing for the following attributes:"
if($missingAttr.length -eq 0) {write-host "None"}
else
{
foreach($item in $missingAttr){write-host " - $item"}
}
write-host ""
#--------------------------------------------------------------------------------------------------------------------------
trap
{
Write-Host "`nError: $($_.Exception.Message)" -foregroundcolor white -backgroundcolor darkred
Exit
}
#--------------------------------------------------------------------------------------------------------------------------
ILM2007からFIM2010(ILM"2")への大きな進化として「コードレスプロビジョニング」がありますが、そういえばJOINとPROJECTIONってどこへ行ってしまったの?という話です。
答えから言うとSynchronization Ruleの中のAttribute Flowに吸収されてしまいました。
設定方法などはこれまでも解説をしてきたので細かくは割愛しますが、結果として少し注意が必要になったポイントもあるのでその点を含め今回は解説していきます。
まずおさらいですが、FIM2010においてはすべてのオブジェクトがMSILMデータベースを経由して同期されます。
入:ソースCS→Metaverse→MSILMのCS→MSILMデータベース
出:MSILMデータベース→MSILMのCS→Metaverse→ターゲットCS
ILM2007においてCS上のオブジェクトとMetaverse上のオブジェクトの関連付けを判断するのがJOINルールでした。
FIM2010でJOINルールにに対応するのがSynchronization RuleのRelationship Criteria設定です。ここに設定した属性の値が一致すればFIMは同一のオブジェクトとして扱います。
製品 | 条件 | |
JOIN | PROJECTION | |
ILM2007 | JOINルールに適合する属性を持つオブジェクトがMetaverse上に存在する | JOINルールに適合する属性を持つオブジェクトがMetaverse上に存在しない |
FIM2010 | RelationshipCriteriaに適合する属性を持つオブジェクトがMetaverse上に存在する | RelationshipCriteriaに適合する属性を持つオブジェクトがMetaverse上に存在しない |
これはILM2007のJOINルールでも同様ですが、Relationship Criteriaに指定した属性の値を変更してしまうと別のオブジェクトとして扱われてしまうので、Metaverse上に別のオブジェクトが作成されてしまうことになります。
これを避けるため、Synchronization RuleのAttribute Flow設定時にInitial Flow Only(初回、つまりPROJECTION時のみ同期する)という設定をRelationship Criteriaとなっている属性について行うことが必要です。(同様の理由でDN属性についても必要)
製品 | 動作 | |
JOIN | PROJECTION | |
ILM2007 | MAのAttributeFlowに定義された属性値が関連するMetaverse上のオブジェクトの属性に反映される | MAのAttributeFlowに定義された属性値を持つオブジェクトがMetaverse上に作成される |
FIM2010 | SynchronizationRuleのAttributeFlowのうち、Initial Flow Onlyにチェックがない属性のみが関連するMetaverse上のオブジェクトに反映される | SynchronizationRuleのAttributeFlowに定義されたすべての属性値を持つオブジェクトがMetaverse上に作成される |
横道にそれますが、このInitial Flow Onlyを使うことによる別の効果(むしろこちらが本来の使い方ですが)として、ILM2007ではRules ExtensionでProvision関数などに書く必要のあった初期値の設定をGUIから行うことができます。
例えば、ActiveDirectory上に作成するオブジェクトの初期パスワードを設定したい場合はunicodePwd属性にString値を入れたうえでInitial Flow Onlyをチェックすることで実現できます。
話を戻して設定を行う上での注意点ですが、現状のFIM2010ではRelationship Criteriaに指定した属性やDNにInitial Flow Onlyが設定されているかどうかのチェックをしてくれません。それほどややこしい設定ではないので忘れることはないとは思いますが、整合性をチェックするPowerShellがTechnet Forumに載っているので紹介しておきます。
http://social.technet.microsoft.com/Forums/en-US/ilm2/thread/a7946d62-0c15-4ade-a27c-5ed802a33efe
利用方法ですが、このスクリプトにチェック対象のMAの識別子を引数で渡して実行します。
チェック対象のMAの識別子はIdentity ManagerからILM MAのCSから取得します。
Search Connector SpaceでObject TypeがSynchronizationRuleの物を探してDisplayNameプロパティを見て対象のMAを判別し、Distinguished Nameを取得します。
スクリプトの実行結果は下記のようになります。
・整合性が取れている時
Initial Flow Config Check ====================== MA Name: MSILM SR Name: [OSR]ADDS PERSON Initial export flow is missing for the following attributes: None |
・DNにInitial Flow Onlyが設定されていない時
Initial Flow Config Check ====================== MA Name: MSILM SR Name: [OSR]ADDS PERSON Initial export flow is missing for the following attributes: - dn |
・Relationship Criteriaに設定された属性(ここではsAMAccountName)にInitial Flow Onlyが設定されていない時
Initial Flow Config Check ====================== MA Name: MSILM SR Name: [OSR]ADDS PERSON Initial export flow is missing for the following attributes: - sAMAccountName |
最後に一応ps1ファイルのソースを転記しておきます。
#--------------------------------------------------------------------------------------------------------------------------
if($args.count -ne 1) {throw "Missing DN parameter"}
$srGuid = $args[0]
#--------------------------------------------------------------------------------------------------------------------------
write-host "`nInitial Flow Config Check"
write-host "======================"
#--------------------------------------------------------------------------------------------------------------------------
$lstMA = @(get-wmiobject -class "MIIS_ManagementAgent" -namespace "root\MicrosoftIdentityIntegrationServer"`
-computername "." -filter "Type='Identity Lifecycle Management (ILM)'")
if($lstMA.count -eq 0) {throw "There is no FIM MA configured"}
#--------------------------------------------------------------------------------------------------------------------------
write-host "MA Name:" $lstMA[0].Name
$ilmMAGuid = $lstMA[0].Guid
$lstCs = @(get-wmiobject -class "MIIS_CSObject" -namespace "root\MicrosoftIdentityIntegrationServer" `
-computername "." --filter "DN='$srGuid' and MaGuid = '$ilmMaGuid'")
if($lstCs.count -eq 0) {throw "Synchronization Rule not found"}
#--------------------------------------------------------------------------------------------------------------------------
[xml]$xmlDoc = $lstCs[0].Hologram
if($xmlDoc.selectSingleNode("/entry/primary-objectclass").get_InnerText() -ne "SynchronizationRule")
{throw ("Object is no synchronization rule!")}
write-host "SR Name:" $xmlDoc.selectSingleNode("/entry/attr[@name='DisplayName']/value").get_InnerText()
if($xmlDoc.selectSingleNode("/entry/attr[@name='FlowType']/value").get_InnerText() -eq "0x0")
{throw "Synchronization rule is not outbound!"}
if($xmlDoc.selectNodes("//entry/attr[@name='RelationshipCriteria']").count -eq 0)
{throw "Relationship criteria not defined!"}
[xml]$relNodes = $xmlDoc.selectSingleNode("//entry/attr[@name='RelationshipCriteria']/value").get_InnerText()
[xml]$exportFlows = "
$xmlDoc.selectSingleNode("//entry/attr[@name='InitialFlow']").get_InnerText() +
"
$reqAttrs = @("dn")
foreach($curNode in $relNodes.selectNodes("conditions/condition/csAttribute"))
{$reqAttrs += $curNode.get_InnerText()}
$missingAttr = @()
foreach($attr in $reqAttrs)
{
if($exportFlows.selectNodes("/export-flows/export-flow[dest = '" + $attr + "']").count -eq 0)
{$missingAttr += $attr}
}
#--------------------------------------------------------------------------------------------------------------------------
write-host "`nInitial export flow is missing for the following attributes:"
if($missingAttr.length -eq 0) {write-host "None"}
else
{
foreach($item in $missingAttr){write-host " - $item"}
}
write-host ""
#--------------------------------------------------------------------------------------------------------------------------
trap
{
Write-Host "`nError: $($_.Exception.Message)" -foregroundcolor white -backgroundcolor darkred
Exit
}
#--------------------------------------------------------------------------------------------------------------------------
2009年8月10日月曜日
FIM関連サイトの紹介
MVPの国井さんがFIM2010の環境構築に関するblogを立ち上げていらっしゃいます。
Always on the clock
さすが色々と書籍の執筆やトレーナをしていらっしゃるだけあってわかりやすく解説されています。
(私がやらなかった日本語化やクライアントコンポーネントのセットアップに関しても解説されていますので、必見です)
また、国井さんは今月のTechEDでもFIM関連のセッションを担当されるそうですので、参加される方は聴講してみてはいかがでしょうか?
Always on the clock
さすが色々と書籍の執筆やトレーナをしていらっしゃるだけあってわかりやすく解説されています。
(私がやらなかった日本語化やクライアントコンポーネントのセットアップに関しても解説されていますので、必見です)
また、国井さんは今月のTechEDでもFIM関連のセッションを担当されるそうですので、参加される方は聴講してみてはいかがでしょうか?
2009年7月31日金曜日
Geneva ServerのSTSとしての動作を確認
なかなか時間がとれずに手をつけられなかったGeneva(Active Directory Federation Services)ですが、ようやく触り始めました。
まずは手始め、ということでGeneva ServerのSTS(Security Token Service)の動作確認も兼ねて、STSを使うWebアプリケーションをGeneva Framework(Windows Identity Framework)を使って作ってみました。
動作のイメージはこんな感じです。
作業の流れとしては、
・Geneva Framework / Geneva Framework SDKのインストール
・Claimを使うWebアプリケーションの作成
・作成したアプリケーションが別途構築したGeneva ServerのSTSを使うように設定
・作成したアプリケーションをGeneva ServerにRelying Partyとして登録
・動作確認(STSに定義したClaimをキチンと取得できるかどうか)
となります。
早速順番に見ていきます。
■Geneva Framework / Geneva Framework SDKのインストール
まず今回用意した環境は下記の通りです。
・Windows Server 2008 EE 64bit(1台のサーバにADDS以外は入れました)
・Geneva Framework
・Geneva Framework SDK
・Visual Studio 2008 STD(.NET Framework 3.5SP1)
■Claimを使うWebアプリケーションの作成
アプリケーションの作成は下記の手順で行います。
1.Visual Studioを起動し、Webアプリケーションの新規作成
2.ソリューションエクスプローラからGeneva Frameworkのライブラリへの参照を設定します。
対象は
・Microsoft.IdentityModel
・System.IdentityModel
の2つです。
3.Webページを作成します。
取得したTokenからClaimを取り出してテーブルに内容を表示することにします。
4.コードの作成
Page_Loadイベントの中で取得したTokenからClaimを取り出します。
IClaimIdentity型の変数callerを定義し、コンカレントセッションのセキュリティプリンシパル情報=取得したTokenをセットします。
(実際のコード)
IClaimsIdentity caller = (IClaimsPrincipal)(Thread.CurrentPrincipal)).Identities[0];
次に、callerのメンバであるClaimsプロパティに入っているそれぞれのClaim(属性)をLINQを使って取り出して行きます。
たとえば、ClaimTypeがNameの属性を取得したければ、caller.ClaimsからSystem.IdentityModel.Claims.ClaimType.Nameと合致するClaimを抜き出します。
(実際のコード)
string Name = (from c in caller.Claims where c.ClaimType == System.IdentityModel.Claims.ClaimType.Name select c.Value).Single();
■作成したアプリケーションが別途構築したGeneva ServerのSTSを使うように設定
具体的にはユーティリティを使ってアプリケーションのweb.configを設定します。
ドキュメントを見ているとソリューションエクスプローラで右クリックするとSTSの設定ができるようなことが書いてありますが、実際には出てこなかったのでGeneva Frameworkのインストールフォルダ以下のFedUtil.exeを直接実行します。
やることは、
・作成したアプリケーションのWeb.configを指定
・STSとしてGeneva Serverのmetadataを指定
※https:///FederationMetadata/2007-06/FederationMetadata.xml
の2点です。
この後、アプリケーションをビルドして発行~IISへの登録をして、使えるようにします。
■作成したアプリケーションをGeneva ServerにRelying Partyとして登録
今度はSTS側の設定ですのでGeneva Serverの管理コンソールから作業をします。
Geneva Serverの管理コンソール
以下の手順でRPを登録します。
1.Policy → Replying Partiesを選択し、操作パネルから「Add Relying Party」をクリックする
2.ウィザードに従いRPの登録を行います
すでにアプリケーション側は作成~設定済みなのでSelect Data Source画面では「Import relying party configuration from a local federation metadata file」を選択し作成したアプリケーションプロジェクトフォルダ配下にあるmetadataのxmlファイルを選択すてRP情報を登録します。
3.Claimのマッピングルールを作成
ウィザードが終了するとClaimルールエディタが起動するので、以下の通りマッピングなどを設定します。
設定したら保存してエディタを終了します。
■動作確認(STSに定義したClaimをキチンと取得できるかどうか)
ここまで来たらあとは動作テストです。以下の手順でうまく動くかを試してみます。
・ブラウザで作成/発行したテストアプリケーションサイトへアクセス
https://localhost/WebApplication3/
・STSへリダイレクトされるのでサインイン
認証方法としてWindows統合認証、証明書、IDとパスワードから選択出来るのでWindows統合認証を選択(もちろんIDとパスワードを入れてもOK)
・STSで認証され、元のサイトへリダイレクト
STSから渡ってきたクレーム情報(ADDSの属性)が表示されればOKです。
余談ですが、実際のアクセスの流れstraceでトレースしてhttpreplayで表示みると以下の通りです(細かい内容は機会があれば解説したいと思います)
まずは手始め、ということでGeneva ServerのSTS(Security Token Service)の動作確認も兼ねて、STSを使うWebアプリケーションをGeneva Framework(Windows Identity Framework)を使って作ってみました。
動作のイメージはこんな感じです。
作業の流れとしては、
・Geneva Framework / Geneva Framework SDKのインストール
・Claimを使うWebアプリケーションの作成
・作成したアプリケーションが別途構築したGeneva ServerのSTSを使うように設定
・作成したアプリケーションをGeneva ServerにRelying Partyとして登録
・動作確認(STSに定義したClaimをキチンと取得できるかどうか)
となります。
早速順番に見ていきます。
■Geneva Framework / Geneva Framework SDKのインストール
まず今回用意した環境は下記の通りです。
・Windows Server 2008 EE 64bit(1台のサーバにADDS以外は入れました)
・Geneva Framework
・Geneva Framework SDK
・Visual Studio 2008 STD(.NET Framework 3.5SP1)
■Claimを使うWebアプリケーションの作成
アプリケーションの作成は下記の手順で行います。
1.Visual Studioを起動し、Webアプリケーションの新規作成
2.ソリューションエクスプローラからGeneva Frameworkのライブラリへの参照を設定します。
対象は
・Microsoft.IdentityModel
・System.IdentityModel
の2つです。
3.Webページを作成します。
取得したTokenからClaimを取り出してテーブルに内容を表示することにします。
4.コードの作成
Page_Loadイベントの中で取得したTokenからClaimを取り出します。
IClaimIdentity型の変数callerを定義し、コンカレントセッションのセキュリティプリンシパル情報=取得したTokenをセットします。
(実際のコード)
IClaimsIdentity caller = (IClaimsPrincipal)(Thread.CurrentPrincipal)).Identities[0];
次に、callerのメンバであるClaimsプロパティに入っているそれぞれのClaim(属性)をLINQを使って取り出して行きます。
たとえば、ClaimTypeがNameの属性を取得したければ、caller.ClaimsからSystem.IdentityModel.Claims.ClaimType.Nameと合致するClaimを抜き出します。
(実際のコード)
string Name = (from c in caller.Claims where c.ClaimType == System.IdentityModel.Claims.ClaimType.Name select c.Value).Single();
■作成したアプリケーションが別途構築したGeneva ServerのSTSを使うように設定
具体的にはユーティリティを使ってアプリケーションのweb.configを設定します。
ドキュメントを見ているとソリューションエクスプローラで右クリックするとSTSの設定ができるようなことが書いてありますが、実際には出てこなかったのでGeneva Frameworkのインストールフォルダ以下のFedUtil.exeを直接実行します。
やることは、
・作成したアプリケーションのWeb.configを指定
・STSとしてGeneva Serverのmetadataを指定
※https://
の2点です。
この後、アプリケーションをビルドして発行~IISへの登録をして、使えるようにします。
■作成したアプリケーションをGeneva ServerにRelying Partyとして登録
今度はSTS側の設定ですのでGeneva Serverの管理コンソールから作業をします。
Geneva Serverの管理コンソール
以下の手順でRPを登録します。
1.Policy → Replying Partiesを選択し、操作パネルから「Add Relying Party」をクリックする
2.ウィザードに従いRPの登録を行います
すでにアプリケーション側は作成~設定済みなのでSelect Data Source画面では「Import relying party configuration from a local federation metadata file」を選択し作成したアプリケーションプロジェクトフォルダ配下にあるmetadataのxmlファイルを選択すてRP情報を登録します。
3.Claimのマッピングルールを作成
ウィザードが終了するとClaimルールエディタが起動するので、以下の通りマッピングなどを設定します。
項目 | 設定 | |
ルールタイプ | LDAP | |
Attribute Store | Enterprise Active Directory User Account Store(Geneva Serverが所属するドメインのAD DS) | |
Claimマッピング | LDAP | Outgoing Claim Type |
sAMAccountName | Name | |
E-Mail Address | ||
givenName | Given Name | |
sn | Surname |
設定したら保存してエディタを終了します。
■動作確認(STSに定義したClaimをキチンと取得できるかどうか)
ここまで来たらあとは動作テストです。以下の手順でうまく動くかを試してみます。
・ブラウザで作成/発行したテストアプリケーションサイトへアクセス
https://localhost/WebApplication3/
・STSへリダイレクトされるのでサインイン
認証方法としてWindows統合認証、証明書、IDとパスワードから選択出来るのでWindows統合認証を選択(もちろんIDとパスワードを入れてもOK)
・STSで認証され、元のサイトへリダイレクト
STSから渡ってきたクレーム情報(ADDSの属性)が表示されればOKです。
余談ですが、実際のアクセスの流れstraceでトレースしてhttpreplayで表示みると以下の通りです(細かい内容は機会があれば解説したいと思います)
ID | Method | Requested URL | Status |
1 | GET | http://localhost/WebApplication3/default.aspx | 302 |
2 | GET | http://localhost/FederationPassive/?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 200 |
3 | POST | http://localhost/FederationPassive/IPSelection.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 200 |
4 | POST | http://localhost/FederationPassive/IPSelection.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 200 |
5 | POST | http://localhost/FederationPassive/SignIn.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 302 |
6 | GET | http://localhost/FederationPassive/auth/integrated/IntegratedSignIn.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 401 |
7 | GET | http://localhost/FederationPassive/auth/integrated/IntegratedSignIn.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 401 |
8 | GET | http://localhost/FederationPassive/auth/integrated/IntegratedSignIn.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%2fWebApplication3%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fWebApplication3%252fdefault.aspx&wct=2009-07-30T08%3a47%3a46Z | 200 |
9 | POST | http://localhost/WebApplication3/ | 302 |
10 | GET | http://localhost/WebApplication3/default.aspx | 200 |
2009年7月28日火曜日
ILM2007FP1 PowerShellコマンドレット
以下のURLからダウンロードできます。(当然ながら使うためには事前にPowerShellをインストールしておく必要があります)
・ILM2007FP1 PowerShellコマンドレット
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=89b59938-4323-4ad2-afed-99fec4520385
・リファレンスガイド
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=38b31e06-0342-481e-b744-9899d5b601db
インストールは以下の手順です。
■MAConfigSetup.msiの実行
ダウンロードしたMSIファイルを実行します。
■PowerShellへのスナップインの追加
カスタムコマンドレットを使うためにはインストール/スナップインの追加という流れになります。
ただ、追加したアセンブリ(ILMインストール先\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll)の厳密な名前で署名されていないので、sn.exeにVrオプションを付けて検査をスキップさせる必要があります。
・sn.exeでの検査のスキップ
次にカスタムコマンドレットのインストールを行います。インストールにはInstallUtil.exeを使用します。
・インストール
・スナップインの登録状態の確認
・スナップインを追加
■利用可能なコマンドレット
実は私の環境では完全には動かなかったのですが、リファレンスガイドを見ると下記のようになっています。
・ILM2007FP1 PowerShellコマンドレット
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=89b59938-4323-4ad2-afed-99fec4520385
・リファレンスガイド
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=38b31e06-0342-481e-b744-9899d5b601db
インストールは以下の手順です。
■MAConfigSetup.msiの実行
ダウンロードしたMSIファイルを実行します。
■PowerShellへのスナップインの追加
カスタムコマンドレットを使うためにはインストール/スナップインの追加という流れになります。
ただ、追加したアセンブリ(ILMインストール先\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll)の厳密な名前で署名されていないので、sn.exeにVrオプションを付けて検査をスキップさせる必要があります。
・sn.exeでの検査のスキップ
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin> sn.exe -Vr "C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll" Microsoft(R) .NET Framework Strong Name Utility バージョン 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved. アセンブリ 'Microsoft.DirectoryServices.MetadirectoryServices.Config,31BF3856AD364E35' の確認エントリが追加されました。 |
次にカスタムコマンドレットのインストールを行います。インストールにはInstallUtil.exeを使用します。
・インストール
PS C:\Program Files\Microsoft Identity Integration Server\UIShell> &"$env:windir/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe" ".\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll" Microsoft(R) .NET Framework Installation utility Version 2.0.50727.1433 Copyright (C) Microsoft Corporation. All rights reserved. トランザクションのインストールを実行中です。 インストール段階を開始しています。 C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll アセンブリの進行状態については、ログ ファイルの内容を参照してください。 ファイルは C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.InstallLog にあります。 アセンブリ 'C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll' をインストールしています。 該当するパラメータ: logtoconsole = assemblypath = C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll logfile = C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.InstallLog インストール段階が正常に完了しました。コミット段階を開始しています。 C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll アセンブリの進行状態については、ログ ファイルの内容を参照してください。 ファイルは C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.InstallLog にあります。 アセンブリ 'C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll' をコミットしています。 該当するパラメータ: logtoconsole = assemblypath = C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.dll logfile = C:\Program Files\Microsoft Identity Integration Server\UIShell\Microsoft.DirectoryServices.MetadirectoryServices.Config.InstallLog コミット段階が正常に終了しました。 |
・スナップインの登録状態の確認
PS C:\Program Files\Microsoft Identity Integration Server\UIShell> Get-PSSnapin -Registered Name : MIIS.MA.Config PSVersion : 1.0 Description : PowerShell snap-in for configuring management agents |
・スナップインを追加
PS C:\Program Files\Microsoft Identity Integration Server\UIShell> Add-PSSnapin MIIS.MA.Config PS C:\Program Files\Microsoft Identity Integration Server\UIShell> |
■利用可能なコマンドレット
実は私の環境では完全には動かなかったのですが、リファレンスガイドを見ると下記のようになっています。
コマンドレット | 機能 | 引数 |
Import-MIISServerConfig | サーバ設定のインポートを行う (Identity Managerのfileメニューからエクスポートしたxmlファイルをインポートする) | -Path xmlファイルの存在するフォルダのパス |
Set-MIISADMAConfiguration | Active Directory MAの設定を更新する(フォレスト、クレデンシャルのみ) このコマンドレットを使ってフォレスト設定を更新すると対象のMAはフォレスト内のすべてのドメインに対して同期を行うように設定される(MAのパーティションリストにすべてのドメインが追加される) また同時に既存の実行プロファイルに各ドメインの情報が追加される | -Credentials Active Directory MAユーザがドメインに接続する際に利用するパスワード(Stringではないので,Get-Credential forest\userでパスワード入力画面をポップアップさせる) -MA Name 対象のMA名 -Forest 同期対象のフォレストのFQDN |
Set-MIISExtMAConfiguration | Extensible MA(XMA)の設定を更新する(クレデンシャルおよびConnect toプロパティのみ) | -ConnectTo XMAのConnect toに設定する接続文字列 -Credentials XMAユーザがドメインに接続する際に利用するパスワード(Stringではないので,Get-Credential forest\userでパスワード入力画面をポップアップさせる) -MA Name 対象のMA名 |
2009年7月16日木曜日
"Geneva"の正式名称発表
7/13にWPC(Worldwide Partner Conference)で発表されたようです。
http://blogs.technet.com/forefront/archive/2009/07/13/business-ready-security-news-at-wpc.aspx
まぁあまり違和感ないと言うか順当と言うか、です。
http://blogs.technet.com/forefront/archive/2009/07/13/business-ready-security-news-at-wpc.aspx
CodeName | 正式名称 |
"Geneva" Server | Active Directory Federation Services |
"Geneva" Framework | Windows Identity Foundation |
"Geneva" Cardspace | Windows Cardspace |
まぁあまり違和感ないと言うか順当と言うか、です。
2009年7月15日水曜日
カンターラ・イニシアティブ発足記念セミナー
昨日、オラクル青山センターで開催されたので参加してきました。
アジェンダおよび内容は以下の通り。
1.カンターラ・イニシアティブ概要説明 / NTT情報流通プラットフォーム研究所 高橋氏
アイデンティティのベン図(The Venn of Identity)を紹介し、カンターラ・イニシアティブとしてはアイデンティティ管理に関連する3つの技術分野(SAML、OpenID、Infomation Card)の「ハーモナイズ」を目指すという話でした。
※ちなみにカンターラとはスワヒリ語で「橋」という意味で、語源にアラビア語の「調和」を持つとのことです。語源とよりアラビア語では3つの子音で意味をあらわすので今回のケースだと「نطر」(n t r)がベースとなっている「قنطرة(カンタラトゥン)=アラビア語でも橋の意」がそのままスワヒリ語になっているんだと思いますが。
活動の特徴としては、技術仕様の検討は行うが、実際の策定は各団体(OIDFやLibertyなど)が行うことになる、ということでした。
ちなみにConcordia、Liberty Alliance、Open Libertyは今後カンターラ・イニシアティブの配下にはいるようです。
2.分科会における取組事例~SAML-OpenID連携~ / NTT情報流通プラットフォーム研究所 岡本氏
RSAカンファレンス2009で紹介したデモンストレーションが紹介されました。
OpenIDのIdPで認証してSAML対応のサービスを利用したり、決済をする場合は追加でSAML IdPでも認証を要求して多要素認証としたり、という内容でした。
3.カンターラ・パートナーセッション
OpenID最新動向、OpenIDファウンデーションジャパン活動 / 野村総合研究所 崎村氏
OpenIDそのものの簡単な紹介と、OpenIDファウンデーションの活動内容(技術セミナや崎村氏自身が関与している各種仕様策定の活動)の紹介がありました。
また、関連するニュースとしてGoogle AppsがOpenIDに対応する、という話がありました。(意図せぬ情報のリークだった様でしたが)
4.カンターラに集う技術事例(1)Liberty/SAML事例紹介
SAML認証によるGoogleAppsの認証連携事例の紹介 / サイオステクノロジー 中田氏
「コスト削減」という企業における命題に対してクラウドが選択されてきていますが、エンタープライズ利用に必要な「セキュリティ」と、クラウドの特徴である「どこからでも使える」の相反をどう解決するか、という点への取り組みが紹介されました。
例えば、GMailを社内からOutlookやThunderbirdといったメールクライアントでpop/imap利用をしたいが、GoogleAppsの特徴からして自宅でも同じ設定をすればそのまま使えてしまうのでなんとかしたい、というセキュリティ上の課題を社内プロキシ経由でないとGMailが使えないようにした、という話がありました。
5.カンターラに集う技術事例(2)OpenID事例紹介
NTTComにおけるOpenID活用の取り組み / NTTコミュニケーションズ 北村氏
現在取り組みつつある「マスタID」のOpenID対応について紹介されました。
以前はLiberty仕様で構築されていたものをOpenIDに対応させようとしているとのことです。
取組みとしては、OpenID対応のIdPプロキシのようなものを構築してNTTコミュニケーションズ提供のIdP、NTTドコモのIdP、gooのIdPをユーザが選択できるような仕組みづくりや、決済などを含むアプリケーションを含めたサービス対応を考えているようです。
参加者からの質問も出ていたのですが、例えば決済する際にgooのIDとドコモのIDを同列に信頼してよいのか?という課題への取り組みが重要になってくると思います。
6.カンターラに集う技術事例(3)Infomation Card事例紹介 / マイクロソフト 田辺氏
SAMLやOpenIDとは少し違った点としてCardSpaceではユーザビリティを中心に取組んでいるという話が紹介されました。
Geneva STSを使った別ドメインのSharePointサイトへのログオン/属性交換のデモも行われました。
まぁとりあえずは発足したばかり、ということでカンターラ・イニシアティブとしての具体的な取組みはこれから、ということだと思いますので、今後の動きを要ウォッチだと思います。
アジェンダおよび内容は以下の通り。
1.カンターラ・イニシアティブ概要説明 / NTT情報流通プラットフォーム研究所 高橋氏
アイデンティティのベン図(The Venn of Identity)を紹介し、カンターラ・イニシアティブとしてはアイデンティティ管理に関連する3つの技術分野(SAML、OpenID、Infomation Card)の「ハーモナイズ」を目指すという話でした。
※ちなみにカンターラとはスワヒリ語で「橋」という意味で、語源にアラビア語の「調和」を持つとのことです。語源とよりアラビア語では3つの子音で意味をあらわすので今回のケースだと「نطر」(n t r)がベースとなっている「قنطرة(カンタラトゥン)=アラビア語でも橋の意」がそのままスワヒリ語になっているんだと思いますが。
活動の特徴としては、技術仕様の検討は行うが、実際の策定は各団体(OIDFやLibertyなど)が行うことになる、ということでした。
ちなみにConcordia、Liberty Alliance、Open Libertyは今後カンターラ・イニシアティブの配下にはいるようです。
2.分科会における取組事例~SAML-OpenID連携~ / NTT情報流通プラットフォーム研究所 岡本氏
RSAカンファレンス2009で紹介したデモンストレーションが紹介されました。
OpenIDのIdPで認証してSAML対応のサービスを利用したり、決済をする場合は追加でSAML IdPでも認証を要求して多要素認証としたり、という内容でした。
3.カンターラ・パートナーセッション
OpenID最新動向、OpenIDファウンデーションジャパン活動 / 野村総合研究所 崎村氏
OpenIDそのものの簡単な紹介と、OpenIDファウンデーションの活動内容(技術セミナや崎村氏自身が関与している各種仕様策定の活動)の紹介がありました。
また、関連するニュースとしてGoogle AppsがOpenIDに対応する、という話がありました。(意図せぬ情報のリークだった様でしたが)
4.カンターラに集う技術事例(1)Liberty/SAML事例紹介
SAML認証によるGoogleAppsの認証連携事例の紹介 / サイオステクノロジー 中田氏
「コスト削減」という企業における命題に対してクラウドが選択されてきていますが、エンタープライズ利用に必要な「セキュリティ」と、クラウドの特徴である「どこからでも使える」の相反をどう解決するか、という点への取り組みが紹介されました。
例えば、GMailを社内からOutlookやThunderbirdといったメールクライアントでpop/imap利用をしたいが、GoogleAppsの特徴からして自宅でも同じ設定をすればそのまま使えてしまうのでなんとかしたい、というセキュリティ上の課題を社内プロキシ経由でないとGMailが使えないようにした、という話がありました。
5.カンターラに集う技術事例(2)OpenID事例紹介
NTTComにおけるOpenID活用の取り組み / NTTコミュニケーションズ 北村氏
現在取り組みつつある「マスタID」のOpenID対応について紹介されました。
以前はLiberty仕様で構築されていたものをOpenIDに対応させようとしているとのことです。
取組みとしては、OpenID対応のIdPプロキシのようなものを構築してNTTコミュニケーションズ提供のIdP、NTTドコモのIdP、gooのIdPをユーザが選択できるような仕組みづくりや、決済などを含むアプリケーションを含めたサービス対応を考えているようです。
参加者からの質問も出ていたのですが、例えば決済する際にgooのIDとドコモのIDを同列に信頼してよいのか?という課題への取り組みが重要になってくると思います。
6.カンターラに集う技術事例(3)Infomation Card事例紹介 / マイクロソフト 田辺氏
SAMLやOpenIDとは少し違った点としてCardSpaceではユーザビリティを中心に取組んでいるという話が紹介されました。
Geneva STSを使った別ドメインのSharePointサイトへのログオン/属性交換のデモも行われました。
まぁとりあえずは発足したばかり、ということでカンターラ・イニシアティブとしての具体的な取組みはこれから、ということだと思いますので、今後の動きを要ウォッチだと思います。