ADFSによるシングルサインオン環境でAzure RemoteAppを利用

皆さんこんにちは。国井です。

私はよくAzure ADのお話をするときに、Azure ADにID基盤を一元化することに関するメリットを強調するのですが、そのときに次のようなスライドをよく使います。

image

右側にAzure ADで認証することによってアクセスできる先が書いてあるのですが、このうち、社内ネイティブアプリの部分はAzure RemoteAppを使って、オンプレミスで動かしているアプリを切り出して認証もAzure ADを使ってみてはいかがでしょうか?という話をします。

では、ADFSサーバーを使ってシングルサインオン環境が構築されているところで、Azure RemoteAppを動かしたら、どんな動きになるのでしょうか?今日はAzure RemoteAppとADFSの組み合わせによる認証の動作について、紹介します。

クラウドサービスへのアクセスがブラウザーであれば、WS-Federationでいうところの「パッシブプロファイル」の仕様に従って動作するのですが、Azure RemoteAppクライアントはインストールして利用するリッチアプリケーションです。
そのため、ブラウザーからOffice 365にSSOするときみたいに、[ローカルイントラネット]ゾーンにフェデレーションサービス名を登録して、Windows統合認証を利用して、、みたいなことはできず、パスワード入力は必ず求められてしまいます。社内ネットワークからドメインに参加しているコンピューターからアクセスしたとしても例外なくパスワードを入力させられます。

Azure RemoteAppのSSO環境を導入してみようというモチベーションも下がったところで(笑)、実際の動きを見てみましょう。
まず、Azure RemoteApp用のWindows クライアントをインストール・起動し、以下の画面から[開始する]をクリックすると、

image

最初にサインイン画面が表示されます。
シングルサインオンのユーザー名を入力すると、

image

サインインページにリダイレクトされることがわかります。
(パケットキャプチャなどをしていると、外部からのアクセスはWebアプリケーションプロキシ、社内からのアクセスはADFSサーバーにリダイレクトされているようです。←ちょっと腑に落ちないポイントがあり、本当かな?と思っています。もし、間違っていたら、どなたかご指摘いただけると助かります)
パスワードを入力してサインインすると、

image

アクセスできます。

image

繰り返しますが、ブラウザーからOffice365のサイトにアクセスするとき、
社内からのアクセスであれば、パスワードを入力することなく、アクセスできたのに、
Azure RemoteAppクライアントでは社内からのアクセスであるにもかかわらず、パスワードの入力は求められます。

その他、多要素認証を使う人にとって気になるのがADAL対応ですが、
Azure RemoteAppクライアントはADAL対応になっています。そのため、Azure RemoteAppからでも多要素認証もちゃんと処理してくれます。

最後になりますが、どうしてもAzure RemoteAppでSSOがしたい!ということでしたら、HTML5クライアントを利用するのはひとつの解決策だと思います。HTML5クライアントはブラウザーアプリケーションですので、ブラウザーでOffice365にサインインするときと同じ動きになります。