皆さんこんにちは。国井です。
私はよくAzure ADのお話をするときに、Azure ADにID基盤を一元化することに関するメリットを強調するのですが、そのときに次のようなスライドをよく使います。
右側に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 クライアントをインストール・起動し、以下の画面から[開始する]をクリックすると、
最初にサインイン画面が表示されます。
シングルサインオンのユーザー名を入力すると、
サインインページにリダイレクトされることがわかります。
(パケットキャプチャなどをしていると、外部からのアクセスはWebアプリケーションプロキシ、社内からのアクセスはADFSサーバーにリダイレクトされているようです。←ちょっと腑に落ちないポイントがあり、本当かな?と思っています。もし、間違っていたら、どなたかご指摘いただけると助かります)
パスワードを入力してサインインすると、
アクセスできます。
繰り返しますが、ブラウザーからOffice365のサイトにアクセスするとき、
社内からのアクセスであれば、パスワードを入力することなく、アクセスできたのに、
Azure RemoteAppクライアントでは社内からのアクセスであるにもかかわらず、パスワードの入力は求められます。
その他、多要素認証を使う人にとって気になるのがADAL対応ですが、
Azure RemoteAppクライアントはADAL対応になっています。そのため、Azure RemoteAppからでも多要素認証もちゃんと処理してくれます。
最後になりますが、どうしてもAzure RemoteAppでSSOがしたい!ということでしたら、HTML5クライアントを利用するのはひとつの解決策だと思います。HTML5クライアントはブラウザーアプリケーションですので、ブラウザーでOffice365にサインインするときと同じ動きになります。