アプリ側を変えずに、Cloudflare Access を使ってアプリケーションに認証機能を実装する


はじめに

OCI に作業管理用の Redmine を構築していて、現在は Cloudflare の IP アドレス制限でアクセスの制御を行っています。

Cloudflare がリバース プロキシのように機能していて、そこでセキュリティ ルールを有効化している。

この場合、例えば「Global IPが変わるとアクセス出来なくなる」とか、「自宅内の端末が乗っ取られたらアクセス出来ちゃう」みたいなリスクが発生するかなと思います。
なので今回、IP アドレスによる制限じゃなくて、本人性を認証してアクセスを許可するような Zero Trust の構造に変えようと思いました。

実施したこと

下記の公開情報を参考に、アプリケーションを Cloudflare に作成しました。
コンソール画面から「Zero Trust - Access コントロール - アプリケーション」にアクセスし、新しくアプリケーションを作成しただけです。

アプリケーションの作成方法も単純で、宛先のパブリック ホスト名を指定して、Access ポリシーを追加したのみです。

Access ポリシーは下記のように指定しています。自分だけしかアクセスしませんし。
ログイン方法を Cloudflare にして、AND 条件で自分のメール アドレスを指定。それを許可しています。 alt text

あとは、元々指定していた IP アドレスのセキュリティ ルールを無効化。

試す

自分が作成した Redmine にアクセス。
すると、下記のように Cloudflare のログインページが表示された。

alt text

自分のアカウントでログイン、無事にアクセス出来ました。

alt text

当たり前ですが、自分で用意した Web アプリケーションをパブリックに公開している場合は、そのエンドポイントに対する制限も必要です。
自分は Cloudflare からのアクセスのみを許可にしました。

menu