2011年10月13日木曜日

AD FS2.0 Rollup 1 は Office 365 を強く意識


RTW がリリースされてから1年半程度が経過した AD FS 2.0 ですが、Rollup 1 が現地の 10/12 にリリースされました。

サポートページ:Description of Update Rollup 1 for Active Directory Federation Services (AD FS) 2.0

http://support.microsoft.com/kb/2607496


内容は bug fix の他、Office 365 との連携を強く意識した幾つかの機能拡張がされています。
追加されたのは以下の 4 つの機能で、いずれも AD FS Proxy を公開することを含め( Outlook からの Office 365 アクセスに利用するため )、Office 365 を使うための機能拡張と言えそうです。

  • Multiple Issuer Support
    • これまで、複数のトップレベルドメインが存在する環境( UPN 属性が複数設定されている環境 )で Office 365 / AD FS 2.0 連携を行う場合は各ドメインの単位に AD FS 2.0 サーバを配置する必要がありましたが、この機能拡張により 1台のサーバで対応できる様になりました。まだ検証はしていませんが動きとしてはユーザの UPN 属性によって発行するトークンの Issuer を動的に書き換えるような動きをするそうです。
  • Client Access Policy Support
    • これも Office 365 に絡む話ですが、 Office 365 へアクセスをネットワークの場所などで制限することができる様になっています。例えば、社外からのアクセスをする場合は Office 365 へのアクセスを不可にする、等といった制限ができるようです。
  • Congestion Avoidance Algorithm
    • 特に外部に AD FS Proxy を公開することを意識した機能だと思われますが、高負荷時に認証リクエストの数をしぼることでサービス停止を防ぐための機能を実装しています。
  • Additional AD FS 2.0 performance counters
    • トークン発行要求の数や、認証に失敗した数などがパフォーマンスカウンターで確認できる様になりました。

最近は大企業でも Office 365 / AD FS 2.0 の導入事例が増えてきているようなので、これらの機能の実装で AD FS 2.0 もようやく実用に足るものとなって来たと言えそうです。

2011年10月12日水曜日

salesforce.com summer'11 の JIT Provisioning を試してみる

salesforce.com の summer'11 版の新機能で Just In Time Provisioning(JIT Provisioning)が追加されているのを発見したのでちょっとAD FS2.0との連携動作を確認してみました。

■JIT Provisioning とは
試してみる前にまず、JIT Provisioning とはなんなのか?を簡単に解説しておきます。

一言で言うと「SAML 等の Assertion からユーザを On the Fly で作成する」ということです。これまで一般的にシステムへのシングルサインオンをする前提はそのシステムに「あらかじめ」ユーザが作成されていることが必要でした。しかし、クラウド上のシステムへあらかじめユーザを作成する=クラウド上にユーザ情報をある程度持たせる必要がある、という点に抵抗感があったり、あくまでオンプレミスとクラウドの間で疎なシステム結合を行いたい、というニーズに対して登場してきたのが JIT Provisioning です。 動作としては、例えばSAMLでのシングルサインオンを行うような場合に、IdP から発行されるセキュリティトークンの中にある Assertion (クレーム)を元にユーザを作成する、という動きです。

・従来のプロビジョニング~シングルサインオン






















・JIT プロビジョニング~シングルサインオン




■salesforce.com における JIT Provisioning 設定

では、早速設定を確認してみます。

まずは salesforce.com 側の設定です。今回は force.com を使っていますが、基本的な設定は salesforce.com でも同様です。

基本的な設定方法は以前 @IT に書いた記事を参考に実施をして行くことになります。
 Windowsで構築する、クラウド・サービスと社内システムのSSO環境 第3回  http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso03/adfs2sso03_04.html


記事と異なる点は以下の通りです。

・salesforce 側のシングルサインオン設定  

 Force.com のセキュリティ設定の中のシングルサインオン設定で、以下を設定します。  
 ・ユーザプロビジョニングの有効化:チェック  
 ・SAML のユーザ ID 種別:アサーションには、ユーザオブジェクトの統合 ID が含まれます












・プロファイルの作成  

 JIT Provisioning の前提として、SAML アサーションの Attribute フィールドの中に最低でも  
 ・Username  
 ・Email  
 ・LastName  
 ・ProfileId
 が入っている必要があります。  
 参考)http://login.salesforce.com/help/doc/en/sso_jit_requirements.htm

 UserName や Email などはわかりやすい属性なので、特にこの段階で意識をする必要はありませんが、 ProfileId だけは force.com の管理画面からも見ることが出来ません。(本来は 00ex0000001pBNL などといった識別子のようです)頑張ってAPEX等でコードを書いて実際のIDを取得しても良いのですが、敷居が高いので同じ属性にプロファイル名を入れると force.com 側で勝手に ID へ変換してくれるので今回はそちらを使います。

 ただ、ビルトインのプロファイル名( Force.com - Free User など)はうまく識別をしてくれなかったので、今回は新たに単純に「 User 」という名前のプロファイルを作りました。( Force.com - Free User をテンプレートとして作成したので内容は全く同じです)















・AD FS2.0 側のクレーム発行ルール

 次に AD FS2.0 側ですが、通常の SSO 設定と同様に Active Directory の UPN やメールアドレスを NameIdentifier に入れてあげる点に加え、上記にも書いた JIT Provisioning に必要な各属性に関するルールの記述が必要です。

 その際に、各属性名のプレフィックスに「 User. 」をつけてあげる必要があります。  具体的には、以下の様なマッピングを行います。
発行するクレームタイプデータソース
NameIdentifierActive DirectoryUPN or メールアドレス(今回は UPN を利用)
User.Usernameメールアドレス
User.Emailメールアドレス
User.LastName
User.ProfileId固定値「User」

 Username、Email、LastName についてのクレーム発行ルールはカスタムで以下の様に記述しています。

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => issue(store = "Active Directory", types = ("User.Username", "User.Email", "User.LastName"), query = ";mail,mail,sn;{0}", param = c.Value);


同様に、ProfileId については以下の様に記述しています。

 => issue(Type = "User.ProfileID", Value = "User", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified");


■実際の動作確認

では、いよいよ動作を確認します。

まず、 force.com 側にあらかじめユーザが存在しないことを確認するためにユーザ一覧を見ておきます。














この状態で Active Directory 上に新規ユーザを作成し、AD FS2.0 で認証後、force.com へアクセスします。IdP Initiated ログオンをしますので、
 https://[AD FS2.0サーバ]/adfs/ls/idpinitiatedsignon.aspx?loginToRp=https://saml.salesforce.com
へのアクセスをします。

 - 新規ユーザ


- AD FS2.0 で認証

















すると、うまくいけばあらかじめプロビジョニングしているわけではないのに、force.com へログインできます。




















では、実際に force.com にユーザが作成されているかどうかを確認するために管理コンソールでユーザ一覧を見てみます。













見事にユーザが出来ています。


■ JIT Provisioning の利点と注意点

 この仕組みの最大の利点はあらかじめプロビジョニングをしておく必要がない= ID 管理システムの構築やアダプタの開発などをしなくても済む、という点です。

 反面、注意しなければならないポイントもあります。 例えば、
 ・ユーザの削除は手動でしなければならない
 ・利用者の数が予測しにくいのでライセンス管理が必要である
 ・ユーザ同士でのコラボレーションをしたくても相手が一度もログインしたことがなければシステム上にユーザが存在しないので情報共有などが出来ない
 などが挙げられます。

 このように万能ではありませんが、別の仕組みや運用と合わせてある程度のガバナンスを保ったうえで利用するには非常に有用な仕組みと言えると思います。

2011年10月6日木曜日

Omada Workflow Builder for FIM2010

先日は Microsoft による BHOLD 買収のニュースが FIM 界隈では騒がしかったのですが、BHOLD と並んで FIM のアドオン・ソリューションを販売している会社がこの OMADA です。

昔からこの会社は MIIS / ILM のアドオンや関連ツールを作っていたのですが、今回は FIM のワークフロー機能を活用するためのツール「Omada Workflow Builder for FIM 2010」をリリースしました。これも BHOLD の製品群と同じく FIM に不足している IAG(Identity and Access Governance)を実現するためのアドオンです。
プレス・リリースやデータ・シートを見ると、以下がポイントだそうです。

・Utilizes the workflow foundation in FIM to drive business processes
・Business workflows are launched in the FIM portal
・Built on native FIM elements such as sets, MPR's, and FIM objects
・Forms are web-based built on FIM 2010 RCDC's
・Data is stored in the FIM 2010 dynamic data model that stores the data for any request process in the dedicated object type in FIM 2010

また、特徴的な機能として以下が挙げられています。
・Graphical overview of workflow definition
・Automated publishing from central GUI into FIM 2010 facilitates deployment across Dev, Test, QA environments
・Automated business workflow validation
・Advanced business workflow configuration with loopback and dynamic rendering of forms based on tailored
process steps
・Escalation functionality with reminder emails
・Channelling of tasks for immediate feedback and acceptance from business users for fast prototyping
・Option of a variation of forms per FIM object
・Dynamic forms for task forwarding processes
・Forms handling incl. management of field validations
・Manual activities assigned to allocated users ? each
manual activity is supported by a tailored form
・Option to save tasks in draft state

基本的に FIM のワークフロー機能は Windows Workflow Foundation で構成されているので作ろうと思えばカスタム・ワークフローを作ることもできるのですが(というか特に日本のような環境ではほぼ確実にカスタマイズ)、このようにあらかじめ必要な機能が用意されていると確かに工数の削減や迅速なシステムの立ち上げを行うことも可能かもしれません。

BHOLD もそうですが、このように製品を補完する製品群を含めたエコシステムで成り立つ仕組みがもう少し日本でも出てくればなぁ、、と思ってしまいます。
日本のお客さんは保守サポートの一本化に関するニーズが強かったり、製品を複数買うことでライセンス費用がかさんだり、、と色々と問題はあるとは思いますが、、、orz

2011年10月1日土曜日

MVP Technical Expertise にようやく FIM が登場

マイクロソフトの MVP プログラムって4半期毎に新規募集・更新がかかるんですが、今回の募集(2012年1月期)からようやくカテゴリ名が Identity Lifecycle Manager から正式に Forefront Identity Manager という名前に変わったみたいです。
















MVP のプロフィールページを見るとちょっと前から Forefront Identity Manager の名前になってはいたのですが、募集時のカテゴリが正式に対応したのは今回からです。

もうすぐ日本の応募ページもオープンするみたいなので、ぜひw
http://www.microsoft.com/ja-jp/communities/mvp/selfregistration.aspx