[Python] FastAPIで全サブドメインのCORSリクエストを許可する方法
はじめに
一次情報:FastAPI公式CORSガイド(2026年11月3日確認)。 は完全なオリジンを指定し、サブドメインの正規表現一致には を利用します。認証情報を許可する場合はオリジン、メソッド、ヘッダーを明示的に制限する必要があります。
クロスオリジンリクエストは、異なるドメイン間でリソースを共有する際に重要な役割を果たします。Webアプリケーションの成長とともに、これらのリクエストの管理が不可欠になります。
FastAPIは、このような状況に対処するための柔軟なCORS設定を提供します。
FastAPIでのCORS設定の基本
FastAPIでCORSを設定するには、を使用します。基本的な設定は以下のようになります。
この公開API向けの例では、すべてのオリジン、メソッド、ヘッダーを許可していますが、Cookieなどの認証情報を含むクロスオリジン通信(credentials)は許可しません。認証を使う場合は許可するオリジン・メソッド・ヘッダーを具体的に指定してください。
サブドメインに対するCORSの設定
特定のホストを許可するときは に完全なオリジンを列挙します。サブドメインを正規表現で指定する場合は を使用します。 に と書いてもワイルドカード一致にはなりません。次の例はHTTPSの example.com とそのサブドメインだけを許可します。
この設定では、とそのすべてのサブドメインからのリクエストが許可されます。
実装例
実際のプロジェクトでのCORS設定の一例を以下に示します。
この例では、指定された複数のサブドメインからのアクセスを許可しています。
セキュリティ上の考慮事項
すべてのサブドメインからのリクエストを許可することは、セキュリティ上のリスクを増加させる可能性があるため、慎重に行う必要があります。不必要に広範なドメインを許可するのではなく、必要なドメインに限定することが重要です。
まとめ
FastAPIでのCORS設定は、Webアプリケーションの機能性とセキュリティのバランスを取る上で重要です。サブドメインの管理を適切に行うことで、安全かつ効果的なリソース共有が可能になります。