前提条件
- Office 365 を設定する: を登録し、Auth0 で Office 365 をサードパーティアプリケーションとして設定します。
Azure AD を構成する
- Azure Portal にログインします。
- 左側のナビゲーションにある Azure Active Directory を選択します。
- 新しいメニューで App registrations を選択します。
- New application registration をクリックします。
-
フォームに入力します。
- アプリケーション名を入力します (
Auth0 Provisioningなど) - Application type として Web app / API を選択します。
- サインオン URL を入力します。有効な URL であればどれでもかまいません。実際に使用されることはありません。
- アプリケーション名を入力します (
- 作成したアプリケーションが App registrations の一覧に表示されるので、それを選択します。
- Settings ブレード (Microsoft ではこれらのセクションを「blades」と呼びます) で、Keys を選択します。
-
Description (
Auth0 Provisionなど) を入力し、新しいキーの Duration を選択します。無期限ではないキーを発行する場合は、有効期限を控えておき、期限切れになる前に新しいキーに置き換えられるようリマインダーを設定してください。 - クリックしてキーを保存し、App Key をコピーします。このキーが表示されるのは一度だけで、Auth0 ルールで必要になります。
- Required permissions を選択し、新しいブレードで Add をクリックします。
-
Microsoft Graph API を選択し、Application Permissions の下にある
Read and write directory dataにチェックを入れます。 - Required permissions に戻り、Grant Permissions ボタンをクリックしてから、要求された権限を付与するために Yes をクリックします。
Azure AD のプロビジョニングルールを作成する
- ユーザーが AD 接続経由の場合は、プロビジョニング処理をスキップします (これは DirSync によって処理されるためです) 。
- ユーザーがすでに Azure AD にプロビジョニングされている場合は、そのままログイントランザクションを続行します。
- Azure AD の Client ID と Key を使用して、Graph API 用のアクセストークンを取得します。
- Azure AD にユーザーを作成します。
- ユーザーにライセンスを割り当てます。
- ログイントランザクションを続行します。
createAzureADUser 関数によって生成されます。デフォルトでは、auth0-c3fb6eec-3afd-4d52-8e0a-d9f357dd19ab@fabrikamcorp.be の形式のユーザー名が生成されます。これは任意の値に変更できますが、すべてのユーザーで一意になるようにしてください。
設定オブジェクト内の AUTH0_OFFICE365_CLIENT_ID、AAD_CUSTOM_DOMAIN、AAD_DOMAIN、AAD_APPLICATION_ID、AAD_APPLICATION_API_KEY に正しい値を設定し、それらの値をルールコードで利用できるようにしてください。詳しくは、Store Configuration for Rules をご覧ください。
コードを見ると、ユーザーのプロビジョニング後にルールが約 15 秒待機することもわかります。これは、プロビジョニングされたユーザーが Office 365 で利用可能になるまでに数秒かかるためです。
このコードは新規ユーザーのプロビジョニング処理を示していますが、既存ユーザーのメタデータを同期するように変更することもできます。
ユーザー エクスペリエンス
https://office.travel0.com のような「スマートリンク」を使用) :
これにより、まず Auth0 のログインページが表示され、その後 Office 365 にリダイレクトされます。Office 365 のログインページは、これらの外部ユーザー向けの Home Realm Discover をサポートしていないため、外部ユーザーには、この方法でしか認証できないことを説明しておくことが重要です。つまり、ユーザーがリンクを開こうとした場合、開こうとしたリンクにアクセスする前に、まずスマートリンクにアクセスする必要があります。
この例では、Travel0 は Auth0 で、Office 365 用のサードパーティアプリケーションに対して、いくつかのソーシャルアカウントとデータベース接続を有効にしています。
ディープリンク
{yourCustomDomain} には、Azure AD で 用に設定したドメイン (例: travel0.com) を指定します。これを whr として指定すると、Azure AD はログインページを表示する代わりに、Auth0 にリダイレクトする必要があることを認識します。
DEEP_LINK パラメータには、Office 365 内のエンコードされた URL (たとえば、SharePoint Online や Exchange 内のページ) を指定する必要があります。
URL の例: