Azure AD Application Proxyを経由してAzure ADをIdpとしたSAML認証を行う

SAML認証をサポートしているアプリケーションをAWS等のIaaS上に構築して、IP制限を掛けてアクセス制限しており、SAML認証とAzure AD Application Proxyを同時に利用したいケースがあったので検証しました。

MicrosoftのTech Communityの記事で、SAMLベースのアプケーションをAzure AD Application Proxyがサポートしたことは記載があり、設定方法はMicrosoftのApplication Proxyのドキュメントに記載されていましたが、これの通りに設定しても、今回はうまくいきませんでした。

上記の記事には、元々のReply URLが https://contosotravel.com/acs で、対応するApplication ProxyのExternal URLが https://contosotravel-f128.msappproxy.net の場合、Reply URLを、https://contosotravel-f128.msappproxy.net/acs に設定する必要があると記載されています。

ですが、今回検証した環境では、下記の3つのReply URLを設定する必要がありました。

https://contosotravel-f128.msappproxy.net/acs [default]
https://contosotravel-f128.msappproxy.net/
https://contosotravel.com/acs

上記3つを指定する必要があると記載されたドキュメントは見つけることができず、前述したMicrosoftのApplication Proxyのドキュメントには、Application Proxyを利用する前にReply URLに設定していた internal URLは削除することができると書いてあります。しかし、Application Proxy経由でSAML認証を行った際に表示されるエラーメッセージに沿って設定を修正していった結果、上記3つのReply URLの設定が必要という結果なりました。

エラーメッセージに沿って設定を修正したら解決できたので、1日で解決できた問題でしたが、自分ではこのことが記載されているドキュメントが見つけられなかったので、メモ代わりにここに記載します。

今回はオンプレミス環境ではないため、IP制限をかけているURL(internal URL)もインターネット上にて名前解決はできる状態です。Application Proxy利用時に想定されている通常のケースは、インターネット上ではURLの名前解決ができないアプリケーションに対してExternal URLを発行してアクセスする形と理解しています。このような想定されているケースとの環境的な差異が、Microsoft のApplication Proxyのドキュメントの通りに設定してもうまく動かなかった原因の可能性があるのかもと思っていますが、根拠はなく、関係しているとしても正直どう関係しているのかは見当もついていません。

もしMicrosoftから出されているドキュメントなどで、上記設定の根拠になりそうなものをご存じの方がいらっしゃいましたら、教えていただけると大変ありがたいです。