> ## 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.

> Auth0 Dashboard で署名アルゴリズムを設定する際の説明と推奨事項です。

# 署名アルゴリズム

<Tooltip tip="Signing Algorithm: トークンが改ざんされていないことを保証するために、トークンにデジタル署名する際に使用されるアルゴリズム。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Signing+algorithms">署名アルゴリズム</Tooltip>は、アプリケーションまたは API 向けに発行されるトークンに署名するためのアルゴリズムです。署名は [JSON Web トークン (JWT)](/docs/ja-jp/secure/tokens/json-web-tokens) の一部であり、トークンの送信者が正当な送信元であること、およびメッセージが途中で改変されていないことを確認するために使用されます。

次の署名アルゴリズムから選択できます。

* **RS256 (RSA Signature with SHA-256)**: 非対称アルゴリズムです。つまり、キーは 2 つあり、1 つは公開鍵、もう 1 つは秘密にしておく必要がある秘密キーです。Auth0 は署名の生成に使用する秘密キーを保持し、<Tooltip tip="JSON Web Token (JWT): 2 者間でクレームを安全に表現するために使用される標準的な ID トークン形式（および多くの場合はアクセストークン形式）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JWT">JWT</Tooltip> の利用者は Auth0 が提供するメタデータエンドポイントから公開鍵を取得して、JWT 署名を検証します。
* **HS256 (HMAC with SHA-256)**: 対称アルゴリズムです。つまり、秘密にしておく必要がある秘密キーは 1 つだけで、それを 2 者間で共有します。同じキーが署名の生成と検証の両方に使われるため、キーが漏えいしないよう注意が必要です。この秘密キー (またはシークレット) は、アプリケーション (<Tooltip tip="Client Secret: クライアント（アプリケーション）が認可サーバーに対して認証するために使用するシークレット。クライアントと認可サーバーだけが知っているべきであり、推測できないよう十分にランダムである必要があります。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=client+secret">client secret</Tooltip>) または API (署名シークレット) を登録し、HS256 署名アルゴリズムを選択したときに作成されます。
* **PS256 (RSA Signature with SHA-256)**: 非対称アルゴリズムです。つまり、キーは 2 つあり、1 つは公開鍵、もう 1 つは秘密にしておく必要がある秘密キーです。Auth0 は署名の生成に使用する秘密キーを保持し、JWT の利用者は Auth0 が提供するメタデータエンドポイントから公開鍵を取得して、JWT 署名を検証します。RS256 とは異なり、同じ JWT ヘッダーとペイロードでも、毎回異なる署名が生成されます。

最も安全で、推奨される方法は RS256 を使用することです。理由は次のとおりです。

* RS256 では、秘密キーの保持者 (Auth0) のみがトークンに署名でき、公開鍵を使えば誰でもトークンが有効かどうかを確認できます。
* RS256 では、秘密キーが侵害された場合でも、新しいシークレットを使うためにアプリケーションや API を再デプロイすることなく、キーのローテーションを実施できます (HS256 を使用している場合は再デプロイが必要です) 。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Okta または OpenID Connect (OIDC) のエンタープライズ接続で Private Key JWT 認証を設定している場合は、[追加の署名アルゴリズム](/docs/ja-jp/authenticate/enterprise-connections/private-key-jwt-client-auth#configure-private-key-jwt-client-authentication) を選択する必要があることがあります。
</Callout>

<div id="learn-more">
  ## 詳しくはこちら
</div>

* [JSON Web トークン](/docs/ja-jp/secure/tokens/json-web-tokens)
* [アプリケーションの署名アルゴリズムを変更する](/docs/ja-jp/get-started/applications/change-application-signing-algorithms)
* [署名鍵](/docs/ja-jp/get-started/tenant-settings/signing-keys)
* [署名鍵のローテーション](/docs/ja-jp/get-started/tenant-settings/signing-keys/rotate-signing-keys)
* [署名鍵を取り消す](/docs/ja-jp/get-started/tenant-settings/signing-keys/revoke-signing-keys)
* [署名証明書を表示する](/docs/ja-jp/get-started/tenant-settings/signing-keys/view-signing-certificates)
