Zero Trustアプリケーションセキュリティとは、一連の定義済みのセキュリティポリシーに合格しない限り、アプリケーションへのすべてのリクエストが拒否されることを意味します。ほとんどのZero Trustソリューションでは、ユーザーのID、デバイス、位置情報を変数として使用して、これらのセキュリティポリシーを定義できます。
お客様からは、Zero Trustポリシーを定義する際に、より細やかな制御やカスタマイズが必要という声が寄せられています。
本日より、アプリケーションへのユーザーアクセスを許可する前にあらゆることをAccessポリシーで考慮できるようになります。あらゆることとは、文字通り_あらゆること_を意味します。外部評価ルールオプションを通じて、無制限にカスタマイズ可能なポリシーを構築できるようになりました。このオプションにより、Accessポリシーの評価中に任意のAPIを呼び出すことができます。
外部評価ルールを構築した理由
ここ数年で、位置情報やデバイスのポスチャー情報を確認する機能をAccessに追加しています。しかし、アプリケーションや企業の特定の要件によっては考慮可能な追加のシグナルが常に存在しています。Accessポリシーで直接サポートすることなく、お客様が必要とするシグナルをチェックできるようにすることを目指しました。
例えば、Cloudflareのセキュリティチームは、企業のデバイスから正規のユーザーだけがアプリケーションにアクセスできるようにするために、ユーザーのmTLS証明書をレジストリに対して検証する機能を必要としていました。当初は、Accessがリクエストを評価した後に、Workerを使ってユーザーの証明書をチェックすることを検討していました。しかし、これにはカスタムソフトウェアの開発と、時間のかかるメンテナンスが必要でした。外部評価ルールでは、API呼び出しにより、ユーザーが自分のデバイスに対して正しい証明書を提示しているかどうかを検証することができます。API呼び出しは、mTLS証明書とユーザーデバイスのマッピングを格納するWorkerに対して行われます。Workerはカスタムロジックを実行し、Accessにtrueまたはfalseを返します。
仕組み
Cloudflare Accessは、あらゆるWebアプリケーションの前に設置されるリバースプロキシです。ユーザーが未認証の場合は、ログイン画面が表示されて認証が行われます。ユーザーは、Accessポリシーで定義された条件を満たしている必要があります。一般的なポリシーの例を示します。
ユーザーの電子メールの末尾が@example.comである
ユーザーがハードウェアベースのトークンで認証されている
ユーザーが米国からログインしている
ユーザーがポリシーに合格すると、セッションが無効になるまでアプリケーションにアクセスできるCookieが付与されます。
他のカスタム基準でユーザーを評価するために、Accessポリシーに外部評価ルールを追加することができます。外部評価ルールは、呼び出すAPIエンドポイントと、リクエスト/応答が信頼できるソースからのものであることを検証するための鍵という2つの値を必要とします。
ユーザーがIDプロバイダーで認証された後、ユーザー、デバイス、位置に関するすべての情報が外部APIに渡されます。APIはAccessに合格または不合格の応答を返し、Accessはそのユーザーのアクセスを許可または拒否します。
APIのロジック例は次のようになります。
ここで、claimsオブジェクトは、リクエストを行うユーザー、デバイス、ネットワークに関するすべての情報を含んでいます。このexternalEvaluation
関数は、任意のビジネスロジックを実行するように拡張することができます。オープンソースリポジトリを作成し、Access claimsを消費するためのサンプルコードとAccessからの署名鍵の検証を公開しています。
/**
* Where your business logic should go
* @param {*} claims
* @returns boolean
*/
async function externalEvaluation(claims) {
return claims.identity.email === 'address@example.com'
}
これは本当に強力です。あらゆるAccessポリシーを無制限に拡張し、ユーザーのアクセスを許可する前にあらゆる情報を考慮できるようになりました。想定される例としては、以下のようなものがあります。
エンドポイント保護ツールのAPIを確認するミドルウェアを構築することで、Cloudflareがまだ連携していないエンドポイント保護ツールと連携する。
IPアドレスと外部脅威フィードとの照合
業界別のユーザーレジストリの呼び出し
その他にも充実した機能。
Accessポリシーの拡張はまだ始まったばかりです。将来的には、単にアクセスを許可または拒否するかだけでなく、アプリケーションにアクセスする前にユーザーをどのように扱うべきかをプログラムで簡単に決められるようにする予定です。
この機能は、本日よりCloudflare Zero Trustダッシュボードでご利用いただけます。開始するにはこちらのガイドをご覧ください。