Enterprise Connectionを設定してAuth0での認証をAzure Active Directoryと統合してみた
こんにちは、CX事業本部 IoT事業部の若槻です。
Auth0では、Enterprise Connectionを設定することにより、外部のEnterprise Identity Providers上で管理されているIDを使用してAuth0アプリケーションへのログインが可能(統合認証)とすることが出来ます。
これにより例えば、既にある認証基盤のログイン情報をAuth0アプリケーションでもユーザーに利用させられるため、ユーザーエクスペリエンスの改善が期待できます。
今回は、Enterprise Connectionを設定してAuth0での認証をMicrosoft Azure Active Directory(Azure AD)と統合してみました。
やってみた
こちらのドキュメントに沿ってやっていきます。
Auth0にアプリケーションを登録する
認証をAzure ADに統合したいアプリケーションをAuth0に作成します。作成方法は下記を参考にしてください。
作成したアプリケーションの[Domain]を控えます。
Azure ADにアプリケーションを登録する
ユーザーの代わりにAzure ADに認証やユーザー情報を要求をするアプリケーションを作成します。
AzureポータルでHome > Azure Active Directoryで、[Add]-[App registration]をクリック。
[Supported account types]で適切なアクセス範囲を設定します。今回はテナント内のユーザーのみとするのでAccounts in this organizational directory only
を選択。[Redirect URI]では、Web
を選択し、https://AUTH0_APP_DOMAIN/login/callback
を指定します。(AUTH0_APP_DOMAIN
はAuth0アプリ作成時に控えたドメイン名)[Register]をクリック。
登録できました。登録したアプリケーションの[Application (client) ID]を控えます。
Azure ADアプリケーションのクライアントシークレット作成
登録したアプリケーションで[Certificates & secrets]を開き、[Client Secrets]で[New client secret]をクリック。
[Description]と[Expires]を適当に指定して[Add]をクリック。
シークレットの[Value]を控えます。
Auth0でのEnterprise Connectionの作成
Auth0 Dashboard > Authentication > Enterpriseを開き、Microsoft Azure AD
をクリック。
[Create Connection]をクリック。
次のように設定をして、[Create]をクリックしてConnectionを作成します。
- Connection name:任意の名前
- Microsoft Azure AD Domain:Azure ADのドメイン。(Home > Azure Active Directoryで確認可能。)
- Client ID:Azure ADアプリケーションのApplication (client) ID
- Client Secret:Azure ADアプリケーションのクライアントシークレット
- Use common endpoint:無効
- Identity API:
Microsoft Identity Platform (v2)
- Extended Attributes:選択なし
- Auth0 APIs:選択なし
- Sync user profile attributes at each login:有効
- Email Verification:
Always set email_verified to 'false'
Auth0アプリケーションでのEnterprise Connectionの有効化
Auth0アプリケーションの[Connections]で先程作成したConnectionが表示されているので、有効化します。
Enterprise Connectionのテスト
Auth0 Dashboard > Authentication > Enterpriseを開き、Microsoft Azure AD
をクリック。
作成したアプリケーションで[Try]をクリック。
Microsoftのサインインコンソールが表示されるので、Azure ADに登録されているユーザーでサインインをします。
初回はアクセス許可が求められるので[承諾]します。
次のように表示されればログイン成功です!
おわりに
Enterprise Connectionを設定してAuth0での認証をAzure Active Directoryと統合してみました。
私は今はすっかりAWSの人になってしまったので、Microsoftのドキュメントの読み込みというのを久しぶりにやりましたが、「これこれこの感じ!」ととても懐かしさを感じました。社内認証基盤としてActive Directoryが社内にすでにある会社は多いと思うので、その認証情報を新規アプリケーションでも使う場合に本記事が役にたつかと思います。
参考
以上