> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> デバイス認可フローとクライアントクレデンシャルグラントフローを使用して、Auth0 でコマンドラインツールを保護する方法を学びます。

# Auth0 で CLI を保護する

Auth0 で CLI を保護する方法は、セキュリティが高い順に次の 3 つです。

* ユーザーがブラウザーを開けない場合は [Device Authorization Flow](#device-authorization-flow)
* ユーザーに紐づかず、アプリケーション自体が動作する場合は [クライアントクレデンシャルズグラントフロー](#client-credentials-grant-flow)
* [Resource Owner Password Grant フロー](#resource-owner-password-grant-flow) は、CLI クライアント自体を認証しようとしている場合にのみ使用します。これは非常にまれなケースです (それ以外では推奨されません)

<div id="device-authorization-flow">
  ## Device Authorization Flow
</div>

インターネットに接続する入力手段が限られたデバイスでは、デバイスがユーザーを直接認証するのではなく、ユーザーにコンピューターやスマートフォンでリンク先を開いてデバイスを認可するよう求めます。これにより、文字を簡単に入力する手段がないデバイスでの使いにくさを避けられます。これを実現するために、デバイスアプリは Device <Tooltip tip="Authorization Flow: OAuth 2.0 フレームワークで規定された認可グラント（またはワークフロー）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Authorization+Flow">Authorization Flow</Tooltip> (OAuth 2.0 で策定) を使用し、認可プロセスを開始してトークンを取得するために、自身の <Tooltip tip="Client ID: 登録したリソースに Auth0 から付与される識別値。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Client+ID">Client ID</Tooltip> を送信します。

Device Authorization Flow を実装する最も簡単な方法は、[Device Authorization Flow を使用して API を呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/device-authorization-flow/call-your-api-using-the-device-authorization-flow) の手順に従うことです。

<Tooltip tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip> における Device Authorization Flow についてさらに詳しく知りたい場合は、Internet Engineering Task Force (IEFT) のドラフト [OAuth 2.0 Authorization Grant](https://tools.ietf.org/html/draft-ietf-oauth-device-flow-15) を参照してください。あわせて、[Device Authorization Flow](/docs/ja-jp/get-started/authentication-and-authorization-flow/device-authorization-flow) の記事もご覧ください。

<div id="client-credentials-grant-flow">
  ## クライアントクレデンシャルズグラントフロー
</div>

ユーザーや下流の<Tooltip tip="Identity Provider（IdP）: デジタルアイデンティティを保存および管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=identity+providers">アイデンティティプロバイダー</Tooltip>が関与せず、個々のマシンやデバイスに対して認証を行いたい場合は、Client Credentials Grant (CCG) フローを使用します。

お使いのアイデンティティプロバイダーが認証情報の送信をサポートしている場合は、[Client Credentials Flow](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow)の記事をご確認ください。このフローの実装方法について詳しくは、[Call API Using the Client Credentials Flow](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow/call-your-api-using-the-client-credentials-flow)を参照してください。

<div id="resource-owner-password-grant-flow">
  ## Resource Owner Password Grant フロー
</div>

ネイティブアプリケーションで <Tooltip tip="Resource Owner: 保護されたリソースへのアクセスを許可できるエンティティ（ユーザーやアプリケーションなど）。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Resource+Owner">Resource Owner</Tooltip> Password Grant (ROPG) フローを使用することは推奨していません。IETF の記事 [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) を参照してください。

Resource Owner Password Grant (ROPG) の使用は、上述のリダイレクトベースの方法に比べて安全性が低くなります。ROPG はレガシー用途専用です。CLI の文脈では、レガシープログラムをサポートする必要がある接続文字列のようなケースでのみ意味があります。

推奨している Device Flow ではなく、どうしてもネイティブアプリで ROPG を使用しなければならない場合は、[OIDC 準拠の ROPG endpoint](https://auth0.com/docs/api/authentication#resource-owner-password) を使用できます。
