Azure Portalにアクセスする際の動きをFiddlerで確認 – その1 クラウドIDを使った一番シンプルなパターン

皆さんこんにちは。胡田です。毎日暑いですね。みなさんお体にお気をつけください。

さて、今回はAzure Portalにアクセスする際の動きをFiddlerで確認してみようと思います。

Azure Portalにアクセスするためには皆さん御存知の通りAzure ADで認証される必要があります。マイクロソフトアカウント利用する場合には「Azure ADで認証」と書いてしまうのは少々正確ではないかもしれませんが、ここでは組織アカウントのみ考えることにします。

このとき、ユーザーとしてはAzure PortalのURL(https://portal.azure.com/)を入力してAzure Portalにアクセスするわけですが、Azure ADで認証する必要があるためリダイレクトされる動きになります。さらに、アクセスしようとしているAzure Subscriptionの紐付いているAzure ADが、ユーザーが存在しているAzure ADとは異なる構成もとれます。このようなときにどのようにブラウザが遷移しているのかをきちんと確認しようというのがこのエントリの趣旨です。

Fiddlerを使うことでHTTP/HTTPSの通信を生で記録、確認することができますので、テストした時点での正確な動きを確認することが可能です。

構成パターンはかなり多数ありますので相当複雑にもなりうるのですが、まずはシンプルなところから何パターンか見ていきたいと思います。

注意:このエントリの内容は「正確さ」に関しては保証しません。自分で実際に試してみて、挙動をみて、考えて、自分の既存の知識や経験、他のドキュメント等と照らし合わせた上で自分の現段階の考えを書いています。ご注意ください。

クラウドIDを使った一番シンプルなパターン

まずは下記のような一番シンプルなパターンを見ていきましょう。

AADとしてwindowsadmin.onmicrosoft.comが存在します。

windowsadmin.onmicrosoft.com上にaccesstest@windowsadmin.onmicrosoft.comというアカウントを作成します。このアカウントはクラウド上に存在するアカウントであり、フェデレーション等は構成されていません。

windowsadmin.onmicrosoft.comをディレクトリとして構成された「MVP特典(Visual Studio Ultimate with MSDN)」というAzureサブスクリプションが存在します。

#なんだかひどいサブスクリプション名ですが、管理しているサブスクリプションが大量にあるのできちんと区別しやすい愚直な名前にしております…。

「MVP特典(Visual Studio Ultimate with MSDN)」 上でaccesstest@windowsadmin.onmicrosoftのアカウントに閲覧権限(Reader)を割り当てアクセス可能にしてあります。

実際の挙動

PC上でChromeをシークレットモードで開き、URLにhttps://portal.azure.com/を入力します。

URLがhttps://login.microsoftonline.com/となり認証を求められます。

ユーザー名を入力します。

次にパスワードの入力を求められます。パスワードを入力して「サインイン」をクリックします。

サインインの状態を維持するかどうかを聞かれます。この質問には今後も含めてこの検証内ではすべて「いいえ」で回答します。(テスト目的のため)

Azure管理ポータルにアクセスできました。

Fiddlerに記録されたデータを含めた挙動

PC上でChromeをシークレットモードで開き、URLにhttps://portal.azure.com/を入力します。

このときhttps://portal.azure.com/の画面は表示されずすぐに画面が遷移しますがその様子が見て取れます。

1行目ではProxy接続でHTTPSを扱うためにHTTP1.1のCONNECTメソッドが利用されています。

参考URL:

2,3行目ではportal.azure.comおよびその配下のJavascriptを取得しています。実際にはJavascriptによってまず認証を行うためのページに遷移させられています。

URLがhttps://login.microsoftonline.com/となり認証を求められます。

このときにメインのホストはlogin.microsoftonline.comですがcss, Javascript, 画像の取得に関してはaadcdn.msftauth.netという別のホストも利用されています。

ユーザー名を入力します。「次へ」をクリックします。

ここで「次へ」ボタンを押したタイミングで「https://login.microsoftonline.com/common/GetCredentialType?mkt=ja」へのアクセスが発生するようです。

この返答はなかなかおもしろいです。ユーザーの状態がわかる情報が返される模様です。

このレスポンスによってそのままクラウドIDとしてパスワードの入力だけを求めればいいのか、ADFSにリダイレクトさせるのか、はたまた組織IDとマイクロソフトIDの区別がつかないからそれを選ばせるのか…等の分岐を行わせているのではと考えられます。

あとは、AADからのトークンを取得し、Azure管理ポータルにアクセスしています。

portal.azure.comにクラウドIDにシンプルにアクセスするだけでも結局下記のホスト群へのアクセスが発生していることが確認できました。

  • portal.azure.com
  • login.microsoftonline.com
  • aadcdn.msfauth.net

予定よりも長くなってしまったのでパターン毎にエントリを分割したいと思います。このエントリはここまでにします。

次のエントリは下記です。合わせて御覧ください。

コメントを残す