(仮) ブログ

主にWeb Apps や、Azure PaaS サービス を使う際に役立ちそうなことを書こうと思っています。

Web Apps で FTPS Only が選択できるようになった

先日の Microsoft Build 2018 に合わせて、Web Apps に色々な機能が追加されているのですが、その一つとして Web Apps へ FTP の機能の変更がありました。FTPS のみの接続を許可したり、FTP/FTPS を無効化することができます。

blogs.msdn.microsoft.com

以前は FTP が開きっぱなしだったので、構築するシステムのセキュリティ要件が厳しい場合は敬遠されがちだった Web Apps ですが、この機能が追加されたことでもっと使ってもらえるようになるのではないでしょうか。。と期待しています。

早速触ってみましょう。

Web Apps を作る

Web Apps を作ろうとしたところ、プラン選択の UI が大幅に変わっていますね。

f:id:yoshioblog:20180519192853p:plain

各プランでどんな機能が使えるかがわかりやすくなってます。

今回は、FTP を触りたいだけなので Free プランにしましょう

出来上がったら、[アプリケーション設定] から設定可能です。

f:id:yoshioblog:20180520004259p:plain

[概要] にある、[発行プロファイルの取得] を押してダウンロードされる PublishSettings ファイルに書かれている資格情報を使って認証することができます。

接続を試す

まずは FTP で接続してみます。Azure ポータル上で Web Apps を選択した後表示される概要のところから FTP 用の URL を控えておきます。

先ほど、ダウンロードした発行プロファイルを開いて、ユーザー名($マーク以下)と、パスワードも控えておきます。

コンソールを開いて ftp コマンドを実行しましょう。Mac の場合は、こんな感じで画面が出てきて、パスワードを入力するとログインできます。

$ ftp sitename@waws-prod-dm1-057.ftp.azurewebsites.windows.net
Trying 52.165.149.125...
Connected to waws-prod-dm1-057.drip.azurewebsites.windows.net.
220 Microsoft FTP Service
331 Password required
Password: 
230 User logged in.
Remote system type is Windows_NT.
ftp> 

今度は FTPS Only に変更して試してみましょう。

$ ftp sitename@waws-prod-dm1-057.ftp.azurewebsites.windows.net
Trying 52.165.150.113...
Connected to waws-prod-dm1-057.drip.azurewebsites.windows.net.
220 Microsoft FTP Service
331 Password required
Password: 
421 Service not available, remote server has closed connection.
ftp: Login failed
ftp> 

ちゃんと、FTP だけ遮断できていそうですね。

ためしに FTPS は接続できるか FileZilla で試してみましょう。FileZilla の時は、サイト名の前に $ マークをつけるのを忘れないでください。

f:id:yoshioblog:20180519230450p:plain

うまくできてそうですね。

f:id:yoshioblog:20180519231714p:plain

FTP を使わない場合は "無効にする" 選択肢もできるようになってだんだんと便利になってますね。

デプロイの資格情報について

最後に Azure Web Apps で、ログイン アカウントとは別に FTP や Git のアクセスで利用する資格情報についてご説明します。

Azure Web Apps のデプロイ時に利用する資格情報には、Azure ポータルの、[デプロイ資格情報] から設定できるユーザー資格情報と、先ほどの発行プロファイルから取得できるサイト資格情報の二つがあります。

ユーザー資格情報

Azure ポータル上で Web App を選択した後、[デプロイ資格情報] から設定できる情報がユーザー資格情報です。 この情報は Azure ポータルにログインするときのアカウントに紐づいています。 サブスクリプション上で複数の管理者や共同管理者がいる場合もここのアカウントに紐づいているので、情報が共有されることはありません。

サイトレベル情報

個々のサイトに紐づいた資格情報で、発行プロファイルと呼ばれる XML 形式のファイルの中に記載されています。 サブスクリプション内でこの資格情報は共有となり、"発行プロファイルのリセット" を押すことで新しい情報に更新されます。

詳しくはこちら

github.com

今後も新しい機能が出たらどんどん使って行きたいですね。