メインコンテンツへスキップ
Auth0を使用すると、アプリケーションに認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドでは、Python FlaskアプリケーションにAuthlib SDKを使ってAuth0を統合する方法を説明します。
1

Auth0を構成する

Auth0のサービスを利用するには、Auth0 Dashboadでセットアップしたアプリケーションが必要です。Auth0アプリケーションは、開発中のプロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。

アプリケーションを構成する

対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。代わりに完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。

Callback URLを構成する

Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。
サンプルプロジェクトに沿って進めている場合は、http://localhost:3000/callbackに設定してください。

ログアウトURLを構成する

ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。
サンプルプロジェクトに沿って進めている場合は、http://localhost:3000に設定してください。
2

依存関係をインストールする

プロジェクトディレクトリにrequirements.txtファイルを作成します:
# 📁 requirements.txt -----
flask>=2.0.3
python-dotenv>=0.19.2
authlib>=1.0
requests>=2.27.1
シェルから以下のコマンドを実行し、プロジェクトで依存関係が利用できるようにします:
pip install -r requirements.txt
3

.envファイルを構成する

次に、プロジェクトのディレクトリに.envファイルを作成します。このファイルにはクライアントキーやその他の構成情報が含まれます。
# 📁 .env -----
AUTH0_CLIENT_ID=mz9iNEIo2PHu7oeh8QRt19ndTyyCIgai
AUTH0_CLIENT_SECRET=yLTW7npKO4g1HHsCENiZbOaHHXLmhVefJxdNnXcyhOBOomZ2tgjJjSC2pMK7Swvr
AUTH0_DOMAIN=dev-gja8kxz4ndtex3rq.us.auth0.com
APP_SECRET_KEY=
  • シェルからopenssl rand -hex 32を使って、APP_SECRET_KEYの文字列を生成します。
4

アプリケーションをセットアップする

次に、アプリケーションをセットアップします。プロジェクトディレクトリでserver.pyファイルを作成します。このファイルにはアプリケーションロジックが含まれます。アプリケーションに必要なすべてのライブラリーをインポートします。前の手順で作成した構成.envファイルを読み込みます。Auth0でアプリケーションの認証を処理するためにAuthlibを構成します。AuthlibのOAuth register()メソッドで使用できる構成オプションの詳細については、Authlibのドキュメント
5

ルートをセットアップする

この例では、アプリケーションにlogin、callback、logout、homeの4つのルートを追加します。アプリ訪問者が/loginルートにアクセスすると、アプリケーションはユーザーをAuth0ログインページに遷移します。ユーザーがAuth0でログインした後、アプリケーションはユーザーを/callbackルートに遷移します。このルートはユーザーのためにセッションを保存し、戻ってきた時に再度ログインする必要性を回避します。/logoutルートは、ユーザーをアプリケーションからサインアウトさせます。アプリのユーザーセッションを消去し、Auth0ログアウトエンドポイントにリダイレクトして、セッションがもう保存されていないことを保証します。その後、アプリケーションはユーザーをホームルートにリダイレクトします。/ホームルートは認証されたユーザーの詳細を表示したり、訪問者のサインインを許可したりします。
6

テンプレートを追加する

次に、(render_template()の呼び出し中に)ホームルートで使用されるテンプレートファイルを作成します。templatesという名前のプロジェクトフォルダーに新しいサブディレクトリを作成し、ディレクトリにhome.htmlを作成します。コンテンツを右から対象ファイルに貼り付けます。
7

アプリケーションを実行する

アプリケーションを実行するには、プロジェクトディレクトリのルートに移動し、ターミナルを開きます。次のコマンドを実行します:
python3 server.py
チェックポイント
検証するにはhttp://localhost:3000を訪問します。ログインのためにAuth0へルートするログインボタンがあり、ログイン後アプリケーションに戻るとプロファイル情報を確認できます。

次のステップ

成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。
  • Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
  • auth0-python SDK - このチュートリアルで使用されているSDKをより詳しく説明します
  • Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます
I