Azure AppFabric ACS v1+ADFS+WCF Data Services

今日はWindows Azure AppFabric Access Controle Service v1 (現行)(以下ACSv1)とActive Directory Federation Services 2.0 (以下ADFS)を組み合わせてWCF Data ServicesをActive Federation認証してみようと思います。

WCF Data Servicesを利用するクライアントは今回はブラウザではなく、Windowsアプリとします。なのでブラウザが自動リダイレクトして認証画面に飛ぶようなPassive Federation認証ではなくActive Federation認証です。(自前でトークンのやり取りします)

そもそも、現行のACSv1はPassive Federationに対応していませんし、マルチテナントを考えるとちょっとWindows Identity Foundation(以下WIF)についてるFederation Utilityは使えないのでほぼコードでいろいろ制御することにします。

はっきりいって、ACSv2が出るまでのつなぎですね。ちなみに今回のネタはWIF トレーニングキットに付属するハンズオンラボ(IntroAppFabricAccessControl)を見ながらやればある程度できると思います。

今回想定している環境はこんな感じです。

※見ての通り(?)、WCF Data ServicesとSQL ServerはWindows Azure+SQL Azureでもまったく問題ありません。

では準備から。

続きを読む →

Microsoft Federation Gateway で利用できる証明書

前回のPOSTをしてからいろいろ教えていただきました。

まずMicrosoft Federation Gatewayが信頼してくれるルート証明機関(CA)ですが、以下のTechNetに記載がある通りとなるようです。

トラブルなしでMicrosoft Federation Gatewayとフェデレーションしたかったら記載のルートCAが発行するX.509証明書のほうがいいでしょうね。

さて結構なお値段がする証明書ですが、価格がお安めの証明書をいくつか教えていただきましたのでこちらも記載しておきます。

この中でMicrosoft Federation Gatewayに対応できそうなのはGoDaddyとCOMDOですかね。GeoTrustは親会社がベリサインですが、CA的にどうなのかは見たことないので不明です。

COMDOは90日間フリーなので使い方次第では凄い助かるかもですねー。

ちなみに先日のニュースリリースでGeoTrustがワンコインSSLなるサービスを発表しています。
※Amazon EC2のユーザーのみ対象ですけどね…

ASP.NET MVCでデータアノテーションを多言語化する

今日ちょっとなやんでしばやん先生に即答してもらったのでメモ。

まずリソースファイルをPublicにしておきます。要確認。
リソースファイルのプロパティでカスタムツールを PublicResXFileCodeGenerator にしてビルドアクションで”埋め込まれたリソース”にしておきます。

あとはデータアノテーションのところでリソース指定するだけ。

例:ASP.NET MVCで既定で生成されるAccountModelなど

[Display(ResourceType = typeof(YOURNAMESPACE.App_GlobalResources.StringResources), Name = "ResUserName")]
public string UserName { get; set; }

超簡単ですね。

ASP.NET MVC3での多言語対応はこちらも参照。

ただこれやって発行したりするとリソースDLLはできてるんだけど読み込めないみたいなんですよね。なんでだろ。。まだ調べてる途中なのでわかったら追記等します。

2011.02.23 追記

いろいろ見てると以下の事がわかりました。

  • データアノテーションで記載したリソースへのアクセスだと問題ない。
  • ビュー等で@HttpContext.GetGlobalResourceObject("StringResources", "String1") といった形式でアクセスするとNullが返る

ということでGetGlobalResourceObjectが問題。Webアプリケーションの発行先にApp_GlobalResourcesフォルダ(と.resxファイル)があれば問題なく動作しますが、埋め込みリソースとしてビルドするとアセンブリに埋め込まれて(あとサテライトアセンブリが出来て)発行先にはApp_GlobalResourcesフォルダは含まれません。

で、この状態でGetGlobalResourceObject呼び出すとNGと。嵌ってた状況はこんな感じです。

じゃぁどうやってアクセスするんだ?というと単純にリソースは既にPublic化されているわけですから

@MvcApplication1.App_GlobalResources.StringResources.String1

みたいにしてあげればいいわけですね。やぁ長かったよ。

参考にしたサイトはこちら。

ゼロから始めるといろいろ壁にあたりますね~。

Windows Azure Connect って実際どうなの

今日はWindows Azure Connectなんぞをネタにしようと思います。
さてWindows Azure Connectとは?というところなんですが、よく考えるとあまり取り上げてなかった気がしますね。

ぶっちゃけていうと、クライアントコンピューターとWindows AzureのホストサービスをVPN(IPSec)で結んであたかも直接通信ができるようにトンネリング接続してくれる機能のことを指します。

IPSec接続にはクライアントからOutbound TCP/443ポート(HTTPS)だけ開いていればいいので、ネットワーク要件としてはファイアウォールの設定変更も大半のケースでは不要ですし、使い勝手は良さそうです。が。

続きを読む →

Windows Azuer SDK 1.3 の新機能(後編)– @IT

@IT にWindows Azure SDK 1.3の新機能(後編)が掲載されました。

特集:Windows Azure SDK 1.3の新機能(後編) – すべてが自由自在なクラウド環境「仮想マシン・ロール」

3部作の最後ですね。過去の記事はこちら↓

おいらは詳しく知らないのですが、グランドトップになったようです。

今回も編集の方含め多数の方に感謝!!
@ITの記事ものはこれで終わりです。いろいろ勉強になりました。ほんと。

Windows Azure 一周年

2月1日はWindows Azureの正式リリース日。あっちゅーまでしたね。
ちなみに Windows Azure AppFabric の商用サービス開始は2010年4月9日。

こういう時、マスコットキャラでもいれば華やかになるのにな~~なんてね。
どっち方向に華やかなのかは知らないw

個人的にはこの1年、 Windows Azureに関わったおかげで、こんなにも変態扱いをうけて リアルでの露出とか他もろもろ勉強させてもらっていい経験が積めました。少しずつ還元しながら今後もいろいろ面白いことが出来たらいいですね~。