> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 認証API

> 認証APIは、Auth0を使用する際に、ユーザーのアイデンティティのあらゆる側面を管理できるようにします。エンドポイントを提供するため、ユーザーはログイン、サインアップ、ログアウト、APIへのアクセスなどを行うことができます。

認証APIは、Auth0を使用する際に、ユーザーのアイデンティティのあらゆる側面を管理できるようにします。エンドポイントを提供するため、ユーザーはログイン、サインアップ、ログアウト、APIへのアクセスなどを行うことができます。

APIは、[OpenID Connect](https://auth0.com/docs/authenticate/protocols/openid-connect-protocol)、[OAuth 2.0](https://auth0.com/docs/authenticate/protocols/oauth)、[FAPI](https://auth0.com/docs/secure/highly-regulated-identity#advanced-security-with-openid-connect-fapi-)や[SAML](https://auth0.com/docs/protocols/saml)など、各種のアイデンティティプロトコルに対応しています。

<Note>
  このAPIは、RESTful APIとの統合に慣れている人を対象に設計されています。ガイドが便利だと思われる方は、[クイックスタート](https://auth0.com/docs/ja-jp/quickstarts)や[ライブラリー](https://auth0.com/docs/ja-jp/libraries)を試してみてください。
</Note>

## ベースURL

認証APIはHTTPSを使用します。このドキュメントで参照されているURLはすべて次のベースに従っています：`https://{yourDomain}`

## 認証方法

このAPIを使用した認証には、5つのオプションがあります：

* OAuth2 アクセストークン
* クライアントIDとクライアントアサーション（機密アプリケーション）
* クライアントIDとクライアントシークレット（機密アプリケーション）
* クライアントID（公開アプリケーション）
* mTLS認証（機密アプリケーション）

### OAuth2アクセストークン

`Bearer`認証スキームを使用して、有効なアクセストークンを`Authorization`ヘッダーに含めて送信します。

たとえば、[ユーザー情報取得エンドポイント](/user-profile/get-user-info)などです。このシナリオでユーザーのプロファイルを取得するには、ユーザーの認証時にアクセストークンを取得し、そのトークンを`Authorization`ヘッダーに含めて[ユーザー情報取得エンドポイント](/user-profile/get-user-info)に要求を送信します。

### クライアントIDとクライアントアサーション

認証するために、署名済みのJSON Web Token（JWT）を含む[クライアントアサーション](https://auth0.com/docs/ja-jp/get-started/authentication-and-authorization-flow/authenticate-with-private-key-jwt)を生成します。要求本文には、クライアントID、`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`の値を持つ`client_assertion_type`パラメーター、署名済みのアサーションを指定する`client_assertion`パラメーターを含めます。例については、「[秘密鍵JWT](https://auth0.com/docs/ja-jp/get-started/authentication-and-authorization-flow/authenticate-with-private-key-jwt)」を参照してください。

### クライアントIDとクライアントシークレット

クライアントIDとクライアントシークレットを送信します。このデータの送信に使用できるメソッドは、アプリケーションに構成されている[トークンエンドポイントの認証方法](https://auth0.com/docs/ja-jp/get-started/applications/confidential-and-public-applications/view-application-type)により決定されます。

**Post**を使用している場合には、このデータを要求のJSON本文に含めて送信する必要があります。

**Basic**を使用している場合には、`Basic`認証スキームを使用して、このデータを`Authorization`ヘッダーに含めて送信する必要があります。資格情報の値を生成する際には、クライアントIDとクライアントシークレットをコロン（`:`）で区切って連結し、Base64でエンコードします。

たとえば、[リフレッシュトークン取り消しエンドポイント](https://auth0.com/docs/ja-jp/secure/tokens/refresh-tokens/revoke-refresh-tokens)などです。このオプションの使用は、機密アプリケーション（資格情報を認可されていないサードパーティーに公開することなく、安全に保持できるアプリケーションなど）のみに限定されます。

### クライアントID

クライアントIDを送信します。公開アプリケーション（SPAやモバイルアプリなど、資格情報を安全に保持できないアプリケーション）については、クライアントIDのみでアクセス可能なエンドポイントをいくつか提供しています。

たとえば、[暗黙的付与](/implicit-flow/authorize)などです。

### mTLS認証

[自己署名](https://auth0.com/docs/get-started/applications/configure-mtls/configure-mtls-for-a-client#self-signed-certificates)または[認証局署名](https://auth0.com/docs/get-started/applications/configure-mtls/configure-mtls-for-a-client#certificate-authority-signed-certificates)の証明書を生成します。そして、mTLSハンドシェイクを行う[カスタマーエッジネットワークをセットアップ](https://auth0.com/docs/get-started/applications/configure-mtls/set-up-the-customer-edge)します。

エッジネットワークが証明書を検証すると、次のヘッダーを使用して、要求がAuth0のエッジネットワークに転送されます：

* カスタムドメインのAPIキーを`cname-api-key`ヘッダーに含める
* クライアント証明書を`client-certificate`ヘッダーに含める
* クライアント証明書のCA検証ステータスを`client-certificate-ca-verified`ヘッダーに含める。詳細については、「[要求を転送する](https://auth0.com/docs/get-started/applications/configure-mtls/set-up-the-customer-edge#forward-the-request-)」を参照してください。

詳しい説明については、「[mTLSで認証する](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authenticate-with-mtls)」をお読みください。

## パラメーター

GET要求では、パスでセグメントとして指定しないパラメーターはすべて、HTTPクエリ文字列パラメーターとして渡すことができます。

`GET https://{yourDomain}/some-endpoint?param=value&param=value`

POST要求では、URLに含めないパラメーターは、コンテンツタイプが`application/json`のJSONとしてエンコードする必要があります。

`curl --request POST --url 'https://{yourDomain}/some-endpoint' --header 'content-type: application/json' --data '{"param": "value", "param": "value"}'`

<Note>
  この例外は[SAML IdP起点のシングルサインオン（SSO）フロー](#idp-initiated-sso-flow)で、クエリ文字列パラメーターと`x-www-form-urlencoded`値の両方が使用されます。
</Note>

## サンプルコード

それぞれのエンドポイントには、次の3つの形式でサンプルのスニペットが提供されています：

* HTTP要求
* Curlコマンド
* JavaScript：エンドポイントによって、スニペットには[Auth0.jsライブラリー](https://auth0.com/docs/ja-jp/libraries/auth0js)、Node.jsコードまたは簡素なJavaScriptが使用されます

要求はそれぞれ、`application/json`のコンテンツタイプで送信する必要があります。

## テスト

エンドポイントは[Authentication API Debugger](https://auth0.com/docs/customize/extensions/authentication-api-debugger-extension)を使用してテストすることができます。

### Authentication API Debugger

[Authentication API Debugger](https://auth0.com/docs/ja-jp/customize/extensions/authentication-api-debugger-extension)はAuth0の拡張機能で、使用すると、認証APIにあるいくつかのエンドポイントをテストすることができます。

[デバッガーをインストール](https://auth0.com/docs/ja-jp/customize/extensions/authentication-api-debugger-extension)

**この拡張機能がすでにインストールされている場合には、スキップして、Authentication API Debuggerへ進んでください。**

このリンクはテナントの地域に応じて異なります：米国西部、中央ヨーロッパまたはオーストラリア。テナントの地域の詳細については、「[テナントの作成](https://auth0.com/docs/ja-jp/get-started/auth0-overview/create-tenants#region-locality-and-sub-locality)」を参照してください。

### 接続を構成する

1. \*［構成］\*タブで、**［アプリケーション］**フィールド（テストに使用するアプリケーションを選択）と**［接続］**（使用するソーシャル接続の名前）を設定します。

2. **Callback URL**をコピーして、[アプリケーションの設定](https://manage.auth0.com/dashboard/)にある\*\*［許可されているコールバックURL］\*\*に追加します。

3. \*［OAuth2 / OIDC］\*タブで、\*\*［OAuth2 / OIDCログイン］\*\*を選択します。

### エンドポイントのオプション

他のエンドポイントを次のオプションで構成します：

* パスワードレス：\*［OAuth2 / OIDC］\*タブで、\*\*［ユーザー名］**に`connection=sms`の場合にはユーザーの電話番号、`connection=email`の場合にはユーザーのメールを設定し、**［パスワード］**にユーザーの確認コードを設定します。**［リソース所有者エンドポイント］\*\*をクリックします。
* SAML SSO：\*［他のフロー］\*タブで、\*\*［SAML］\*\*を選択します。
* WS-Federation：\*［他のフロー］\*タブで、\*\*［WS-Federation］\*\*を選択します。
* ログアウト：\*［他のフロー］\*タブで、\*\*［ログアウト］**を選択するか、IDプロバイダーからもログアウトさせる場合には**［ログアウト（フェデレーション）］\*\*を選択します。
* レガシーログイン：\*［OAuth2 / OIDC］\*タブで、**［IDトークン］**、**［リフレッシュトークン］**、\*\*［対象クライアントID］**を設定します。**［委任］\*\*をクリックします。
* レガシーの委任：\*［OAuth2 / OIDC］\*タブで、\*\*［ユーザー名］**と**［パスワード］**を設定します。**［リソース所有者エンドポイント］\*\*をクリックします。
* レガシーのリソース所有者：\*［OAuth2 / OIDC］\*タブで、\*\*［ユーザー名］**と**［パスワード］**を設定してから、**［リソース所有者エンドポイント］\*\*を選択します。

### 認証フロー

認証フローを次のオプションで構成します：

* 認可コードフロー：\*［OAuth2 / OIDC］\*タブで、\*\*［認可コード］**フィールドに[認可コード付与](https://auth0.com/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow)で取得したコードを設定し、**［コード検証］**にキーを設定します。**［OAuth2コード交換］\*\*をクリックします。
* 認可コードフロー＋PKCE：\*［OAuth2 / OIDC］\*タブで、\*\*［認可コード］**フィールドに[認可コード付与](https://auth0.com/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)で取得したコードを設定し、**［コード検証］**にキーを設定します。**［OAuth2コード交換］\*\*をクリックします。
* クライアント資格情報フロー：\*［OAuth2 / OIDC］\*タブで、\*\*［OAuth2クライアント資格情報］\*\*を選択します。

## エラー

エラーが発生すると、エラーオブジェクトを受け取ります。ほとんどのエラーオブジェクトにはエラーコードとエラーの説明が含まれているため、アプリケーションは効率よく問題を特定することができます。

`4xx` HTTP応答コードを受け取った場合には、送信した要求が不正であったと考えて間違いありません。

`5xx`エラーはAuth0側での問題を示唆しているため、[Auth0のステータスページ](https://status.auth0.com/)や[Twitterの@auth0status](https://twitter.com/auth0status)でシステムの状態を確認してください。

その他の場合には、[Auth0サポートのオプション](#サポート)を使用することができます。

## レート制限

認証APIはレート制限の対象になります。制限はエンドポイントによって異なります。

エンドポイントで指定のレート制限を超過すると、次のメッセージを含む`429 Too Many Requests`（要求が多すぎます）応答を受け取ります：`Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.`

レート制限の詳細については、「[Auth0 APIのレート制限ポリシー](https://auth0.com/docs/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy)」を参照してください。

データベース接続の場合、ユーザーアカウントやIPアドレスによっては、ある種のログイン試行の反復が制限されます。詳細については、「[ユーザー/パスワード認証でのレート制限](https://auth0.com/docs/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy)」を参照してください。

## サポート

問題が発生したり、何かでお困りの場合には、[サポート](https://support.auth0.com/)に問い合わせることができます。

22日間のトライアル期間以外の無料サブスクリプションプランでは、[サポートセンター](https://support.auth0.com/)の使用やチケットの作成はご利用いただけません。その場合には、[Auth0 Community](https://community.auth0.com/)にご質問ください。サポートプログラムの詳細については、「[サポートのオプション](https://auth0.com/docs/ja-jp/troubleshoot/customer-support)」を参照してください。
