Auth0でCLIを保護する

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

デバイス認可フロー

OAuth 2.0で策定)を使用し、クライアントIDを渡して認可プロセスを開始し、トークンを取得します。

デバイス認可フローを実装する最も簡単な方法は、「デバイス認証フローを使用してAPIを呼び出す」の手順に従うことです。

OAuth 2.0におけるデバイス認可フローの詳細については、Internet Engineering Task Force (IETF) の草案「OAuth 2.0 Authorization Grant(OAuth 2.0認可付与)」をお読みください。また、弊社の記事「デバイス認可フロー」も合わせてお読みください。

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

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

ご利用のアイデンティティプロバイダーが資格情報の送信をサポートしている場合は、弊社の記事「クライアント資格情報フロー」を参照してください。このフローを実装方法の詳細については、「クライアント資格情報フローを使用してAPIを呼び出す」を参照してください。

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

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

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

弊社が推奨するデバイスフローの代わりに、ネイティブアプリでROPGを使用しなければならない場合は、OIDC準拠のROPGエンドポイントを使用できます。