単一Sign-On (Azure を使用したReal-World Cloud Apps の構築)
作成者 : Rick Anderson、 Tom Dykstra
Fix It プロジェクトのダウンロード または 電子書籍のダウンロード
Azure 電子書籍 を使用した Real World Cloud Apps の構築 は、Scott Guthrie が開発したプレゼンテーションに基づいています。 クラウド向けの Web アプリの開発を成功させるために役立つ 13 のパターンとプラクティスについて説明します。 電子書籍の詳細については、 最初の章を参照してください。
クラウド アプリを開発する際に考慮する必要があるセキュリティ上の問題は多数ありますが、このシリーズではシングル サインオンの 1 つだけに焦点を当てます。 「主に会社の従業員向けにアプリを構築しています。これらのアプリをクラウドでホストし、ファイアウォール内でホストされているアプリを実行しているときに、従業員が知っているのと同じセキュリティ モデルをオンプレミス環境で使用できるようにする方法を教えてください。このシナリオを有効にする方法の 1 つは、Azure Active Directory (Azure AD) と呼ばれます。 Azure AD を使用すると、エンタープライズ基幹業務 (LOB) アプリをインターネット経由で使用できるようになり、ビジネス パートナーもこれらのアプリを使用できるようになります。
Azure AD の概要
Azure AD では、クラウド内に Active Directory が提供されます。 主な機能は次のとおりです。
- オンプレミスの Active Directoryと統合されます。
- アプリでシングル サインオンを有効にします。
- SAML、WS-Fed、OAuth 2.0 などのオープン標準がサポートされています。
- Enterprise Graph REST API がサポートされています。
従業員がイントラネット アプリにサインオンできるようにするために使用するオンプレミスのWindows Server Active Directory環境があるとします。
Azure AD でできることは、クラウドにディレクトリを作成することです。 これは無料の機能であり、簡単に設定できます。
オンプレミスの Active Directoryから完全に独立して、必要なユーザーをその中に配置し、インターネット アプリで認証することができます。
または、オンプレミスの AD と統合することもできます。
オンプレミスで認証できるすべての従業員は、ファイアウォールを開いたり、データ センターに新しいサーバーをデプロイしたりすることなく、インターネット経由で認証することもできます。 現在知っている既存のすべての Active Directory 環境を引き続き活用して、内部アプリにシングル サインオン機能を提供できます。
AD と Azure AD の間でこの接続を確立したら、Web アプリとモバイル デバイスでクラウドで従業員を認証できるようにすることもできます。また、Office 365、SalesForce.com、Google アプリなどのサードパーティ製アプリで従業員の資格情報を受け入れることもできます。 Office 365を使用している場合は、Office 365が認証と承認に Azure AD を使用するため、既に Azure AD を設定しています。
この方法の美しさは、organizationがユーザーを追加または削除したり、ユーザーがパスワードを変更したりするたびに、オンプレミス環境で現在使用しているのと同じプロセスを使用することです。 オンプレミスのすべての AD 変更は、クラウド環境に自動的に反映されます。
会社で Office 365 を使用または移行している場合は、認証に Azure AD が使用されるため、Azure AD を自動的に設定Office 365することをお勧めします。 そのため、Office 365が使用するのと同じ認証を独自のアプリで簡単に使用できます。
Azure AD テナントを設定する
Azure AD ディレクトリは Azure AD テナントと呼ばれ、テナントの設定は非常に簡単です。 概念を説明するために Azure 管理ポータルで行う方法について説明しますが、もちろん他のポータル機能と同様に、スクリプトまたは管理 API を使用して行うこともできます。
管理ポータルで、[Active Directory] タブをクリックします。
Azure アカウント用に 1 つの Azure AD テナントが自動的に作成され、ページの下部にある [ 追加 ] ボタンをクリックして、追加のディレクトリを作成できます。 たとえば、テスト環境用と運用環境用に必要な場合があります。 新しいディレクトリに何という名前を付けるかを慎重に検討してください。 ディレクトリに自分の名前を使用した後、いずれかのユーザーに対して名前をもう一度使用すると、混乱を招く可能性があります。
ポータルでは、この環境内のユーザーの作成、削除、管理を完全にサポートしています。 たとえば、ユーザーを追加するには、[ ユーザー ] タブに移動し、[ ユーザーの追加 ] ボタンをクリックします。
このディレクトリにのみ存在する新しいユーザーを作成するか、このディレクトリにユーザーとして Microsoft アカウントを登録するか、または別の Azure AD ディレクトリのユーザーをこのディレクトリのユーザーとして登録できます。 (実際のディレクトリでは、既定のドメインは ContosoTest.onmicrosoft.com されます。contoso.com など、独自に選択したドメインを使用することもできます)。
ユーザーをロールに割り当てることができます。
アカウントは一時的なパスワードで作成されます。
この方法で作成したユーザーは、このクラウド ディレクトリを使用して Web アプリにすぐにログインできます。
ただし、エンタープライズ シングル サインオンに最適なのは、[ ディレクトリ統合 ] タブです。
ディレクトリ統合を有効にしてツールをダウンロードすると、このクラウド ディレクトリを、organization内で既に使用している既存のオンプレミスの Active Directoryと同期できます。 その後、ディレクトリに格納されているすべてのユーザーがこのクラウド ディレクトリに表示されます。 クラウド アプリは、既存の Active Directory 資格情報を使用してすべての従業員を認証できるようになりました。 また、これはすべて無料です。同期ツールと Azure AD 自体の両方です。
このツールは、これらのスクリーン ショットからわかるように、使いやすいウィザードです。 これらは完全な手順ではなく、基本的なプロセスを示す例にすぎません。 詳細な操作方法については、章の最後にある 「リソース 」セクションのリンクを参照してください。
[ 次へ] をクリックし、Azure Active Directory 資格情報を入力します。
[ 次へ] をクリックし、オンプレミスの AD 資格情報を入力します。
[ 次へ] をクリックし、AD パスワードのハッシュをクラウドに格納するかどうかを指定します。
クラウドに格納できるパスワード ハッシュは一方向ハッシュです。実際のパスワードは Azure AD に格納されません。 クラウドにハッシュを格納しない場合は、Active Directory フェデレーション サービス (AD FS) (ADFS) を使用する必要があります。 また、ADFS を使用するかどうかを選択する際に考慮すべきその他の要因もあります。 ADFS オプションには、いくつかの追加の構成手順が必要です。
クラウドにハッシュを格納することを選択した場合は完了です。 [次へ] をクリックすると、ツールによってディレクトリの同期が開始されます。
数分で完了です。
Windows 2003 以降では、organization内の 1 つのドメイン コントローラーでのみこれを実行する必要があります。 再起動する必要はありません。 完了すると、すべてのユーザーがクラウドにいて、SAML、OAuth、または WS-Fed を使用して、任意の Web またはモバイル アプリケーションからシングル サインオンを行うことができます。
このセキュリティの程度について質問される場合があります。Microsoft は、自社の機密ビジネス データに使用していますか? そして、答えははい、私たちはそうです。 たとえば、 で https://microsoft.sharepoint.com/内部の Microsoft SharePoint サイトに移動すると、ログインするように求められます。
Microsoft では ADFS が有効になっているため、Microsoft ID を入力すると、ADFS ログイン ページにリダイレクトされます。
また、内部の Microsoft AD アカウントに格納されている資格情報を入力すると、この内部アプリケーションにアクセスできるようになります。
主に AD サインイン サーバーを使用しています。これは、Azure AD が利用可能になる前に既に ADFS が設定されていたためですが、ログイン プロセスはクラウド内の Azure AD ディレクトリを経由しています。 重要なドキュメント、ソース管理、パフォーマンス管理ファイル、販売レポートなどをクラウドに配置し、このまったく同じソリューションを使用してセキュリティを保護しています。
シングル サインオンに Azure AD を使用する ASP.NET アプリを作成する
Visual Studio では、いくつかのスクリーン ショットからわかるように、シングル サインオンに Azure AD を使用するアプリを簡単に作成できます。
MVC またはWeb Formsのいずれかの新しい ASP.NET アプリケーションを作成する場合、既定の認証方法は ID ASP.NET です。 これを Azure AD に変更するには、[ 認証の変更 ] ボタンをクリックします。
[組織アカウント] を選択し、ドメイン名を入力して、[シングル サインオン] を選択します。
また、ディレクトリ データの読み取りまたは読み取り/書き込みアクセス許可をアプリに付与することもできます。 これを行う場合は、 Azure Graph REST API を使用してユーザーの電話番号を検索し、ユーザーがオフィスにいるかどうか、最後にログオンした日時などを確認できます。
これで必要な操作はこれで済みます。Visual Studio は、Azure AD テナントの管理者の資格情報を要求し、新しいアプリケーション用にプロジェクトと Azure AD テナントの両方を構成します。
プロジェクトを実行すると、サインイン ページが表示され、Azure AD ディレクトリ内のユーザーの資格情報を使用してサインインできます。
アプリを Azure にデプロイする場合は、[組織認証を有効にする] チェック ボックスを選択するだけで済み、Visual Studio ですべての構成が再び処理されます。
これらのスクリーン ショットは、Azure AD 認証を使用するアプリを構築する方法を示す完全なステップ バイ ステップ チュートリアルから得られます。Azure Active Directory を使用した ASP.NET アプリの開発。
まとめ
この章では、Azure Active Directory、Visual Studio、ASP.NET を使用して、organizationのユーザー向けにインターネット アプリケーションでシングル サインオンを簡単に設定できる方法を説明しました。 ユーザーは、内部ネットワークの Active Directory を使用してサインオンするために使用するのと同じ資格情報を使用して、インターネット アプリにサインオンできます。
次の章では、クラウド アプリで使用できるデータ ストレージ オプションについて説明します。
リソース
詳細については、次のリソースを参照してください。
- Azure Active Directory のドキュメント。 windowsazure.com サイトの Azure AD ドキュメントのポータル ページ。 ステップ バイ ステップのチュートリアルについては、「 開発 」セクションを参照してください。
- Azure Multi-Factor Authentication。 Azure での多要素認証に関するドキュメントのポータル ページ。
- 組織アカウントの認証オプション。 [Visual Studio 2013 new-project]\(新しいプロジェクトのVisual Studio 2013\) ダイアログの Azure AD 認証オプションの説明。
- Microsoft のパターンとプラクティス - フェデレーション ID パターン。
- 方法: Azure Active Directory 同期ツールをインストールします。
- Active Directory フェデレーション サービス (AD FS) 2.0 コンテンツ マップ。 ADFS 2.0 に関するドキュメントへのリンク。
- Windows Azure AD アプリケーションでのロールベースの承認とACL-Based承認。 サンプル アプリケーション。
- Azure Active Directory Graph APIブログ。
- ハイブリッド ID インフラストラクチャの BYOD とディレクトリ統合のAccess Control。 Tech Ed 2014 session video by Gayana Bagdasaryan.