機密アプリケーションと公開アプリケーション
OAuth 2.0仕様によると、アプリケーションは機密または公開に分類できます。主な違いは、アプリケーションが安全に資格情報(クライアントIDやシークレットなど)を保持できるかどうかにあります。これは、アプリケーションが使用できる認証の種類に影響を与えます。
Dashboardでアプリケーションを作成すると、Auth0から新しいアプリケーションに割り当てるAuth0アプリケーションタイプを要求されます。この情報によって、アプリケーションが機密か公開かが決まります。
詳細については、「アプリケーションが機密か公開か確認する」をお読みください。
機密アプリケーション
機密アプリケーションは、資格情報を無許可の当事者に公開することなく安全な方法で保持できます。シークレットを保管するために、信頼できるバックエンドサーバーが必要です。
付与タイプ
機密アプリケーションは信頼のあるバックエンドサーバーを使用します。また、付与タイプを使用することができ、Auth0 Authentication APIのトークンの取得エンドポイントを呼び出す時に、認証に対するクライアントIDとクライアントシークレット(または代替の登録済み資格情報)を指定する必要があります。機密アプリケーションは、Client Secret Post、Client Secret Basic、または秘密鍵JWTの認証方法を使用できます。
以下のようなアプリケーションは機密アプリケーションになります。
認可コードフロー、リソース所有者パスワードフロー、またはRealmサポート付きのリソース所有者パスワードを使用する、安全なバックエンドを持つWebアプリケーション
IDトークン
機密アプリケーションはシークレットを保持できるため、以下の2つの方法のうちの1つで署名したIDトークンを発行させることができます。
対称的に、クライアントシークレット(
HS256
)を使用する非対称的に、秘密鍵(
RS256
)を使用する
公開アプリケーション
公開アプリケーションは、資格情報を安全に保持できません。
付与タイプ
公開アプリケーションは、クライアントシークレットの使用を必要としない付与タイプのみを使用することができます。必要な資格情報の機密性を維持できないため、クライアントシークレットは送信できません。
以下のようなアプリケーションは公開アプリケーションになります。
暗黙フロー付与を使用する、JavaScriptベースのクライアント側のWebアプリケーション(シングルページアプリなど)
IDトークン
公開アプリケーションは秘密を保持できないため、それらに発行されるIDトークンは次のようにする必要があります。
秘密鍵(
RS256
)を使用して非対称に署名したものトークンの署名に使用された秘密鍵に対応する公開鍵を使用して検証したもの