先日のTech・Ed Japan 2010 のBoFでも少し話題に挙がった Windows Azure ではロケールと時刻が違うから注意しような話ですが、わざわざ日本語環境で作るからそんな話になるのかと思い、ちょっくら Windows Azure 本番環境?っぽい構成で作ってみました。(あくまで「ぽい」です)
今回気にしてるのは以下の2点です。
- 時刻
- ロケール
上記を中心に Windows Azure と揃うような環境に仕上げてみたいと思います。
先日のTech・Ed Japan 2010 のBoFでも少し話題に挙がった Windows Azure ではロケールと時刻が違うから注意しような話ですが、わざわざ日本語環境で作るからそんな話になるのかと思い、ちょっくら Windows Azure 本番環境?っぽい構成で作ってみました。(あくまで「ぽい」です)
今回気にしてるのは以下の2点です。
上記を中心に Windows Azure と揃うような環境に仕上げてみたいと思います。
ということで前回作った誰得な顔写真アプリをCodePlexにて公開しました。
http://thumbnailphotoeditor.codeplex.com/
そろそろこのネタで引っ張るのも終わりかな。
初めてCodePlex使ったけど、便利だなぁ。TFSとしても使えるし良いですね。
Active Directory にはいろんな属性がありますが、あまりメジャーではない属性に thumbnailPhoto があります。
この属性にはユーザー、連絡先オブジェクトの写真(jpg)を保持しすることができます。
属性そのものはオクテット文字列でバイト配列です。で、この属性に画像を突っ込めば顔写真付きアドレス帳的にActive Directoryを活用できるわけですが…
あいにく標準ではせっかくの顔写真を使うようなアプリケーションが有りませんでした。(過去形)
なぜ過去形かというと、最近発売されたOffice 2010のOutlook 2010では、Exchange Server 2010と連携して顔写真を表示させることが標準でできるようになっています。
※Outlook 2010以前は、カスタムのAdd-inなりを利用する必要がありました。
※Exchange Server 2010でなくてもLDAPアドレス帳としてActive Directoryを使えば表示はされそうですけど、今は未確認。
ということで、今回はthumbnailPhotoを使ってOutlook 2010で顔写真を表示するまでをやりたいと思います。
Windows Azure Tools for Visual Studio 1.2 を使って開発をする際に開発PC(Windows 7)のIIS7のパッケージ追加漏れが原因で.css等の静的コンテンツが見れないという話題があがってましたので、そんな漏れが無いようにパッケージインストーラー使ったコマンドラインを起こしました。
start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-Performance;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-Security;IIS-RequestFiltering;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;WCF-HTTP-Activation;
上記を一行で管理者権限のあるコマンドプロンプト等で実行するとパッケージインストーラーが裏でごりごりインストールしてくれます。
結果はイベントログのSetupログに出るので、もし入らない場合はログ参照。
また参考にした@ITの記事では最低限4コンポーネント(任意が1つ)ですが、依存関係もろもろありますので上記のようなパッケージになりました。(IIS-ASPとかIIS-CGIは余分と思われますが。)
参考:
Active Directory Federation Services 2.0 (AD FS 2.0) が2010年5月5日にRTWになってたので、クラウド/オンプレミスの境界を越えた認証と認可を見てみようと思います。
と、いってもフェデレーションで利用するトークンを作成したりするインフラ側の話と、トークンやクレームの方式の通信的な部分と、実際に認証・認可するアプリ側の部分と多岐に渡るためなかなか整理しづらいです。
今回はその中でもインフラより?だと思われる Active Directory Federation Services 2.0 を実際にインストールしてみたり使ってみた内容をメモ書きしておこうと思います。
twitterのTLに懐かしい Exchange Server 5.5 な話題が出てたので昔作った資料を掘り起こしてきました。
※自社用に作ったものですが、もう時効だと思うので出しちゃえ出しちゃえ的な。
※まぁ今更すぎて誰得ですね。単にBlogのネタにしたかっただけともいう・・
一応免責。古い資料+当時の足らない知識で書いてる部分もあるので間違い等あるかもしれませんので自己責任で。当方は責任もちません。
もし間違い等に気づいた方は生暖かく見守るか、コメ頂けると幸いです。
ADSIで利用方法によってはリークするケースがあるとのことです。
[ADSI] 障害情報 : WinNT プロバイダを用いて ADsOpenObject() をコールするとメモリリーク発生
http://blogs.technet.com/jpilmblg/archive/2010/05/14/adsi-winnt-adsopenobject.aspx
この問題ですがADSIだけに限らず.NET Framework の System.DirectoryServicesを用いるアプリケーションも内部的にはADSIを利用しているので同様の影響を受けます。
参考までにSystem.DirectoryServicesがどんな構造になっているかの情報を@uikouさんからもらいましたので併せて記載しておきます。
System.DirectoryServices 名前空間
http://msdn.microsoft.com/ja-jp/library/system.directoryservices(VS.80).aspx
.NET Framework のディレクトリ サービス
http://msdn.microsoft.com/ja-jp/library/ms180826.aspx
S.DS名前空間はActive Directoryに対する操作を行うのに良く使いますので、よく利用されていると思います。
通常のアプリケーションであればそこまでシビアではないのかも知れませんが、24×365なWeb/サービスアプリや一度に扱うオブジェクト数が多いユーザーメンテ系のアプリは要注意ですね。
情報を提供して頂いた@uikouさんに感謝感謝~