2011年1月25日火曜日

NSF2011

今日はJNSA主催のNSF2011(Network Security Forum 2011)でした。

私もJNSAのアイデンティティ管理ワーキンググループで活動している関係で「クラウド時代のアイデンティティ管理」というテーマで少々話をさせていただきました。



しかし、いつも思うのですがテーマとして漠然としている「クラウド」や「アイデンティティ管理」の両方がかけ合わさっているので余計に分かりづらく、なかなかリスナーに響くプレゼンができないのが悩みです。。。(プレゼン技術の問題も多々あるのですが)

主旨は、
・クラウド上のサービスを使うからと言って情報セキュリティマネジメントのポリシーが変化するわけではない
・ただし環境(ネットワーク境界など)は変化しているので、それ相応のリスク対策は必要である
・ENISAなどクラウドのリスクの洗い出し/評価をしている組織もあるのでまずはそれを参考に
・フェデレーションやクラウド上のリソースへのプロビジョニングなどリスクを低減するためのソリューションも出てきているのでうまく活用を
といったところです。

必要以上に「クラウド」を敬遠せずに有効に活用していければ、、と切に願います。

2011年1月23日日曜日

[FIM2010]有効かすべき管理ポリシー規則(MPR)のチェック

何度やってもインストールは難しい(真面目にパーミッションやトポロジを考えると)し、インストールしただけでは何にもできないFIM2010ですが、その中でももっとも判断に迷うポイントの一つが「どの管理ポリシー規則(MPR)を有効化すべきか?」だと思います。

そもそもデフォルト状態では一般ユーザではポータルアクセスもできないし、セキュリティグループへの参加もできない、という状態なのでプロジェクトを進める中で「誰に何を許可するか」を管理ポリシー規則として設定していくことになるのですが、ここでは最も一般的な操作をする際にまず有効化すべき規則の状態をチェックする方法を書いておきます。

・デフォルトではポータルにアクセスすらできない















チェック用スクリプト(PowerShell)
http://social.technet.microsoft.com/wiki/contents/articles/how-to-use-powershell-to-check-your-mpr-configuration-for-synchronization.aspx

このスクリプトは実行時に構成されているオブジェクトタイプ(ユーザのみなのか、グループも対象なのか)を判別し、その時点の管理ポリシー規則の状態と一般的に必要な状態の差分を洗い出して不足している設定を教えてくれます。

たとえば、ユーザの同期を行う様な構成をしただけの状態でスクリプトを実行すると、

FIM MPR Configuration For Synchronization Check
===============================================
MPRs that need to be enabled:
-General: Users can read non-administrative configuration resources
-User management: Users can read attributes of their own
-Synchronization: Synchronization account can read group resources it synchronizes
-Synchronization: Synchronization account controls group resources it synchronizes

という形で4つの管理ポリシー規則を有効化する必要があることを教えてくれます。

この情報をもとに管理者ポータルからポリシーを有効化します。
















修正後、再度実行すると

FIM MPR Configuration For Synchronization Check
===============================================
Your current MPR configuration meets all requirements

という形で修正は必要ない、と言われます。

この状態であればポータルへもアクセスできます。














管理対象やポリシーが変わった時は都度このスクリプトを実行して状態をチェックしてみるとよいかもしれません。

[FIM2010]管理エージェントの情報が管理者ポータルに出てこない

久しぶりにFIM2010ネタを。

FIM2010ではMIIS/ILMから引き続き管理エージェント(MA)を使った同期設定・実行を行うFIM Synchronization Serviceとポータル等のWebサービスを管理するFIM Serviceの2つのサービスが稼働しています。

同期対象のリソースを設定する際は、
1.Synchronization Service Managerで管理エージェントを作成する
  →同期対象のリソースへの接続設定等を行う
2.管理者ポータルで同期規則、ワークフロー、管理ポリシー規則を作成する
  →細かな同期条件や属性フロー設定等を行う
という流れになります。

当然1のSynchronization Service Manager(Synchronization Service側)で作った管理エージェントの設定情報が2の管理者ポータル(FIM Service側)に同期されていないと同期規則を正しく設定できません。

正しくシステムが動作している時は2つのサービスの間で管理エージェントの情報のレプリケーションが実行されているのですが、過去に2回ほどいくらSynchronization Service Managerで管理エージェントを作っても管理者ポータルから見えない、という状態になったことがあります。

その状態になった時はイベントログに以下の様な情報が記録されます。

****************************************
管理エージェントまたはメタバースの構成の更新内容を、ターゲットのコネクターディレクトリにレプリケートできませんでした。その結果、このコネクターディレクトリーの管理エージェントまたはメタバース構成は最新の状態ではありません。 エラーの原因である状態を解決して、ターゲット管理エージェントのパスワード情報を更新するこ とで、再同期が行われるようにしてください。

追加情報:
エラー コード: 0x80230709
エラー メッセージ: (The extension operation aborted due to an internal error in FIM Synchronization Service.)
操作: Update MA
レプリケート対象の管理エージェントの名前: AD MA
レプリケート対象の MA の GUID: {C7DB5C1A-8D98-4F1A-8AFE-8C2E198DADEF}
ターゲットの MA の名前: FIM MA
ターゲットの管理エージェントの GUID: {8676CD7A-9ADA-455C-9363-714FAE21CC6D}
****************************************

原因は2つのサービスの間で情報のレプリケーションがうまくいっていないことなのですが、どうやって解消するのか調べているとこんなページが出てきました。

http://idamd.blogspot.com/2010/06/ma-attributes-not-listed-in-fim-sync.html


どうもうまくいっていないようです。再インストールしかないのか?と思いもう少し調べていると以下のKBにたどり着きました。

Update Package 1 for Microsoft Forefront Identity Manager (FIM) 2010
http://support.microsoft.com/kb/978864

要するにFIM ServiceとFIM Synchronization Serviceのパッチのバージョンを合わせる必要があるとのこと。

いわれてみれば当たり前なのですが、はまりポイントはMicrosoft Updateを使う場合、
・FIM Serviceのパッチは重要な更新
・FIM Synchronization Serviceのパッチはオプション更新
である点です。

つまり、Synchronization Service側のパッチは明示的に選択しないとインストールされないので両者の更新状況にズレが発生してしまいます。

運用するうえでは気を付けないといけませんね。

ちなみにSynchronization Service側も更新したら正常にレプリケーションが開始され、ちゃんと管理エージェント情報が管理者ポータルからも参照できるようになりました。

2011年1月11日火曜日

Office365とAD FS2.0の認証連携

ベータプログラムが公開されてからしばらく時間が経ちましたが、順番待ちでなかなか使えるようにならないので悶々と情報をあさる日々が続きますが、そんな中でも少しずつ情報が出始めているようです。(MVP for Office365っていうのも出てきたようですし)

その中で興味深いblogエントリがあったので紹介します。(Avanadeのオランダの方が書いているもののようです)

360 on 365

#Office365 and #ADFS2.0, how does it work?
http://360on365.com/2010/12/31/office365-and-adfs2-0-how-does-it-work/


最近ちょこちょこ情報として出始めている中で騒がれている制限事項(前提事項)がやはり一番に紹介されています。
・オンプレミスのActive DirectoryのUPN属性がインターネットから解決出来る必要がある
 →下手に.localドメインで社内ADを構築しているとかなり大幅な変更になるかも知れません。他のアプリケーションへの影響もあるでしょうし。。FIM2010などの自動化ツールは必須かも知れません。
・Office365からのドメインの正当性確認を受ける必要がある
 →LiveIDとのFederationの時にもはまりましたが、Office365というかMFG(Microsoft Federation Gateway)が認めてくれる必要があります。証明書の発行元はシビアです。。


ベストプラクティスとしては、以下の手順が推奨されています。
・初めにDirecrtory Synchronizationをセットアップし、オンプレミスユーザをクラウドに同期する
・次にフェデレーション信頼を確立する

フェデレーション信頼の確立を行ううえでは、Microsoft Online Services Identity Federation Management Toolが用意されていて、PowerShellのコマンドレットを使ってオンプレミスとOffice365のフェデレーションを設定することができる様です。以下、コマンドレットの例。
 Set-MSOLContextCredential
 Add-MSOLFederatedDomain
 Convert-MSOLDomainToConverFederated
 Get-MSOLFederationPropert
LiveIDの時に使ったFederationユーティリティと同じようなお手軽設定ツールですね。

基本的にLiveIDと同じくMicrosoft Federation Gatewayを使う構成になるため、ユーザのアクセスフローは以下の通りです。
1.Office365ポータルへアクセス
2.IDを入力(xxx@xxx.xxx)形式
3.Microsoft Federation Gatewayドメイン名よりレルムを判断してIdP(オンプレミスのAD FS2.0)へリダイレクト
4.AD FS2.0で認証
5.発行されたセキュリティ・トークンをMicrosoft Federation Gatewayへポスト
6.Microsoft Federation GatewayがOffice365用に変換したセキュリティ・トークンをポスト
7.ユーザがログイン


何しろ早く触ってみたいです。

2011年1月7日金曜日

[AD FS]RTWのパッケージが更新されてます

2011/1/5に地味にアップデートされてます。
http://www.microsoft.com/downloads/details.aspx?FamilyID=118c3588-9070-426a-b655-6cec0a92c10b&displayLang=ja

以下のKBに対応したということらしいです。
http://support.microsoft.com/kb/2254265
 The "500" error code is returned when you send an HTTP SOAP request to the "/adfs/services/trust/mex" endpoint on a computer that is running Windows Server 2008 R2 or Windows Server 2008
http://support.microsoft.com/kb/2272757
 An identity-provider-initiated sign-on process is slow in Windows Server 2008 R2 and in Windows Server 2008

2011年1月3日月曜日

インフラエンジニアにとってのアイデンティティ管理 ~「.NET開発テクノロジー入門」を読みつつ

一般的にアイデンティティ管理や認証と言ったキーワードは開発者ではなくインフラ屋さんの領分だと認識されていると思います。しかし選択する製品に関わらず実際に取り組んでみると業務やシステムの棚卸しやデータフローの設計、インターフェイスプログラムの開発など一般的なサーバやネットワークなどのインフラを構築するのとはかなり違ったアプローチやスキルが要求される事が分かります。
一方開発者サイドから見るとアイデンティティとかセキュリティなどはあくまで非機能要件にカテゴライズされてしまうため、範疇外として敬遠されてしまいがちです(勿論すべての開発者が、という訳ではありませんが)

しかし、お互いに敬遠し合っていてもプロジェクトは進まないのでインフラ屋さんとしては役割が変化して来ている、と考えて半ば無理矢理ではありますが前のめりに取り組んで来ているのが実態なのかもしれません(これは逆もまた真なので開発者が領土を拡大してくれている場合も多数あります)
私の場合も例に洩れずで、サーバインフラ屋さんが主たるロールなのですがたまたまアイデンティティ管理プロジェクトを担当したので少しづつ領土を拡大してきました。ただ、私の場合一点違ったのは純粋培養のインフラ屋ではなく、数年ですが開発もやっていた経験があったので今となっては強みになっていると感じています(少なくともコーディングにアレルギーがない点で)
しかし、私の経験した開発も今となってはかなり昔の話でVisual Studio5.0とか6.0を使ってActiveXとかCOMの開発をしていた程度なので実は.NET開発は実務では全くの未経験だったりします。
ただ、このblogで主に取り上げているFIM/ILMやAD FS2.0をちゃんと使おうとするとやはり.NETの開発に関する知識が必要になります。そんなシチュエーションで「.NET開発テクノロジー入門」を頂きましたので軽く読んでみました。





















目次は以下の通りです。

  • 本書について
  • 第1章 .NET Framework 4による最新のアプリケーション開発(はじめに)
  • 第2章 Webアプリケーションの開発(ASP.NET)
  • 第3章 リッチクライアントアプリケーション開発(WPF/Silverlight)
  • 第4章 サービス開発/分散テクノロジー(WCF)
  • 第5章 データアクセス技術(ADO.NET/LINQ)
  • 第6章 並列プログラミング
  • 索引


この中でILM/FIM、AD FS2.0に関連しそうな所は以下の3点が中心です。
  • WCF : FIM Serviceを使うサービスクライアントの開発や、SilverlightからWIFを使う際に使用
  • WF : FIMのカスタムワークフローの開発に使用
  • ASP.NET : 言うまでもなくWIFを使う場合の定番
※後はそもそも論ですがVisual Studioの使い方もインフラ屋さんにとっては大事なポイントです。

今回はさらっと読み流したので実際に手を動かしたわけではありませんが、概念を理解する上ではとても役に立ちました。(特にWCFについてはかなりのページ数が割かれており、分散サービスの開発や利用の概念の理解に役立ちました)また、今後コードを書く際には本書をリファレンスとして活用していこうと思います。

MVP Renewal !!

皆さん明けましておめでとうございます。
昨日(1/2)昨年度に引き続きIdentity Lifecycle ManagerのMVPを受賞することができました :-)

先日Microsoft CorporationのCommunity & Online SupportのGMであるToby Richardsさんにお会いした時にも「Identity Lifecycle Managerはニッチだよね!」という変なお墨付き?を頂いた分野ではありますが、今後も細々と活動をして行きちょっとしたお役に立てればと思います。

ということで本年もよろしくお願い致します!