Skip to main content
このチュートリアルでは、Authorization Code Flow を使用して独自の API を呼び出す方法を説明します。フローの仕組みや、このフローを使用すべき理由については、Authorization Code Flowを参照してください。通常の Web アプリにログインを追加する方法については、Add Login Using the Authorization Code Flowを参照してください。
Auth0 では、アプリに Flow を、次を使用して簡単に実装できます。
  • Regular Web App Quickstarts: フローを実装する最も簡単な方法です。
  • Authentication API: 独自のソリューションを構築したい場合は、このまま読み進めて API を直接呼び出す方法を確認してください。

前提条件

このチュートリアルを始める前に:
  • Auth0 にアプリケーションを登録します
    • Application TypeRegular Web Apps を選択します。
    • Allowed Callback URL{https://yourApp/callback} を追加します。
    • アプリケーションの Grant Types認可コード が含まれていることを確認します。手順については、Grant Types を更新するを参照してください。
    • アプリケーションで リフレッシュトークン を使用できるようにするには、アプリケーションの Grant Typesrefresh token が含まれていることを確認します。手順については、Grant Types を更新するを参照してください。リフレッシュトークンの詳細については、リフレッシュトークンを参照してください。
  • Auth0 に API を登録します
    • API がリフレッシュトークンを受け取り、既存のトークンの有効期限が切れたときに新しいトークンを取得できるようにするには、Allow Offline Access を有効にします。

手順

このステップには、次のプロセスの 1 つ以上が含まれる場合があります。
  • ユーザーを認証する
  • 認証を行うため、ユーザーを IDプロバイダー にリダイレクトする
  • アクティブなシングルサインオン (SSO) セッションを確認する
  • 以前に同意が与えられていない場合は、要求された権限レベルに対するユーザーの同意を取得する
ユーザーを認可するには、アプリケーションからユーザーを 認可 URL に送信する必要があります。

認可 URL の例

パラメーター
カスタム API を呼び出す際にユーザーを認可する場合は、次の点に注意してください。
  • audience パラメーターを含める必要があります
  • 対象 API でサポートされている追加のスコープを含めることができます
たとえば、アプリケーションにログインを追加する場合の認可 URL の HTML スニペットは、次のようになります。

レスポンス

正常に処理されると、HTTP 302 レスポンスを受け取ります。認可コードは URL の末尾に含まれます。
認可コードを取得できたら、それをトークンと交換します。前のステップで取得した認可コード (code) を使用して、トークンURLPOSTリクエストを送信してください。

トークンURLへのPOSTの例

パラメーター

レスポンス

問題がなければ、access_tokenrefresh_tokenid_tokentoken_type の値を含むペイロードとともに HTTP 200 レスポンスが返されます。
保存する前に、トークンを検証してください。手順については、IDトークンを検証するアクセストークンを検証する を参照してください。
IDトークンには、デコードして取り出す必要があるユーザー情報が含まれています。アクセストークンは、Auth0 Authentication APIの /userinfo エンドポイントまたは他のAPIを呼び出す際に使用します。独自のAPIを呼び出す場合、APIで最初に行う必要があるのはアクセストークンの検証です。リフレッシュトークンは、以前のアクセストークンまたはIDトークンの有効期限が切れた後に、新しいトークンを取得するために使用されます。refresh_tokenがレスポンスに含まれるのは、offline_accessスコープを含め、かつDashboardでAPIのAllow Offline Accessを有効にしている場合のみです。
リフレッシュトークンは、ユーザーが実質的に半永久的に認証済みの状態を維持できるため、厳重に保管する必要があります。
通常の Web アプリケーションから API を呼び出すには、HTTP リクエストの Authorization ヘッダーで、取得したアクセストークンを Bearer トークンとして渡す必要があります。
このチュートリアルに従って以下の手順を完了している場合、すでにリフレッシュトークンを取得しています。
  • API でオフラインアクセスを許可するように設定した
  • 認可エンドポイント 経由で認証リクエストを開始する際に、offline_access スコープを含めていました。
リフレッシュトークンを使用して新しいアクセストークンを取得できます。通常、ユーザーが新しいアクセストークンを必要とするのは、以前のトークンが期限切れになった場合や、新しいリソースに初めてアクセスする場合のみです。APIを呼び出すたびにエンドポイントを呼び出して新しいアクセストークンを取得するのはベストプラクティスに反します。Auth0では、同一IPから同一トークンを使用してエンドポイントに送信できるリクエスト数を制限するレート制限が設けられています。トークンを更新するには、grant_type=refresh_token を使用して、Authentication API の /oauth/token エンドポイントに POST リクエストを送信します。
トークンURLへのPOSTの例
パラメーター
レスポンス
正常に完了した場合、新しい access_token、その有効期間 (秒単位) (expires_in) 、付与された scope の値、および token_type を含むペイロードとともに HTTP 200 レスポンスが返されます。最初のトークンのスコープに openid が含まれていた場合、レスポンスには新しい id_token も含まれます。
保存する前に、トークンを検証してください。方法については、IDトークンを検証するおよびアクセストークンを検証するを参照してください。

使用例

トークンをカスタマイズする

Auth0 Actions を使用すると、のスコープを変更したり、アクセストークンや にカスタムクレームを追加したりできます。Actions の詳細については、Auth0 Actions の仕組みを理解する を参照してください。 これを行うには、次の Post-Login Action を追加します。これは、ユーザーの認証後に実行されます。
Auth0 は、OpenID Connect (OIDC) 仕様で定義されているとおり、ユーザープロファイル情報を構造化されたクレーム形式で返します。そのため、IDトークンまたはアクセストークンに追加するカスタムクレームは、競合の可能性を避けるためにガイドラインと制限事項に準拠する必要があります。

詳しく見る