機密/パブリックとファーストパーティ/サードパーティは、それぞれ独立した分類です。機密またはパブリックは、アプリケーションの認証機能 (シークレットを保持できるかどうか) を表します。ファーストパーティまたはサードパーティは、信頼関係 (そのアプリケーションを所有・運用しているのが誰か) を表します。詳しくは、First-Party and サードパーティアプリケーション を参照してください。
機密アプリケーション
グラントタイプ
- Authorization Code Flow、Resource Owner Password Flow、またはレルムをサポートする Password Flow を使用する、安全なバックエンドを備えた Web アプリケーション
- Client Credentials Flow を使用するマシン間 (M2M) アプリケーション
IDトークン
- クライアントシークレットを使用する対称署名 (
HS256) - 秘密鍵を使用する非対称署名 (
RS256)
パブリックアプリケーション
グラントタイプ
- PKCE を使用する認可コードフロー を使用するネイティブのデスクトップアプリケーションまたはモバイルアプリケーション
- Implicit Flow グラントを使用する、JavaScript ベースのクライアントサイド Web アプリケーション (シングルページアプリケーションなど)
IDトークン
- 秘密鍵を使用する非対称アルゴリズム (
RS256) で署名されていること - トークンの署名に使用した秘密鍵に対応する公開鍵で検証されること