オンプレ系インフラエンジニアがAzureを勉強する

いつか誰かの何かの役に立つと嬉しいな

Azure Web Appsの認証設定の検証

はじめに

Azure Web Appsのリソースの中には「認証」の設定項目がある。
クイックスタート - Web アプリにアプリ認証を追加する - Azure App Service | Microsoft Learn

認証を設定すると、指定したプロバイダーで認証されたユーザーだけがWeb Appsで公開されているサイトにアクセスできるようになる。
今回は「認証」の中の「IDの要件」の項目について、設定値を変えた検証をしてみる。

検証環境

  • 対象のWeb Apps
    • テナント1のリソース
    • ユーザーA1が所有者
  • 設定値を変える項目
    • Web Apps>認証>Microsoftプロバイダー>その他のチェック>ID の要件


  • 確認すること
    • 下記ユーザーがそれぞれの設定値の場合にアクセスできるか確認する。
      • テナント1のユーザーA1
      • テナント1のユーザーA2
      • テナント2のユーザーB1
      • ログインなし

検証1 認証なし

Web Appsの認証の設定がない場合

【結果】

すべての場合でアクセスができた。

  • テナント1のユーザーA1:OK
  • テナント1のユーザーA2:OK
  • テナント2のユーザーB1:OK
  • ログインなし:OK


検証2 デフォルト値

Web AppsにMicrosoftのIDプロバイダーをデフォルト値で追加した場合

【設定値】

 IDの要件:任意の ID からの要求を許可する

【結果】

テナント1のユーザーのみアクセスできた。

  • テナント1のユーザーA1:OK
  • テナント1のユーザーA2:OK
  • テナント2のユーザーB1:NG
  • ログインなし:NG

【詳細】

テナント1のユーザーA1の場合

アクセス許可の画面が出たのちにアクセスできる。

テナント1のユーザーA2の場合

アクセス許可の画面が出たのちにアクセスできる。

テナント2のユーザーB1の場合

サインインエラーになる。

ログインなしの場合

サインイン画面に遷移するため、ログインなしでアクセスはできない。

検証3 特定のIDを指定する(所有者のみ)

IDの要件の設定値を変更した場合

【設定値】

 IDの要件:特定の ID からの要求を許可する
 許可されたID:テナント1のユーザーA1のオブジェクトID

【結果】

許可したIDのユーザーのみアクセスできた。

  • テナント1のユーザーA1:OK
  • テナント1のユーザーA2:NG
  • テナント2のユーザーB1:NG
  • ログインなし:NG

【詳細】

テナント1のユーザーA2の場合

403エラーになる

検証4 特定のIDを指定する(所有者以外のみ)

IDの要件の設定値を変更した場合

【設定値】

 IDの要件:特定の ID からの要求を許可する
 許可されたID:テナント1のユーザーA2のオブジェクトID

【結果】

許可したIDのユーザーのみアクセスできた。

  • テナント1のユーザーA1:NG
  • テナント1のユーザーA2:OK
  • テナント2のユーザーB1:NG
  • ログインなし:NG

【詳細】

テナント1のユーザーA1の場合

403エラーになる。

Web Appsの所有者でさえアクセスできなくなるのは意外だった。

検証5 特定のIDを指定する(テナント外ユーザーのみ)

IDの要件の設定値を変更した場合

【設定値】

 IDの要件:特定の ID からの要求を許可する
 許可されたID:テナント2のユーザーB1のオブジェクトID

【結果】

どのユーザーもアクセスできない。

  • テナント1のユーザーA1:NG
  • テナント1のユーザーA2:NG
  • テナント2のユーザーB1:NG
  • ログインなし:NG

【詳細】

テナント1のユーザーA1の場合

403エラーになる。

テナント1のユーザーA2の場合

403エラーになる。

テナント2のユーザーB1の場合

アプリが所属するテナントへのアクセス権がない旨のエラーになる。

「IDの要件」と「テナントの要件」はORではなくANDらしい。

補足メモ

  • 認証の設定を変更した後はWeb Appsを再起動すると確実に設定が反映される気がする。
  • ブラウザのキャッシュに認証情報が残っている可能性があるので、確実に確認するならシークレットウィンドウが良い。