• Logto
  • Cloudflare Workers
  • Workers
  • authorization
  • authentication
  • SaaS
  • tenant
  • serverless

Logto x Cloudflare Workers: どのようにして Workers を公共のアクセスから保護するか?

この記事では、Logto を使用して Cloudflare Workers APIs を保護する方法を紹介しました。開発を効率化するためにウェブアプリケーションフレームワークとして Hono を使用しました。

Darcy Ye
Darcy Ye
Developer

Cloudflare Workers(以降、Workers と呼びます)は、インフラを設定したり維持したりすることなく、新しいアプリケーションを作成したり、既存のものを拡張したりできるサーバーレスの実行環境を提供します。

Workers を使用すると、サーバーレスアプリケーションを構築し、グローバルに即座にデプロイすることで、非常に優れたパフォーマンス、信頼性、スケール性を実現できます。Workers は優れたパフォーマンスを提供するだけでなく、非常に寛大な無料プランや手頃な有料プランも提供しています。個人開発者から大規模なチームに至るまで、Workers は運用負荷を最小限に抑えながら製品を迅速に開発・提供するための強力なツールです。

Workers はデフォルトで公共にアクセス可能であるため、攻撃や不正使用を防ぐための保護措置が必要です。Logto は、Workers などすべてのウェブサービスを保護するための包括的で使いやすく、スケーラブルなアイデンティティサービスを提供します。

この記事では、Logto を使用して Workers を保護するプロセスについて掘り下げます。

Workers のサンプルを構築

まず、ローカルマシンで Hono を使用して Workers サンプルプロジェクトを構築しましょう。

Wrangler CLI を使用してサンプルを Cloudflare にデプロイし、パスにアクセスできるようにします。

デプロイサンプル

Workers APIs を保護

公共にアクセス可能な API と保護された API を比較するために、特定のスコープを必要とする GET /auth/greet API を追加します。

適切な権限がないと、対応する API にアクセスすることができません。

リクエスト認証された greet

Workers APIs へのアクセスを適切に管理するために、Logto を導入します。

Logto の設定

アカウントを持っていない場合は、登録してください。

保護された Workers APIs にアクセスするための Machine-to-machine (M2M) を例として使用します。これは直感的で簡単です。ウェブアプリユーザーにアクセスを許可したい場合、設定は非常に類似していますが、「Machine-to-machine」役割の代わりに「User」役割を使用すべきです。

  1. Logto 管理コンソール にログインし、「API リソース」タブに進み、「Workers sample API」という名前でリソースインジケーターを https://sample.workers.dev/ に設定して API リソースを作成します。また、この API リソースのために greet:visitor パーミッションを作成します。

Workers sample API リソースの作成

  1. 「Workers 管理者役割」を作成します。これは「Machine-to-machine」役割であり、この役割に greet:visitor スコープを割り当てます。

M2M 役割の作成

  1. M2M アプリを作成し、そのアプリに「Workers 管理者役割」を割り当てます。

M2M アプリの作成

Workers の認証バリデーターを更新

Logto は内部で JWT アクセストークンを使用しているため、Workers に JWT 検証ロジックを実装する必要があります。

Logto によって発行された JWT アクセストークンであるため、次のことを行う必要があります。

  1. 署名を検証するための対応する公開鍵を取得します。
  2. JWT アクセストークンの消費者が Workers APIs であることを検証します。

これらの定数は wrangler.toml ファイルに設定され、Workers の環境変数としてデプロイされます。Cloudflare ダッシュボードで手動で環境変数を管理することもできます。

Workers プロジェクトを Cloudflare にデプロイした後、API が正常に保護されているかどうかをテストできます。

  1. アクセストークンを取得します

アクセストークンの取得

JWT の検査

  1. Workers GET /auth/greet API にリクエストします

認証された API にアクセス

結論

この記事のステップバイステップガイドを使用すると、Logto を使用して Workers APIs 用の保護を構築することができるはずです。

この記事では、Wrangler CLI を使用して Workers プロジェクトのローカル開発とデプロイを行いました。Cloudflare はさらに、デプロイや管理を容易にするための強力で汎用的な Workers APIs を提供しています。

SaaS アプリケーションを開発することを考えてください。Cloudflare API は、各テナントに専用の Workers を容易にデプロイすることを可能にし、その一方で、Logto はアクセス トークンがそれぞれのテナントに限定されたままであることを保証します。この細かな制御により、テナント間での不正アクセスを防ぎ、SaaS アプリユーザーのセキュリティとデータ プライバシーが向上します。

さまざまなアプリケーションの認証と認可のニーズを満たすために、Logto は柔軟で堅牢なアーキテクチャを提供します。複雑な SaaS プラットフォームを構築する場合でも、シンプルなウェブアプリケーションを構築する場合でも、Logto は特定の要件を満たすための柔軟性と拡張性を提供します。