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

# メールマジックリンクでのパスワードレス認証

> メールマジックリンク認証要素でのパスワードレス接続の使い方を説明します。

パスワードレス接続を構成して、メールマジックリンクをメールでユーザーに送信し、認証を完了してもらえます。

詳細については、「[パスワードレス認証にメールまたはSMSを構成する](/docs/ja-jp/authenticate/login/auth0-universal-login/passwordless-login/email-or-sms)」をお読みください。

## 仕組み

ユーザーがメールマジックリンクを開くと、Auth0が直接ログインさせます。ワンタイムパスワード（OTP）をメールで受け取り、アプリに戻ってOTPを入力する機能に似ているものの、実際にこの手順を踏む必要はありません。

### 制限事項

メールマジックリンクは、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=universal-login" tip="ユニバーサルログイン: アプリケーションは、Auth0の認可サーバーでホストされているユニバーサルログインにリダイレクトして、ユーザーのアイデンティティを確認します。" cta="用語集の表示">Universal Login</Tooltip>には対応していません。

クラシックログインでメールマジックリンクを利用する際、当初の要求とその応答の両方が同じブラウザで発生することが必要で、これに該当しない場合、トランザクションは失敗します。特に、デフォルトのウェブブラウザを変更できないiOSユーザーにおいてこの影響が顕著にみられます。

例えば、ユーザーが当初の要求をChromeブラウザで行うものの、メールでマジックリンクを開くとiOSは自動的にSafari（デフォルトのブラウザ）でこれを開きます。この場合、トランザクションは失敗します。

### メールマジックリンクでのクラシックログインフロー

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/Ul2mhPH2EuhkGqPW/docs/images/ja-jp/cdy7uua7fh8z/yYsZhaG5uzmVg1MwVCRix/aad47d9939583ece826ae84d0b18c5c1/Magic_Link_Flow.png?fit=max&auto=format&n=Ul2mhPH2EuhkGqPW&q=85&s=4973a5cfcaf63b96b6146ecb24c807a7" alt="" width="2234" height="1184" data-path="docs/images/ja-jp/cdy7uua7fh8z/yYsZhaG5uzmVg1MwVCRix/aad47d9939583ece826ae84d0b18c5c1/Magic_Link_Flow.png" />
</Frame>

続いてユーザーがメールのボタンまたはリンクをクリックすると、アプリケーションに自動的にサインインします。

## 接続を構成する

1. Auth0 Dashboardで、[［Authentication（認証）］ > ［Passwordless（パスワードレス）］](https://manage.auth0.com/#/connections/passwordless)と移動し、 **［Email（メール）］** を有効に切り替えてください。

2. **［Email（メール）］** を選択すると構成ウィンドウが開くので、 **［Settings（設定）］** ビューに切り替え、メールの **［Form（フォーム）］** 、 **［Subject（件名）］** 、 **［Message（メッセージ）］** テキストを入力します。

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     Auth0でカスタムのメールテンプレートを送信するには、 **From** （送信者）の値を「`auth0.com` 」が含まれないメールアドレスに変更しなければなりません。メールアドレスを変更しなかった場合、Auth0はデフォルトのメールテンプレートを送信します。
   </Callout>

3. 生成されるサインインリンクに含めたいあらゆる **認証パラメーター** を含めてください。

4. **サインアップを無効にする** かどうかを判断します。この設定を有効にすると、既存ユーザーに対してのみパスワードレスアクセスを許可できるようになるものの、アプリケーションがユーザー名列挙攻撃への脅威にさらされることになります。詳細については、「[パスワードレス接続のベストプラクティス](/docs/ja-jp/authenticate/passwordless/best-practices)」をお読みください。

5. **［Save（保存）］** を選択します。

### 多言語対応

**［Message（メッセージ）］** エリアは、多言語に対応しています。

言語を指定するには、[Auth0 Authentication API Get CodeまたはLinkエンドポイント](https://auth0.com/docs/api/authentication#get-code-or-link)を呼び出し、`x-request-language`ヘッダーの値を設定します。このヘッダーが設定されていない場合、言語はブラウザによって自動的に設定される`accept-language`ヘッダーから抽出されます。

### メッセージ構文

**［Message（メッセージ）］** エリアは、Liquid構文を受け付けます。この構文にパラメーターバリューを組み合わせて使え、メッセージの要素をプログラム的に構築できます。

例えば、`request_language`パラメーターを参照し、メッセージの言語を変更できます：

```liquid lines theme={null}
{% if request_language contains 'dutch' %}
   Hier is uw verificatie code: {{ code }}
{% endif %}
{% if request_language contains 'fr-FR' %}
   Ceci est votre code: {{ code }}
{% endif %}
```

メッセージのテンプレートの定義の際、次のパラメーターをご利用になれます。

| パラメーター             | 説明                                                                                             |
| ------------------ | ---------------------------------------------------------------------------------------------- |
| `code`             | 使用するパスワード。                                                                                     |
| `link`             | 生成されるサインインリンク。                                                                                 |
| `application.name` | ユーザーがサインアップしているアプリケーションの名前。                                                                    |
| `request_language` | メッセージコンテンツに対して要求された言語。                                                                         |
| `operation`        | APIを介してユーザーのメール更新によってテンプレートがトリガーされたかを示します。トリガーされると値は`change_email`になります。トリガーされていない場合は`null`です。 |

## クラシックログイン設定の更新

アプリケーションでクラシックログインを利用している場合、メールマジックリンクを実装するにはページテンプレートを更新する必要があります。

1. Auth0 Dashboardで、[**［Branding（ブランディング）］ > ［Universal Login（ユニバーサルログイン）］ > ［Advanced Options（高度なオプション）］** ](https://manage.auth0.com/#/login_settings)へと進みます

2. **［Login（ログイン）］** ビューに切り替え、 **［Default Templates（デフォルトのテンプレート）］** ドロップダウンから **［Lock (passwordless)（ロック(パスワードレス)）** を選択します。

3. 続いて、コードの`Auth0LockPasswordless`セクションを新しいパラメーターに更新します。`passwordlessMethod`をテンプレートに追加してください。

   ```bash lines theme={null}
   passwordlessMethod: 'link',
   ```

4. **［Save（保存）］** を選択します。

埋め込みログイン構成オプションの詳細については、[埋め込み型ログインのパスワードレス認証](https://auth0.com/docs/authenticate/passwordless/implement-login/embedded-login)をご覧ください。

## アプリケーションを有効化する

**［Applications（アプリケーション）］** ビューに切り替え、パスワードレスメールを利用したいアプリケーションを有効化します。

## メールプロバイダー

Auth0は、デフォルトで自身のSMTPプロバイダーからメールを送信します。Auth0の内蔵メールプロバイダーは、テスト目的でのみのものであrい、メールテンプレートのカスタマイズには対応していません。

メールによるコミュニケーションの管理、監視、トラブルシュート、およびメールテンプレートのカスタマイズには、[自身のSMTPメールプロバイダーを構成](/docs/ja-jp/customize/email/smtp-email-providers)してください。

Auth0は、次のメールプロバイダーをサポートします：

* [Mandrill](/docs/ja-jp/customize/email/smtp-email-providers/configure-mandrill-as-external-smtp-email-provider)
* [Amazon SES](/docs/ja-jp/customize/email/smtp-email-providers/configure-amazon-ses-as-external-smtp-email-provider)
* [SendGrid](/docs/ja-jp/customize/email/smtp-email-providers/configure-sendgrid-as-external-smtp-email-provider)
* [SparkPost](/docs/ja-jp/customize/email/smtp-email-providers/configure-sparkpost-as-external-smtp-email-provider)
* [Mailgun](/docs/ja-jp/customize/email/smtp-email-providers/configure-mailgun-as-external-smtp-email-provider)
* [カスタムSMTP外部メールプロバイダー](/docs/ja-jp/customize/email/smtp-email-providers/configure-custom-external-smtp-email-provider)
