page icon

[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アプリケーションの機能性とセキュリティのバランスを取る上で重要です。サブドメインの管理を適切に行うことで、安全かつ効果的なリソース共有が可能になります。
 
この下の手動ヘッダー設定は過去の参考実装です。ブラウザのプリフライト要求や認証情報の扱いを含めて安全に設定するには、原則として公式の を利用してください。参照:FastAPI公式 CORSガイド。