> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> confidential と public のアプリケーションタイプの違いを説明します。

# 機密アプリケーションとパブリックアプリケーション

[OAuth 2.0 仕様](https://tools.ietf.org/html/rfc6749#section-2.1) によると、アプリケーションは機密またはパブリックのいずれかに分類されます。主な違いは、アプリケーションが (<Tooltip tip="クライアントID: Auth0 から登録済みリソースに付与される識別子です。" cta="用語集を表示" href="/ja/docs/glossary?term=client+ID">クライアントID</Tooltip> やシークレットなどの) 認証情報を安全に保持できるかどうかです。これにより、アプリケーションで利用できる認証の種類が決まります。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  機密/パブリックとファーストパーティ/サードパーティは、それぞれ独立した分類です。機密またはパブリックは、アプリケーションの認証機能 (シークレットを保持できるかどうか) を表します。ファーストパーティまたはサードパーティは、信頼関係 (そのアプリケーションを所有・運用しているのが誰か) を表します。詳しくは、[First-Party and サードパーティアプリケーション](/ja/docs/get-started/applications/first-party-and-third-party-applications) を参照してください。
</Callout>

Auth0 Dashboard でアプリケーションを作成すると、Auth0 は新しいアプリケーションに割り当てる Auth0 のアプリケーションタイプを確認し、その情報を基に、そのアプリケーションが機密かパブリックかを判断します。

詳しくは、[Check if Application is Confidential or Public](/ja/docs/get-started/applications/confidential-and-public-applications/view-application-type) を参照してください。

<div id="confidential-applications">
  ## 機密アプリケーション
</div>

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

<div id="grant-types">
  ### グラントタイプ
</div>

機密アプリケーションは信頼できるバックエンドサーバーを使用し、Auth0 Authentication API の [Get Token](https://auth0.com/docs/api/authentication#get-token) エンドポイントを呼び出す際の認証に、クライアントID と <Tooltip tip="クライアントシークレット: クライアント（アプリケーション）が認可サーバーで認証するために使用するシークレットです。これはクライアントと認可サーバーのみが知るべきものであり、推測されないよう十分にランダムである必要があります。" cta="用語集を見る" href="/ja/docs/glossary?term=Client+Secret">クライアントシークレット</Tooltip> (または登録済みの代替認証情報) の指定が必要なグラントタイプを使用できます。機密アプリケーションでは、Client Secret Post、Client Secret Basic、または [Private Key JWT](/ja/docs/get-started/authentication-and-authorization-flow/authenticate-with-private-key-jwt) 認証方法を使用できます。

機密アプリケーションと見なされるものは次のとおりです。

* [Authorization Code Flow](/ja/docs/get-started/authentication-and-authorization-flow/authorization-code-flow)、[Resource Owner Password Flow](/ja/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow)、またはレルムをサポートする <Tooltip tip="リソースオーナー: 保護されたリソースへのアクセスを許可できる主体（ユーザーやアプリケーションなど）。" cta="用語集を見る" href="/ja/docs/glossary?term=Resource+Owner">リソースオーナー</Tooltip> Password Flow を使用する、安全なバックエンドを備えた Web アプリケーション
* [Client Credentials Flow](/ja/docs/get-started/authentication-and-authorization-flow/client-credentials-flow) を使用するマシン間 (M2M) アプリケーション

<div id="id-tokens">
  ### IDトークン
</div>

機密アプリケーションはシークレットを保持できるため、次の 2 つのいずれかの方法で署名された <Tooltip tip="IDトークン: リソースへのアクセス用ではなく、クライアント自体を対象とした認証情報。" cta="用語集を表示" href="/ja/docs/glossary?term=ID+tokens">IDトークン</Tooltip> を発行できます。

* クライアントシークレットを使用する対称署名 (`HS256`)
* 秘密鍵を使用する非対称署名 (`RS256`)

<div id="public-applications">
  ## パブリックアプリケーション
</div>

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

<div id="grant-types">
  ### グラントタイプ
</div>

パブリックアプリケーションで使用できるのは、クライアントシークレットを必要としないグラントタイプのみです。必要な認証情報の機密性を保てないため、クライアントシークレットを送信できません。

以下はパブリックアプリケーションです。

* [PKCE を使用する認可コードフロー](/ja/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) を使用するネイティブのデスクトップアプリケーションまたはモバイルアプリケーション
* [Implicit Flow](/ja/docs/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post) グラントを使用する、JavaScript ベースのクライアントサイド Web アプリケーション (シングルページアプリケーションなど)

<div id="id-tokens">
  ### IDトークン
</div>

パブリックアプリケーションはシークレットを安全に保持できないため、それらに発行される[IDトークン](/ja/docs/secure/tokens/id-tokens)は次の要件を満たす必要があります。

* 秘密鍵を使用する非対称アルゴリズム (`RS256`) で署名されていること
* トークンの署名に使用した秘密鍵に対応する公開鍵で検証されること

<div id="learn-more">
  ## 関連情報
</div>

* [アプリケーションが機密かパブリックかを確認する](/ja/docs/get-started/applications/confidential-and-public-applications/view-application-type)
* [ファーストパーティアプリケーションとサードパーティアプリケーション](/ja/docs/get-started/applications/first-party-and-third-party-applications)
* [サードパーティアプリケーション](/ja/docs/get-started/applications/third-party-applications)
* [ユーザーの同意とサードパーティアプリケーション](/ja/docs/get-started/applications/third-party-applications/user-consent-and-third-party-applications)
