🔒

Cloudflare Zero Trust で Service Token を使う

2023/06/07に公開

ほとんどスクリーンショットの羅列になってしまうのですが、日本語でも英語でも明示的な情報を見つけられなかったので、簡単に記しておきます。

TL;DR

Service Token を使いたいときは Policy の Action を Allow ではなく Service Auth にしなければならない

経緯などの話

Cloudflare Zero Trust (旧 Cloudflare access) を用いると、OIDCやsamlなどを用いて、既存のアプリケーションへのアクセスを制限できる。
たとえば私が保守運用しているサービスでは、管理画面を Cloudflare Zero Trust 以下にすることで、安全性を高めている。
また、ステージング環境に用いても便利に使える。

しかし、既存のサービスに紐づくアプリケーションのAPI接続を試験する中で、疎通できない問題が発生した。
これを解決するために、Service Authという機能が使えるらしく、そのトークン(ID/Secret)がService Tokenというものらしい。

ところが、普段のIdPと同じようにAllowで設定すると動かなかった。しばらく色々と試したが、最下部の参考コメントを参考に、以下のように設定することでService Authを使用することができた。

アプリケーションの設定が以下のような形。

ポリシーの設定が以下のような形。ActionがService Authになっているのが重要。

今回の例ではポリシーが一個だけだが、IdPによる既存のポリシーとは別に追加することでIdPとTokenを併用できる模様です。

参考: https://community.cloudflare.com/t/curl-access-with-service-token/198228/2

Discussion