> ## 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 を使用してユーザーのメールアドレスを確認するさまざまな方法の概要

# Auth0 を使用してメールアドレスを確認する

ユーザーから提供されたメールアドレスを使用する場合、そのユーザーがそのメールアドレスにアクセスできることを確認することが重要です。これは、ユーザーにメールを送信する場合や、検索のインデックスとしてメールアドレスを使用する場合には常に当てはまります。Auth0 では、メールアドレスを、ユーザーが本人であることを確認する手段として使用することは推奨していません。

次のようなアプリケーションでは、メールアドレスの確認が重要です。

* ユーザーを識別する主な方法の 1 つとしてメールアドレスを使用する
* ユーザーにメールを送信する
* アカウント リンクを勧めるためにメールアドレスを使用する
* ユーザーがメールアドレスに紐づいたアカウントを作成できるようにする

Auth0 には、アプリケーションにメールアドレスの確認を追加する方法がいくつか用意されています。また、サインイン前にユーザーにメールアドレスの確認を必須にする[a マーケットプレイス extension](https://marketplace.auth0.com/integrations/auth-0-require-email-verification)もあります。

<Warning>
  メールアドレスの確認によってアカウントが侵害されるリスクは低減できますが、万全な対策ではありません。アプリケーションによっては、ほかのセキュリティ対策も必要になる場合があります。
</Warning>

<div id="choose-the-right-approach">
  ## 適切なアプローチを選ぶ
</div>

メールを確認済みまたは未確認としてマークする方法はいくつかあります。どの方法が適しているかを判断するために、自分やチームに次のような質問をしてみてください。

* Auth0 内 (または Auth0 経由で接続されたデータベース内) に識別子とパスワードを保存していますか？ または保存する予定がありますか？
* Auth0 の組み込みメールアドレス確認フローを使えないような、特別なメールアドレス確認要件がありますか？
* 多数のユーザーを一括でメールアドレス確認済みに設定する必要がありますか？
* Azure AD、ADFS、またはその他のエンタープライズ接続からのユーザーで、メールアドレス確認が必要な人はいますか？

識別子とパスワードを Auth0 に保存している場合、またはカスタム DB 接続を使って自分のシステムにユーザーを保存している場合は、Auth0 の[組み込みメールアドレス確認フロー](#magic-link-in-a-verification-email)を利用できる可能性が高いです。

Auth0 の組み込みフローを使えない要件がある場合や、多数のユーザーを一括でメールアドレス確認済みに設定する必要がある場合は、役立つ [API エンドポイント](#custom-or-bulk-verification-with-the-management-api) を利用できます。

最後に、エンタープライズ接続のユーザーがいる場合は、それらの接続の一部で特別なメールアドレス確認ワークフローがサポートされています。詳しくは、[Special Verification Support](#special-verification-support) をご覧ください。

<div id="email-verification-links">
  ## メールアドレス確認リンク
</div>

Auth0 でメールアドレスを確認する一般的な方法は、ユーザーにメールアドレス確認リンクを送信することです。ユーザーがそのリンクをクリックすると、ユーザーの `email_verified` フラグが `true` に設定されます。

**Auth0 ではデフォルトで、ユーザーがサインアップしたときにメールアドレス確認リンクをメールで送信します。**

また、Auth0 が確認メールを送信するタイミングをカスタマイズすることもできます。たとえば、メールアドレスを一括で確認する必要がある場合や、確認済みのメールアドレスが必要な操作をユーザーが行うまで確認を遅らせたい場合です。

ユーザーが確認メールを受け取るタイミングを制御する方法は 2 つあります。

* [email verification job](https://auth0.com/docs/api/management/v2#!/Jobs/post_verification_email) を使用します。これにより、verify email template を使用して Auth0 から確認メールが送信されます
* [email verification ticket](https://auth0.com/docs/api/management/v2#!/Tickets/post_email_verification) を作成し、メールを自分で送信します。その際、ユーザーがメールアドレスの確認に使用する ticket を含めます

<div id="one-time-passwords">
  ## ワンタイムパスワード
</div>

ワンタイムパスワード (OTP) は、すべてのユーザーのメールアドレスが確認済みであることを確実にするために、アカウント作成時に各新規ユーザーへメールで送信できます。メール確認リンクは、メールスキャナーやユーザー自身によって意図せず確認される可能性があるため、OTP を使用することで、各ユーザーが実在するメールアドレスを自ら確認したことを確実にできます。OTP を使用するには、テナントで [Universal Login](/docs/ja-jp/authenticate/login/auth0-universal-login)、[Flexible Identifiers](/docs/ja-jp/authenticate/database-connections/flexible-identifiers-and-attributes)、および [Identifer-First login](/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first) が有効になっている必要があります。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  phone と email 識別子の確認に使用する OTP トークンの有効期間は 900 秒です。
</Callout>

OTP を設定するには、[**Authentication > Database**](https://manage.auth0.com/#/authentication) に移動して変更する接続を選択し、**Attributes** を開いて **Email** を見つけ、メニューボタンを選択して **One-Time Password (OTP)** を有効にします。

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SO4gvkdOOZEnPInXrIN1m/5b30204358ac42dcbc3ec0f7e6af9dcf/Email_Config_-_English.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=72ad19cac8aaefdb7ee2ed9d8bbb66fd" alt="" width="536" height="691" data-path="docs/images/cdy7uua7fh8z/5SO4gvkdOOZEnPInXrIN1m/5b30204358ac42dcbc3ec0f7e6af9dcf/Email_Config_-_English.png" />
</Frame>

<div id="custom-or-bulk-verification-with-the-management-api">
  ## Management API を使ったカスタムまたは一括メールアドレス確認
</div>

<Warning>
  これはソーシャル接続とデータベース接続では機能しますが、エンタープライズ接続では機能しません。データの取得元がソーシャルアイデンティティプロバイダーである場合、`email_verified` フィールドはそのプロバイダーによって上書きされる可能性がある点に注意してください。
</Warning>

場合によっては、別の方法でメールアドレスを確認したいこともあります。たとえば、確認対象のユーザー一覧を一括で処理したい場合や、自分で構築したカスタムワークフローでユーザーのメールアドレスを確認する場合です。

このような場合は、[PATCH `/api/v2/users` エンドポイント](https://auth0.com/docs/api/management/v2/#!/Users/patch_users_by_id)を使って `email_verified` を `true` に設定できます。

<div id="special-verification-support">
  ## 特別なメールアドレス確認のサポート
</div>

Azure AD と ADFS のエンタープライズ接続では、Auth0 はいくつかのカスタムメールアドレス確認ワークフローをサポートしています。これにより、他のシステムから移行してくるユーザーのメールアドレスが確認済みであることを、正確かつ安全に確保できます。詳しくは、[Azure AD と ADFS のメールアドレス確認](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/azuread-adfs-email-verification) を参照してください。
