> ## 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.

# Auth0でCLIを保護する

> Auth0を使用してCLIを保護する方法。

CLIをAuth0で保護するには、次の3通りの方法があります。以下、最も安全な方法から順に挙げます。

* ユーザーがブラウザーを開けない場合の[デバイス認可フロー](#device-authorization-flow)
* ユーザーに紐づけられず、自身の名義で動作するアプリケーション用の[クライアント資格情報付与フロー](#client-credentials-grant-flow)
* 非常に稀なケースで、CLIクライアント自体を認証しようとする場合にのみ使用される（それ以外の場合は推奨されない）[リソース所有者のパスワード付与フロー](#resource-owner-password-grant-flow)

## デバイス認可フロー

<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-jp/glossary?term=oath2" tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集の表示">OAuth 2.0</Tooltip>で策定）を使用し、クライアントIDを渡して認可プロセスを開始し、トークンを取得します。

デバイス認可フローを実装する最も簡単な方法は、「[デバイス認証フローを使用してAPIを呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/device-authorization-flow/call-your-api-using-the-device-authorization-flow)」の手順に従うことです。

OAuth 2.0におけるデバイス認可フローの詳細については、Internet Engineering Task Force (IETF) の草案「[OAuth 2.0 Authorization Grant](https://tools.ietf.org/html/draft-ietf-oauth-device-flow-15)（OAuth 2.0認可付与）」をお読みください。また、弊社の記事「[デバイス認可フロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/device-authorization-flow)」も合わせてお読みください。

## クライアント資格情報付与フロー

ユーザーや下流のアイデンティティプロバイダーが関与せず、個別のマシンやデバイスに基づいて認証を行いたい場合は、クライアント資格情報付与（CCG）フローを使用します。

ご利用のアイデンティティプロバイダーが資格情報の送信をサポートしている場合は、弊社の記事「[クライアント資格情報フロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow)」を参照してください。このフローを実装方法の詳細については、「[クライアント資格情報フローを使用してAPIを呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow/call-your-api-using-the-client-credentials-flow)」を参照してください。

## リソース所有者のパスワード付与フロー

ネイティブアプリケーションに対してリソース所有者のパスワード付与（ROPG）フローの使用はお勧めしません。IEFTの「[RFC 8252 OAuth 2.0 for Native Apps](https://tools.ietf.org/html/rfc8252)」の記事では、ネイティブアプリからのOAuth 2.0認可要求は外部のユーザーエージェント（主にユーザーのブラウザー）経由でのみ行われるべきであることが推奨されています。詳細については、「[RFC 8252 Embedded User-Agents](https://tools.ietf.org/html/rfc8252#section-8.12)」を参照してください。

リソース所有者のパスワード付与（ROPG）の使用は、上記で説明したリダイレクトベースのオプションよりもセキュリティが劣ります。ROPG はレガシーシステム向けのみの使用が推奨されています。CLIに関して言えば、レガシープログラムをサポートする必要がある接続文字列のようなケースにのみ意味があります。

弊社が推奨するデバイスフローの代わりに、ネイティブアプリでROPGを使用しなければならない場合は、[OIDC準拠のROPGエンドポイント](/docs/ja-jp/api/authentication#resource-owner-password)を使用できます。
