Azure 構成で ADFS の REST API にアクセスすると、奇妙な動作が発生します。
OpenSSl やDigiCertなどのツールを使用して、自分のサイトが正しい証明書を返しているかどうかをテストするとします。例えば:
openssl s_client -connect adfs.{mydomain}.com:443
これを複数回実行すると、正しい証明書と間違った証明書が交互に返されます。
構成は次のとおりです。
- ADFS、WWW、および ADRMS の CNAME が DNS に作成され、Azure パブリック ホストである {mydomain}testsvc.cloudapp.net を指しています。
- SAN 証明書が作成され、インターネットに面した Web サーバーにインストールされました
- 件名: www.{mydomain}.com
- サブジェクトの別名: adfs.{mydomain}.com、adrms.{mydomain}.com、www.{mydomain}.com
- Web サーバーで「Netsh http show sslcert」を実行すると、adfs と adrms の両方の正しい証明書が表示されます。ホスト名:ポート
- adfs.{mydomain}.com/adfs/oauth2/xxx にアクセスできるように、WebApplicationProxy がインストールされています。
少し異なるテストを実行すると:
openssl s_client -connect adrms.{mydomain}.com:443
次に、交互に異なる証明書も取得します。エッジ サーバーは正しい証明書を提供しており、adrms サーバーは「不適切な」証明書を提供していると判断しました。実際、その証明書は本当に問題ありません。adfs.{mydomain}.com を求める人に提供するべきではありません。
では、adfs への接続要求が、エッジ サーバーと adrms サーバーに交互に到達するのはなぜでしょうか? そして、この問題を理解するために今どこを見に行くのですか? 私は、WebApplicationProxy と、すべてのトラフィック (adrms トラフィックを含む) を介してすべてのトラフィックを送信する方法についてほとんど知識がないことを認めます。
プライベート メッセージを介して問題を示すために、実際の URI を提供できます。
また、Web ログに「ロード バランサー エージェント」からのリクエストが多数あるため、ロード バランサーが疑われます。ただし、構成されたものが見つかりません。私が使用した:
Get-AzureInternalLoadBalancer
Get-AzureRMLoadBalancer
どちらも何も返しません。