- ユーザーがブラウザーを開けない場合は、デバイス認可フロー
- ユーザーに紐付けられず、アプリケーション自体として動作する場合は、クライアントクレデンシャルグラントフロー
- CLI クライアント自体を認証しようとしている場合に限り、リソースオーナーパスワードグラントフロー を使用します。これは非常にまれなケースです (それ以外では非推奨)
Auth0 で CLI を保護する
Auth0 を使用して CLI を保護する方法。
Auth0 を使用して CLI を保護する方法は、最も安全なものから順に次の 3 つです。
ユーザーや後段のが関与せず、個々のマシンまたはデバイスを識別して認証したい場合は、Client Credentials Grant (CCG) フローを使用します。
IDプロバイダーが認証情報の送信をサポートしている場合は、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 エンドポイント を使用できます。