xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

Azure Web SitesでIP制限をかける方法

2013年11月13日、Visual Studio 2013 Launch EventにおいてVisual Studio Online (コードネーム : Monaco) が発表されました。MonacoはAzure Web Sitesを利用した開発をサポートしていますが、サイトのURLはWebサイトができた瞬間から完全に全世界Openなので、URLを直叩きすれば開発中でも関係なくサイトにアクセスできてしまいます。当然開発中の恥ずかしい状態は見られたくないものですし、いつGoogleクローラーなどがサイト情報を収集に来るかも分かりません。突然Google検索に引っ掛かるようになったりしては新規サービスを作ろうとしている開発者からすれば情報のリークでしかなく、たまったものではありません。

ということで、Azure Web SitesにホストしたWebサイトにアクセス許可のIP制限を掛ける方法です。

設定の仕方

方法は至って簡単で、以下のようにWeb.configにアクセス許可をするIPアドレスを記載するだけです。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <ipSecurity allowUnlisted="false" denyAction="NotFound"> 
                <add allowed="true" ipAddress="123.45.67.89" subnetMask="255.255.255.255"/>
            </ipSecurity>
        </security>
    </system.webServer>
</configuration>

「allowUnlisted="false"」ですべてのIPアドレスをブロックしつつ、ホワイトリストに載っているIPアドレスからのアクセスを特別に許可します。お使いの端末のグローバルIPアドレスは、以下のサイトなどで確認できますので、適宜変更してご利用ください。

アクセス情報【使用中のIPアドレス確認】 - Cman.jp

またdenyAction属性で、アクセスできなかった場合のHTTPステータスを決定します。上記の場合はNotFoundに設定されているので、404が返ります。他にも分かっている範囲では以下の設定が可能です。

設定する文字列 HTTPステータス 意味
Unauthorized 401 認証が必要
Forbidden 403 アクセス拒否
NotFound 404 リソースが見つからない
AbortRequest 502 不正なゲートウェイ

WordPressの管理画面にだけIP制限を適用

先の方法を応用すれば、WordPressの管理画面にだけIPアドレス制限をかけることも可能となります。この場合、WordPressのwp-adminフォルダ配下に先の設定を入れたweb.configを配置すればOKです。超簡単ですね!