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

# Auth0を使ってメールを検証する

> Auth0を使用してメールを検証するための各種手段についての概要

ユーザーが提供したメールアドレスを使用する際には、ユーザーがそのメールを実際に使用できるかを確かめることが先決です。これは、ユーザーへのメール送信では常に必要で、検索のインデックスとしてメールを使う場合にも行います。Auth0では、ユーザーが本人であることを確認する方法としては、メールアドレスの使用を推奨していません。

メールの検証は以下のようなアプリケーションには必要不可欠です。

* ユーザーにインデックスを付ける基本的な方法の1つとしてメールアドレスを使用する
* メールをユーザーに送信する
* アカウントのリンクを奨励するのにメールアドレスを使用する
* メールアドレスに結び付けたアカウントをユーザーが作成できるようにする

Auth0では、アプリケーションにメール検証を追加するいくつかの方法と、サインインしようとするユーザーにメールの検証を要求する[マーケットプレイス拡張機能](https://marketplace.auth0.com/integrations/auth-0-require-email-verification)を提供しています。

<Warning>
  メール検証は、アカウントが侵害されるリスクを軽減する手段ですが、完璧な解決策にはなりません。アプリケーションに、他のセキュリティ対策を追加する必要があります。
</Warning>

## 正しい手法を選択する

メールには検証済または未検証のマークを付ける方法が複数あります。どの手法が最適かを判断するために、ご自身やチームで以下の点を検討してください。

* 識別子とパスワードをAuth0（またはAuth0を介して接続されているデータベース）に保管する（予定）か？
* Auth0に組み込みのメール検証フローを利用できない、特殊なメール検証上の要件があるか？
* 大量のユーザーを検証済メールに一括設定する必要があるか？
* メールの検証が必要になるユーザーがMicrosoft Entra ID、ADFS、その他のエンタープライズ接続からアクセスしてくるか？

識別子とパスワードをAuth0で保管するか、カスタムデータベース接続を使って独自のシステムでユーザーを保管する場合には、おそらくAuth0に[組み込みのメール検証フロー](#magic-link-in-a-verification-email)を使用できます。

特殊な要件があるためAuth0の組み込みフローを利用できない場合や、大量のユーザーを一括設定しなければならない場合には、[APIエンドポイント](#custom-or-bulk-verification-with-the-management-api)をご利用ください。

最後に、エンタープライズ接続からのユーザーを扱う場合、一部の接続には専用のメール検証ワークフローがあります。詳細については、「[特殊な検証の対応](#special-verification-support)」をお読みください。

## メール確認リンク

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

**デフォルトで、Auth0はユーザーのサインアップ時にメール確認リンクを送信します。**

Auth0が確認メールを送信するタイミングをカスタマイズすることもできます。たとえば、一括でメールを検証する必要がある場合や、検証済のメールが必要なアクションをユーザーが実行するまで検証を遅らせたい場合などです。

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

* [メール検証ジョブ](/docs/ja-jp/api/management/v2#!/Jobs/post_verification_email)を使用します。これは、Auth0がメール検証テンプレートを使って確認メールを送信することをトリガーします。
* [メール検証チケット](/docs/ja-jp/api/management/v2#!/Tickets/post_email_verification)を作成して、メールを自分で送信します。その際には、ユーザーがメールを確認するのにクリックするべきチケットを含めて送信します。

## ワンタイムパスワード

ワンタイムパスワード（OTP）は、新しいユーザーのアカウント作成時にメールで送信して、確実にすべてのユーザーのメールが検証されるようにします。メール確認リンクはメールスキャナーやユーザー自身による偶発的な確認につながる可能性があるため、OTPが各ユーザーが既存のメールアドレスを自発的に確認することを保証します。OTPを使用するには、テナントで[ユニバーサルログイン](/docs/ja-jp/authenticate/login/auth0-universal-login)、[フレキシブル識別子](/docs/ja-jp/authenticate/database-connections/flexible-identifiers-and-attributes)、および[Identifer Firstログイン](/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first)が有効化されていなければなりません。

別の方法でメールを検証したい状況があるかもしれません。たとえば、ユーザーのリストを使ってまとめて検証したり、独自に作成したカスタムワークフローを通してユーザーのメールを検証する方法があったりする場合です。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/Sm-rZzBGG9mhReiN/docs/images/ja-jp/cdy7uua7fh8z/5SO4gvkdOOZEnPInXrIN1m/10f9cbd55c8749294cfe8e71f864cb83/Email_Config_-_Japanese.png?fit=max&auto=format&n=Sm-rZzBGG9mhReiN&q=85&s=d78904e9db5f1e4581c500de98d39f8d" alt="" width="536" height="699" data-path="docs/images/ja-jp/cdy7uua7fh8z/5SO4gvkdOOZEnPInXrIN1m/10f9cbd55c8749294cfe8e71f864cb83/Email_Config_-_Japanese.png" />
</Frame>

## 特殊な検証の対応

そのような場合には、[PATCH `/api/v2/users`エンドポイント](/docs/ja-jp/api/management/v2/#!/Users/patch_users_by_id)を使って`email_verified`を`true`に設定します。

Microsoft Entra IDとADFSのエンタープライズ接続について、Auth0は一部のカスタムメール検証ワークフローに対応しています。これで、他のシステムからのユーザーが安全で正確な方法によってメール検証されていることを確認できます。詳細は、「[Microsoft Entra IDとADFSのメール検証](/docs/ja-jp/connections/azuread-adfs-email-verification)」をお読みください。

そのような場合には、[PATCH `/api/v2/users`エンドポイント](/docs/ja-jp/api/management/v2/#!/Users/patch_users_by_id)を使用して、`email_verified`を`true`に設定します。

## 特殊な検証の対応

Microsoft Entra IDとADFSのエンタープライズ接続について、Auth0は一部のカスタムメール検証ワークフローに対応しています。これで、他のシステムからのユーザーが安全で正確な方法によってメール検証されていることを確認できます。詳細については、「[Microsoft Entra IDとADFSのメール検証](/docs/ja-jp/connections/azuread-adfs-email-verification)」をお読みください。

## もっと詳しく

* [APIの呼び出しをチェックする](/docs/ja-jp/troubleshoot/authentication-issues/check-api-calls)
* [ユーザープロファイルの確認](/docs/ja-jp/troubleshoot/authentication-issues/check-user-profiles)
