Skip to main content
OAuth 2.0 仕様 によると、アプリケーションは機密またはパブリックのいずれかに分類されます。主な違いは、アプリケーションが ( やシークレットなどの) 認証情報を安全に保持できるかどうかです。これにより、アプリケーションで利用できる認証の種類が決まります。
機密/パブリックとファーストパーティ/サードパーティは、それぞれ独立した分類です。機密またはパブリックは、アプリケーションの認証機能 (シークレットを保持できるかどうか) を表します。ファーストパーティまたはサードパーティは、信頼関係 (そのアプリケーションを所有・運用しているのが誰か) を表します。詳しくは、First-Party and サードパーティアプリケーション を参照してください。
Auth0 Dashboard でアプリケーションを作成すると、Auth0 は新しいアプリケーションに割り当てる Auth0 のアプリケーションタイプを確認し、その情報を基に、そのアプリケーションが機密かパブリックかを判断します。 詳しくは、Check if Application is Confidential or Public を参照してください。

機密アプリケーション

機密アプリケーションは、認証情報を安全に保持し、権限のない第三者に漏らすことなく管理できます。これらのアプリケーションでは、シークレットを保存するために信頼できるバックエンドサーバーが必要です。

グラントタイプ

機密アプリケーションは信頼できるバックエンドサーバーを使用し、Auth0 Authentication API の Get Token エンドポイントを呼び出す際の認証に、クライアントID と (または登録済みの代替認証情報) の指定が必要なグラントタイプを使用できます。機密アプリケーションでは、Client Secret Post、Client Secret Basic、または Private Key JWT 認証方法を使用できます。 機密アプリケーションと見なされるものは次のとおりです。

IDトークン

機密アプリケーションはシークレットを保持できるため、次の 2 つのいずれかの方法で署名された を発行できます。
  • クライアントシークレットを使用する対称署名 (HS256)
  • 秘密鍵を使用する非対称署名 (RS256)

パブリックアプリケーション

パブリックアプリケーションでは、認証情報を安全に保持できません

グラントタイプ

パブリックアプリケーションで使用できるのは、クライアントシークレットを必要としないグラントタイプのみです。必要な認証情報の機密性を保てないため、クライアントシークレットを送信できません。 以下はパブリックアプリケーションです。
  • PKCE を使用する認可コードフロー を使用するネイティブのデスクトップアプリケーションまたはモバイルアプリケーション
  • Implicit Flow グラントを使用する、JavaScript ベースのクライアントサイド Web アプリケーション (シングルページアプリケーションなど)

IDトークン

パブリックアプリケーションはシークレットを安全に保持できないため、それらに発行されるIDトークンは次の要件を満たす必要があります。
  • 秘密鍵を使用する非対称アルゴリズム (RS256) で署名されていること
  • トークンの署名に使用した秘密鍵に対応する公開鍵で検証されること

関連情報