[運用] 第4回 クラウド・サービスと社内ADとのSSOを実現する(後) 1.Windows AzureとAD FS 2.0との連携(1) Microsoft MVPIdentity Lifecycle Manager 伊藤忠テクノソリューションズ株式会社 富士榮 尚寛 2010/11/04 |
|||||||||
Page1
Page2
|
前回は、AD FS 2.0を利用して、Google AppsやWindows Live IDといったSaaS(Software as a Service)のクラウド・サービスとActive Directoryとのフェデレーション環境を構築する手順を解説した。最終回である今回は、PaaS(Platform as a Service )であるWindows AzureとActive Directoryとのフェデレーションを実現する手順を解説する。またforce.com(PaaS)およびAmazon EC2(Infrastructure as a Service:IaaS)についても参考情報を紹介する。AD FS 2.0のインストールとセットアップについては、前回の記事を参照していただきたい。
[PaaS]Windows Azureとの認証連携
本稿では、PaaS(Platform as a Service)であるWindows Azure上にWindows Identity Foundation(WIF)を使ったアプリケーションをデプロイ(展開)し、それとActive Directoryの間でシングル・サインオンを実現する。以下、AD FS 2.0との認証連携に関わる部分に焦点を当てて解説する。Windows Azureや Visual Studio、IISなどの基本的な設定方法や使い方については、別の解説記事へのリンクを掲載しているので、そちらをご参照いただきたい。
■環境の準備
まず、Windows Azure上にデプロイするアプリケーションを開発するための環境の準備を行う必要がある。筆者は以下のソフトウェアをインストールした環境を使用した。
- Windows 7 Ultimate 32bit版
- IIS 7.5(ASP.NETも有効化しておく)
- Visual Studio 2010 Premium
- Windows Identity Foundation(WIF)
- Windows Identity Foundation SDK
- Azure Tools for Visual Studio 2010 ver.1.2
WIFとそのSDK、Azure Toolsのインストーラは、それぞれ以下のマイクロソフト ダウンロード・センターの各ページからダウンロードできる。
- Windows Identity Foundation
※Windows 7の場合は、ファイル名が「Windows6.1」から始まるファイルを利用すること。 - Windows Identity Foundation SDK
- Windows Azure Tools for Microsoft Visual Studio 1.2
※「注意事項」に記されている手順で修正プログラムなどをインストールする必要があるので注意。
また、AD FS 2.0の認証要求元(リライング・パーティ:RP)はHTTPSのエンドポイントを持つ必要があるので、SSL用に証明書(検証目的なので正規の証明書ではなく自己署名入り証明書でよい)を作成しておく。それには、まず前回の記事で解説した手順でインターネット・インフォメーション・マネージャ(IISマネージャ)から自己署名入り証明書を作成する。次に、作成した証明書を右クリックして[エクスポート]を選び、.pfxファイルにエクスポートしておいていただきたい。
■Windows Azure側の設定
次に、Windows Azure側の準備を整える。アプリケーションのデプロイ方法や、必要となるアフィニティ・グループ(Affinity Group)やストレージ・アカウント、デプロイ用のAPI証明書の設定方法など、Windows Azureの開発の基礎的な部分については、以下のInsider.NETフォーラムの記事を参考にしていただきたい。
- [Azure]Windows Azureアプリケーションを開発するには?(環境設定)
- [Azure]Windows AzureアプリケーションをVisual Studioからデプロイするには?
- 初めてのWindows Azureテーブル・ストレージ開発
ここでは、フェデレーション環境構築のうえで重要な、実際のアプリケーションをデプロイするホスト・サービスの準備について説明する。
Internet ExplorerでWindows Azureのサイトへアクセスしたら、Windows Live IDでログインしてサービスを作成する。
Windows Azureのサービスの作成 |
今回は下表のようにサービスを設定・作成した。
設定項目 | 設定値 | 備考 |
Service Label | sso2azure | 任意 |
Public Service Name | http://sso2azure.cloudapp.net | |
Affinity Group | SSO_TEST | 任意 |
Region | Anywhere Asia | 任意 |
Certificates | 先ほど作成・エクスポートした証明書(.pfxファイル) | |
Windows Azureのサービス作成時の設定 |
■アプリケーションの実装
では、実際にWindows Azure上にデプロイするアプリケーションを開発してみる。
まず、Visual Studioを管理者として起動する。AD FS 2.0のSecurity Token Service(STS)を参照するためのWIF SDKのユーティリティ(Visual Studioのアドイン)を動かすために管理者権限が必要なためだ。
次に、プロジェクトを下表の設定で作成する。
設定項目 | 設定値 |
言語 | Visual C# |
プロジェクト テンプレート | Cloud |
バージョン | .NET Framework 3.5 |
プロジェクトの名前 | sso2azure |
Role | ASP.NET Web Role |
Web ロール名 | web_ss02azure |
プロジェクトの設定 |
次に、作成したWebRoleを下表のように設定する。
設定項目 | 設定値 | ||
参照設定 | Microsoft.IdentityModelの追加 | ||
プロパティ | ローカル コピー | True | |
プロパティ | Endpoints | HTTP | 無効 |
HTTPS | 有効 | ||
SSL certificate name | sso2azure (※以下の[Certificates]−[Name]と同じものを指定) |
||
Certificates | Name | sso2azure | |
Store Location | LocalMachine | ||
Store Name | My | ||
Thumbprint | 先ほど作成した証明書 | ||
WebRoleの設定 |
注意点として、参照設定をしたMicrosoft.IdentityModelのプロパティの[ローカル コピー]を「True」に設定しておく必要がある。これはWindows Azure上にWIFのランタイム・モジュール(DLL)が存在していないので、アプリケーションをデプロイする際にパッケージとして同梱しておく必要があるためだ。
Windows Azure上にWIFをデプロイするための設定 | |||
WIFのランタイム・モジュール(DLL)はWindows Azureに含まれていないので、デプロイ対象のアプリケーションに同梱する必要がある。 | |||
|
次に、アプリケーションがアイデンティティ・プロバイダ(IdP)であるSTSを参照できるようにするための設定を行う。
Visual Studioの[ツール]−[STS 参照の追加]をクリックすると、フェデレーション・ユーティリティ・ウィザードが起動する。最初の画面では、Windows Azure側で指定したサービス名(要するにRP名)をアプリケーションURIに指定する。ここでの注意点はhttp:ではなくhttps:を指定するという点だ。
アプリケーションURIの指定 | |||
|
次にSTSの指定を行う画面では
- 既存のSTSを使う
- STS WS-Federationメタデータのドキュメント
https://<IdPのFQDN>/FederationMetadata/2007-06/FederationMetadata.xml
を指定する。
STSの設定 | ||||||
|
ここから実際にアプリケーションのコーディングを行う。今回は、ページが表示された際にSTSから渡されたセキュリティ・トークンの中から、名前(実際にはSTSがマッピングしたActive Directoryのメール・アドレス属性)を取り出して画面上に表示する、というアプリケーションを作ってみる。
まず、次のように画面上(default.aspxのページ)にラベルを配置する。
default.aspxのデザイン・ビュー | |||
|
次に実際のコードを埋め込む。
|
|
埋め込むプログラムのコード | |
赤枠部分が実際にコーディングした、このアプリケーション固有の部分である。 |
以上の作業が完了したらアプリケーションをビルドして、先ほど作成したWindows Azure用のサービスへデプロイを実行する。
Windows Azureへのデプロイ | |||
Windows Azureにおける一般的なデプロイ手順については、Insider.NETの.NET TIPS「[Azure]Windows AzureアプリケーションをVisual Studioからデプロイするには?」を参照していただきたい。 | |||
|
なお、Windows AzureはStaging環境とProduction環境でURLが異なるため、フェデレーションを行う場合、IdPから見ると別々のRPに見えてしまう。通常はIdP側に複数のRPを設定して対応することになるのだが、本稿では挙動を確認するのが目的なので、Staging環境は利用せずに直接Production環境にデプロイを行う設定をしている。
INDEX | ||
[運用]Windowsで構築する、クラウド・サービスと社内システムのSSO環境 | ||
第1回 クラウド・コンピューティングとアイデンティティ管理の概要 | ||
1.クラウド・コンピューティングの基礎と課題 | ||
2.クラウドでのセキュリティ対策とアイデンティティ管理の役割 | ||
3.クラウドがアイデンティティ管理システムにもたらす変化 | ||
第2回 クラウド・コンピューティング時代の認証技術 | ||
1.アイデンティティ連携(フェデレーション)の要素技術 | ||
2.マイクロソフトのアイデンティティに関するビジョン | ||
3.アイデンティティ・メタシステムの実装 | ||
第3回 クラウド・サービスと社内ADとのSSOを実現する(前) | ||
1.AD FS 2.0のセットアップ | ||
2.Google AppsとAD FS 2.0との連携 | ||
3.Windows Live IDとAD FS 2.0との連携 | ||
4.Salesforce.com CRMとAD FS 2.0との連携 | ||
第4回 クラウド・サービスと社内ADとのSSOを実現する(後) | ||
1.Windows AzureとAD FS 2.0との連携(1) | ||
2.Windows AzureとAD FS 2.0との連携(2) | ||
Windows 運用 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|