> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-docs-5528-php-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 機密アプリケーションと公開アプリケーション

> 機密アプリケーションと公開アプリケーションの種類の違いを説明します。

[OAuth 2.0仕様](https://tools.ietf.org/html/rfc6749#section-2.1)によると、アプリケーションは機密または公開に分類できます。主な違いは、アプリケーションが安全に資格情報（クライアントIDやシークレットなど）を保持できるかどうかにあります。これは、アプリケーションが使用できる認証の種類に影響を与えます。

Dashboardでアプリケーションを作成すると、Auth0から新しいアプリケーションに割り当てるAuth0アプリケーションタイプを要求されます。この情報によって、アプリケーションが機密か公開かが決まります。

詳細については、「[アプリケーションが機密か公開か確認する](/docs/ja-jp/get-started/applications/confidential-and-public-applications/view-application-type)」をお読みください。

## 機密アプリケーション

機密アプリケーションは、資格情報を無許可の当事者に公開することなく安全な方法で保持できます。シークレットを保管するために、信頼できるバックエンドサーバーが必要です。

### 付与タイプ

機密アプリケーションは信頼のあるバックエンドサーバーを使用します。また、付与タイプを使用することができ、Auth0 Authentication APIの[トークンの取得](https://auth0.com/docs/api/authentication#get-token)エンドポイントを呼び出す時に、認証に対するクライアントIDとクライアントシークレット（または代替の登録済み資格情報）を指定する必要があります。機密アプリケーションは、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-2" href="/docs/ja-jp/glossary?term=client-secret" tip="クライアントシークレット: クライアント（アプリケーション）が認可サーバーで認証するために使用するシークレット。これはクライアントと認可サーバーだけが知っているものであり、推測できないように十分にランダムである必要があります。" cta="用語集の表示">Client Secret</Tooltip> Post、Client Secret Basic、または[秘密鍵JWT](/docs/ja-jp/get-started/authentication-and-authorization-flow/authenticate-with-private-key-jwt)の認証方法を使用できます。

以下のようなアプリケーションは機密アプリケーションになります。

* [認可コードフロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow)、[リソース所有者パスワードフロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/resource-owner-password-flow)、またはRealmサポート付きのリソース所有者パスワードを使用する、安全なバックエンドを持つWebアプリケーション
* [クライアント資格情報フロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow)を使用するマシンツーマシン（M2M）アプリケーション

### IDトークン

機密アプリケーションはシークレットを保持できるため、以下の2つの方法のうちの1つで署名したIDトークンを発行させることができます。

* 対称的に、クライアントシークレット（`HS256`）を使用する
* 非対称的に、秘密鍵（`RS256`）を使用する

## 公開アプリケーション

公開アプリケーションは、資格情報を安全に保持**できません** 。

### 付与タイプ

公開アプリケーションは、クライアントシークレットの使用を必要としない付与タイプのみを使用することができます。必要な資格情報の機密性を維持できないため、クライアントシークレットは送信できません。

以下のようなアプリケーションは公開アプリケーションになります。

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

### IDトークン

公開アプリケーションは秘密を保持できないため、それらに発行される[IDトークン](/docs/ja-jp/secure/tokens/id-tokens)は次のようにする必要があります。

* 秘密鍵（`RS256`）を使用して非対称に署名したもの
* トークンの署名に使用された秘密鍵に対応する公開鍵を使用して検証したもの

## もっと詳しく

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