機密アプリケーション
機密アプリケーションは、資格情報を安全に保持し、権限のない第三者に漏らさずに扱えます。シークレットを保存するために、信頼できるバックエンドサーバーが必要です。グラントタイプ
機密アプリケーションは信頼できるバックエンドサーバーを使用し、Auth0 Authentication API の Get Token エンドポイントを呼び出して認証を行う際に、Client ID と (または登録済みの別の資格情報) の指定が必要なグラントタイプを使用できます。機密アプリケーションでは、Client Secret Post、Client Secret Basic、または Private Key JWT 認証方式を使用できます。 以下は機密アプリケーションと見なされます。- 安全なバックエンドを備え、認可コードフロー、Resource Owner Password Flow、またはレルム対応の Password Flow を使用する Web アプリケーション
- クライアント認証情報フロー を使用するマシンツーマシン (M2M) アプリケーション
ID トークン
機密アプリケーションはシークレットを保持できるため、次の 2 つの方法のいずれかで署名された を発行できます。-
クライアントシークレットを使用する対称署名 (
HS256) -
秘密キーを使用する非対称署名 (
RS256)
パブリックアプリケーション
パブリックアプリケーションでは、資格情報を安全に保持することができません。グラントタイプ
パブリックアプリケーションで使用できるのは、クライアントシークレット を必要としないグラントタイプに限られます。必要な資格情報の機密性を保てないため、クライアントシークレット を送信できません。 以下がパブリックアプリケーションです。- PKCE を使用した Authorization Code フローを使用する、Native のデスクトップまたはモバイル アプリケーション
- Implicit Flowグラントを使用する、JavaScript ベースのクライアントサイド Web アプリケーション (シングルページアプリなど)
ID トークン
パブリックアプリケーションはシークレットを保持できないため、それらに発行されるID トークンは、次の条件を満たしている必要があります。- 秘密キー (
RS256) を使用して非対称署名されていること - トークンの署名に使用した秘密キーに対応する公開キーで検証されること
Auth0 による資格情報のセキュリティの判断方法
Auth0 では、アプリケーションの種類と、利用可能な場合はアプリケーションが Auth0 Authentication API の Get Token エンドポイント に対して認証する方法を定義する 認証方法 の設定に基づいて、アプリケーションがコンフィデンシャルかパブリックかを判断します。- 通常の Web アプリケーションとマシンツーマシンアプリケーションは、認証方法を「なし」に設定しない限り、コンフィデンシャルです。
- シングルページアプリケーションとネイティブアプリはパブリックです。 これらのアプリケーションの種類では、の認証方法に必要な資格情報の機密性を維持できないため、Auth0 Dashboard にはこれらのアプリケーションの種類向けの認証方法や資格情報の設定はありません。
認証方法を確認・管理する
アプリケーションが Auth0 に機密アプリケーションまたはパブリックアプリケーションとして登録されているかどうかは、Auth0 Dashboard で確認できます。アプリケーション > アプリケーションで、確認するアプリケーション名を選択します。- 資格情報タブが表示されない場合、そのアプリケーションはパブリックアプリケーションです。
- 資格情報タブが表示される場合、そのアプリケーションは機密アプリケーションです。

- なし: を持たないパブリックアプリケーション。
- Client Secret Post: POST リクエスト本文のパラメータでクライアントシークレットを送信するアプリケーション。
- Client Secret Basic: HTTP BASIC 認証方式でクライアントシークレットを送信するアプリケーション。
- Private Key : 非対称認証を使用するアプリケーション。