App Service で別テナントのユーザーで認証させる
はじめに
Azure App Service では組み込みで認証機能を追加する機能があり、Azure AD 認証させることが可能ですが、シンプルに構成すると App Service があるテナントのユーザーで認証することになります。
ただし、App Service があるテナントが M365 テナントと別になっている場合に、App Service で別テナントのユーザーで認証させる必要が出てきたりします。この記事ではこちらのシナリオを検証してみます。
参考は以下の資料の [シナリオ4] になります。
設定してみる
ユーザーが所属するテナントで設定
Azure AD の [アプリの登録] から [新規登録] をクリック
サポートされているアカウントの種類は [この組織ディレクトリに含まれるアカウント] を指定し、リダイレクト URI に [Web] と [https://(App Service URL)/.auth/login/aad/callback] を指定
概要ページでアプリケーション (クライアント) ID とディレクトリ (テナント) ID をメモ
[認証] から [暗黙的な許可およびハイブリッド フロー] で [ID トークン] を有効
[証明書とシークレット] から [新しいクライアント シークレット] をクリックし追加し、値をコピー
App Service があるテナントで設定
App Service の画面で [認証] > [ID プロバイダーの追加] をクリック
ID プロバイダーで [Microsoft]、アプリの登録の種類で [既存アプリの登録の詳細を提供します] を
選択し、先ほどコピーしたアプリケーション (クライアント) ID、クライアント シークレットを入力
発行者の URL は [https://login.microsoftonline.com/(ユーザーが所属するテナントID)/v2.0]
を指定
動作確認
App Service にアクセスして、想定したユーザーでログインしてみます。途中アクセス許可の画面が出てくるので承諾します。
正常にログインでき、App Service の初期画面が表示されました。
なお App Service があるテナントのユーザーでログインすると失敗することも確認できました。
Discussion