対象: 旧Office 365 Office 365 for Enterprise, Office 365 for Small Business, Office 365 for Education
新Office 365 Office 365 Enterprise, Office 365 Small Business, Office 365 Midsize Business
前回の記事 (英語)では、OAuth 2.0 ク��イアントの資格情報を使用して Graph API への認証を実行し、アプリケーションにクライアント ID (アプリケーション ID) と シークレット (アプリケーション パスワード) を提供する方法についてまとめました。
では、アプリケーションのクライアント ID とシークレットはどこから入手すればよいのでしょうか? 今回の記事では、その方法についてご紹介します。これには Windows Azure 管理ポータルを使用します。このポータルでアプリケーションを登録すると、クライアント ID とパスワードが生成されます。また、アプリケーションのアクセス許可の構成もこのポータルで行います。では、Windows Azure 管理ポータルでアプリケーションを構成する手順について見ていきましょう。
- 既存の Windows Azure Active Directory テナントを使用します。Office 365、Dynamics CRM または Intune ライセンスがあるテナントならどれでも構いません。既存のテナントを使用したくない場合、または Windows Azure AD テナントがない場合は、こちらのリンクからサインアップしてください。また、http://office.microsoft.com/で Office 365 の試用版にサインアップすると Windows Azure AD テナントを入手できます。
- Windows Azure 無料評価版を利用して Windows Azure AD テナントを管理するには、https://manage.windowsazure.comにアクセスし、Windows Azure AD テナント管理者の資格情報を使用してログインしてください。Windows Azure サブスクリプションがない場合は「アカウントに関連付けられたサブスクリプションはありませんでした。」と表示されます。その場合は [Windows Azure にサインアップ] を選択し、Windows Azure 無料評価版を選択します。フォームに記入し、クレジット カード情報を使用して無料評価版の認証を行ってください。また、MSDN サブスクライバーの方は Windows Azure サブスクリプションの特典を利用できます。http://www.windowsazure.com/ja-jp/pricing/member-offers/msdn-benefits/
Windows Azure AD テナントと Windows Azure サブスクリプションが揃ったら、Windows Azure 管理ポータルで、Graph API を利用したアプリケーションのホスティングなど、Windows Azure のすべての機能をお試しいただけます。ここからは、Windows Azure AD テナントでのアプリケーション作成についてご説明します。Windows Azure 管理ポータルの左下にテナントの管理画面への [Active Directory] というリンクがあり、これをクリックすると、[Users]、[Applications]、[Domains]、[Directory Integration] という 4 つのタブが表示されるので、[Applications] を選択します。
1. [Applications] タブの下部にある [+Add] を選択し、アプリケーション ウィザードを起動します。新しいアプリケーションの登録プロセスが開始されます。アプリケーションの名前とアクセス許可の構成を選択します。ここでは、2 番目の [Single Sign-on, Read Directory Data] を選択することをお勧めします。アプリケーションで書き込みアクセス許可が必要になった場合は、後からこの設定を変更できます。シングル サインオン (SSO) は、単体のオプションとして提供されるほか、Directory Read および Directory Read+Write オプションの一部としても提供されます。ソリューションにシングル サインオンを実装しないよう選択した場合も、この構成は自動的に Active Directory へのアクセス権限に追加されます。アプリケーションでシングル サインオンを使用したい場合は、以下のページに記載された最初のチュートリアルで、サンプル アプリケーションでのシングル サインオンのセットアップ、構成、および Active Directory へのアクセス権限の追加について説明しているので参照してください。シングル サインオンを使用して Active Directory にアクセスするアプリケーションの構築に関するチュートリアルはこちら: http://msdn.microsoft.com/en-us/library/windowsazure/dn151121.aspx (英語)
2. アプリケーション登録の次の手順では、アプリケーション URLやアプリケーション URIを入力します。アプリケーション URLはユーザーがサインインしてアプリケーションを使用できる URL です。初期評価やプロトタイプ作成の段階では http://localhostに設定できます。たとえば、ローカル マシンでサンプル アプリケーションを構築しようとしている場合は、これをデモ アプリケーションとして http://localhost に設定するといった具合です。アプリケーション登録プロセスにおいて、アプリケーション URL はアプリケーション ウィザードにより [App Reply URL] プロパティにコピーされます。この値は後から確認したり、アプリケーション URL以外の値に変更したりすることができます。アプリケーション応答 URLはアプリケーションの物理アドレスで、Windows Azure AD はシングル サインオンに対して応答する際に、トークンをこのアドレスに送信します。
3. アプリケーション URIはアプリケーションの一意の論理識別子として使用されます。論理識別子は単なる一意の識別子なので、インターネット アドレスに解決する必要はありません。アプリケーション URL と同様、評価やプロトタイプ作成の段階では http://localhostに設定できます。シングル サインオンをアプリケーションに組み込んだ場合、Windows Azure AD にシングル サインオンのリクエストを送信すると、アプリケーション URI がアプリケーションにより提供されます。Windows Azure AD はこの識別子を使用してアプリケーションを一意に識別し、サインオンに対する応答 (SAML トークン) を構成されている応答 URL に送信します。
以上の手順により、手早くアプリケーション ID とシークレットを取得し、アプリケーションのアクセス許可を構成できます。アプリケーション ウィザードの作業が完了すると、Application ページにリダイレクトされ、アプリケーションが一覧に表示されたことが確認できます。現在、このポータルからアプリケーションを削除する方法はありません (対応中です)。作成したアプリケーションをクリックすると、[Enable single sign-on with Windows Azure AD]、[Enable your app to read and write directory data]、[Enable your app for external users] の 3 つのセクションが表示されます。2 番目の [Enable your app to read and write directory data] を選択すると [CLIENT ID] 値が表示されます。これがアプリケーション ID です。もう 1 つ必要となるシークレットを取得するには、[CREATE A KEY] セクションで [Configure key] をクリックして、アプリケーション用のキーを生成します。1 年または 2 年のキーを選択し、下部の [SAVE] を選択して保存すると、キー値が生成され表示されます。これがクライアント シークレット、つまりパスワードです。このキー値は安全な場所に保管してください。Windows Azure ポータルから別のページへ移動またはログオフした後には、この値を再び確認することはできません。また、1 つのクライアント ID につき複数のキーを生成できます。有効期限が切れる前にキーを更新しなければならないので、複数のキーを生成することをお勧めします。
クライアント ID と シークレット (アプリケーション ID とアプリケーション パスワード) が手に入りました。これで Graph API への認証に必要となる有効な OAuth トークンを取得して、ディレクトリのデータにアクセスできるようになります。また、上記の手順で、アプリケーションが Graph API にアクセスできるようにアクセス許可を登録しました。これは、アクセスなし (シングル サインオンのみ)、Read、Read+Write という 3 つの選択肢のいずれかを選択できます。アプリケーション オブジェクトやテナントのサービス プリンシパルの作成など、内部的な処理についてもっと詳しく知りたい方は、http://msdn.microsoft.com/en-us/library/windowsazure/dn132633#BKMK_AppObject (英語)で詳細情報をご確認ください。
これで、シングル サインオンと Graph API アクセス機能を実装したシングルテナント アプリケーションを開発できるようになりました。では、マルチテナント アプリケーションを作成して、Windows Azure AD にホストされている他の利用者に提供するにはどうすればよいでしょうか? これはとても簡単です。上記のシングルテナント アプリケーション作成の手順を実行すれば、Windows Azure Active Directory のユーザーにもアプリケーションを提供することができるようになっています (Windows Azure AD に既に存在する大量のテナントが、アプリケーションの潜在的な利用者となります)。つまり、シングルテナント アプリケーションを構成するために行った手順を応用して、マルチテナント アプリケーションを作成できるのです。具体的には、アプリケーション構成にあるスイッチ [EXTERNAL ACCESS] を ON にすると、Windows Azure AD のユーザーが自分のディレクトリを呼び出すアクセス許可をあなたのアプリケーションに付与できるようになります。このスイッチは既定で OFF になっています (この設定では、シングルテナント アプリケーションしか作成できません)。マルチテナント アプリケーションに切り替えるには、構成を若干変更する必要があります。アプリケーションのロゴを追加する必要があるほか、アプリケーション URI とアプリケーション応答 URL は次の条件を満たさなくてはなりません。
アプリケーション URI には組織の検証済みドメインを 1 つ含めます (*.onmicrosoft.com で始まるドメインは検証済みなので使用が許可されています)。アプリケーション応答 URL は SSL を使用します (https:// で始まるアドレスでなければなりません)。
上記でもご紹介しましたが、このアプリケーションの登録プロセスの詳細や、ユーザーがディレクトリへのアクセス権限を付与できるようにマルチテナント アプリケーションを構成する方法については、http://msdn.microsoft.com/en-us/library/windowsazure/dn132633#BKMK_AppObject (英語)をご覧ください。
マルチテナント アプリケーションの構築については、次回の記事で、アクセス権限の付与に同意するか否かを確認するページに潜在的な利用者をリダイレクトする方法と、同意した場合および同意しなかった場合の応答の内容 (登録したアプリケーション応答 URL に送信されます) を紹介する予定です。次回まで待てないという方は、http://msdn.microsoft.com/en-us/library/windowsazure/dn151122.aspx (英語) でもご覧いただけます。