(ひっそりと?)Windows Azure対応のサンプルアプリケーションが公開されています。

作者のブログ(https://www.wadewegner.com/)でも紹介されていないところを見ると、まだ手を入れるつもりなのかも知れませんが、一応v1.0.0ともなっていますし、それなりに便利なので紹介します。

BlobShare Sample

https://blobshare.codeplex.com/

このサンプルはファイル共有アプリケーションで、Azure StorageやSQL Azureといったストレージサービスを利用し、ACS(Access Control Service)を活用して様々なIDプロバイダーでログインすることができます。

管理者であれば(管理者が別のアカウントを管理者として追加することも可能)、ファイルをアップロードしたり他のユーザーをアカウントに追加して招待メールを出すことも可能です。

逆に招待されていないユーザーはIDプロバイダーで認証されていてもアクセスすることはできません。典型的な認証と認可の分離のシナリオであり、クレームベース認証の技術を活用しています。

なぜこのサンプルの存在を知ったのかと言うと、社内事情で恐縮ですが突然以下のようなメールが流れてきたからです。

これがBlob Share自体を使った招待メールと知ったのは後からでしたが、既に限られたメンバー間でファイル共有を実際に行っていたとのことです。

clip_image001

セットアップ方法については、Blob ShareのGetStarted(https://blobshare.codeplex.com/wikipage?title=Get%20Started)及びDeployment(https://blobshare.codeplex.com/wikipage?title=Deployment)で解説されていますので割愛します。

要はConfiguration.xmlを配置場所(Compute エミュレーター or Azure)に合わせて設定するだけです。

IDプロバイダーとしては、Live ID、Yahoo ID、Google ID、そしてFacebook IDが利用できます。

ログインすると、こんな感じの初期画面が表示されます。

clip_image002

上部にある[Blobs] リンクをクリックすると、今までアップロードしたファイルがリストアップされます。

新たにファイルをアップロードするにはリストの右上にある[Upload] リンクをクリックします。

clip_image003

こちらがファイルのアップロード画面(Multiple file upload : 複数ファイルを一度にアップロードするオプションのほう)です。

残念ながらドラッグ&ドロップには対応していません。

clip_image004

さて、これでファイルの共有がなされたと思い、招待されたユーザーがログインすると・・・

clip_image005

何も入っていません!?

実は管理者側がファイルに対するパーミッションを設定する必要があります。

clip_image006

この画面でパーミッションを付与するアカウントと有効期間をを選択して、[GRANT] ボタンを押します。

(あるいはアカウントに対してRoleを定義して、Roleごとパーミッションを付与することもできます。)

clip_image007

今の画面でパーミッションを付与されたアカウントが表示されていたら、今度はうまく行くはずです。

clip_image008

Blob Shareサンプルアプリケーションのアーキテクチャは以下のようになっています。

認証はACSで、認可はSQL Azureで行われ、ファイル本体はAzure Blobストレージに格納されるという設計になっています。

clip_image009

社内限定のバージョンはADFSサポートが追加され、Active Directory環境でのシングルサインオンに対応していました。

そのうち外部向けにもWS-Federation対応版がサポートされるかも知れませんね。

普通サンプルアプリケーションというと、あくまでも説明のための実装ですが、このように“ドッグフードを食べる”形で提供されるサンプルには実用性向上への期待が膨らみます。