- ユーザーがブラウザーを開けない場合は Device Authorization Flow
- ユーザーに紐づかず、アプリケーション自体が動作する場合は クライアントクレデンシャルズグラントフロー
- Resource Owner Password Grant フロー は、CLI クライアント自体を認証しようとしている場合にのみ使用します。これは非常にまれなケースです (それ以外では推奨されません)
Auth0 で CLI を保護する
デバイス認可フローとクライアントクレデンシャルグラントフローを使用して、Auth0 でコマンドラインツールを保護する方法を学びます。
Auth0 で CLI を保護する方法は、セキュリティが高い順に次の 3 つです。
ユーザーや下流のが関与せず、個々のマシンやデバイスに対して認証を行いたい場合は、Client Credentials Grant (CCG) フローを使用します。
お使いのアイデンティティプロバイダーが認証情報の送信をサポートしている場合は、Client Credentials Flowの記事をご確認ください。このフローの実装方法について詳しくは、Call API Using the Client Credentials Flowを参照してください。
ネイティブアプリケーションで Password Grant (ROPG) フローを使用することは推奨していません。IETF の記事 RFC 8252 OAuth 2.0 for Native Apps では、「ネイティブアプリからの OAuth 2.0 認可リクエストは、外部ユーザーエージェント (主にユーザーのブラウザー) を介してのみ行うべきである」と推奨されています。詳しくは、RFC 8252 Embedded User-Agents を参照してください。
Resource Owner Password Grant (ROPG) の使用は、上述のリダイレクトベースの方法に比べて安全性が低くなります。ROPG はレガシー用途専用です。CLI の文脈では、レガシープログラムをサポートする必要がある接続文字列のようなケースでのみ意味があります。
推奨している Device Flow ではなく、どうしてもネイティブアプリで ROPG を使用しなければならない場合は、OIDC 準拠の ROPG endpoint を使用できます。