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

> post-login Action トリガーの API オブジェクトについて説明します。

# Actions トリガー: post-login - API オブジェクト

post-login Actions トリガーの API オブジェクトには、次のものが含まれます。

<div id="apiaccess">
  ## `api.access`
</div>

ログインしようとしているユーザーのアクセスを制御します。たとえば、ログイン試行を拒否できます。

<div id="apiaccessdenyreason">
  ### `api.access.deny(reason)`
</div>

現在のログイン試行を拒否としてマークします。これにより、エンドユーザーは
ログインフローを完了できなくなります。これは、この Action によって要求された
ほかのユーザー関連の副作用 (メタデータの変更など) を *取り消すものではありません*。この
Action の完了後、ログインフローは直ちに停止し、それ以降の Actions は実行されません。

<ResponseField name="reason" type="string">
  ログインを拒否する理由を、人が読める形で説明する文字列です。これは
  エンドユーザー向けインターフェイスに直接表示される場合があります。
</ResponseField>

<div id="apiaccesstoken">
  ## `api.accessToken`
</div>

発行されるアクセストークンの変更をリクエストします。

<div id="apiaccesstokensetcustomclaimkey-value">
  ### `api.accessToken.setCustomClaim(key, value)`
</div>

ログインフローの完了時に発行されるアクセストークンに、カスタムクレームを設定します。

<ResponseField name="key" type="string">
  クレームの名前 (完全修飾URLの指定が必要になる場合があります) 。
</ResponseField>

<ResponseField name="value" type="unknown">
  クレームの値。
</ResponseField>

<div id="apiaccesstokenaddscopescope">
  ### `api.accessToken.addScope(scope)`
</div>

ログインフローの完了時に発行されるアクセストークンに、スコープを追加します。

<ResponseField name="scope" type="string">
  追加するスコープです。
</ResponseField>

<div id="apiaccesstokenremovescopescope">
  ### `api.accessToken.removeScope(scope)`
</div>

ログインフローの完了時に発行されるアクセストークンから、スコープを削除します。

<ResponseField name="scope" type="string">
  削除するスコープ。
</ResponseField>

<div id="apiauthentication">
  ## `api.authentication`
</div>

現在のユーザー セッションの認証状態の変更をリクエストします。

<div id="apiauthenticationchallengewithfactor-options">
  ### `api.authentication.challengeWith(factor, options)`
</div>

指定した認証要素と、必要に応じて追加の認証要素を使用して、多要素認証のチャレンジを要求します。

多要素チャレンジが要求されると、そのチャレンジがユーザーによって
完了されるまで、後続の Actions は実行されません。ユーザーは、次のいずれかの場合にチャレンジ要件を満たしたことになります。

1. デフォルトの認証要素に対するチャレンジを正常に完了した場合。
2. `additionalFactors` で指定された追加認証要素のいずれかに対するチャレンジを正常に完了した場合。

要求された認証要素のいずれかが現在のトランザクションですでに正常にチャレンジされている場合、その認証要素は
無視されます。

要求された認証要素がテナントで有効になっていない場合は無視されます。要求された認証要素にユーザーが
登録していない場合も無視されます。要求された認証要素のいずれも有効化または登録されていない場合、認証
トランザクションは失敗します (つまり、ログインは完了しません) 。

<Note>
  ユーザーがまだチャレンジ要件を満たしていない場合、このメソッドにより認証要素のチャレンジ画面が表示されます。
  `additionalFactors` が指定されている場合、ユーザーは必要に応じて別の認証要素を
  選択できます。
</Note>

<ResponseField name="factor" type="factorselector">
  初回のチャレンジに使用する認証要素の種類とそのオプションを記述するオブジェクトです。

  <Expandable title="認証要素 のプロパティ" defaultOpen>
    <ResponseField name="type" type="string">
      `push-notification`、`phone`、`email`、`otp`、`webauthn-roaming`、`webauthn-platform`、`recovery-code` などの認証要素の種類です。

      使用可能な値: `otp`, `email`, `webauthn-platform`, `webauthn-roaming`, `recovery-code`
    </ResponseField>

    <ResponseField name="options" type="dictionary" post={["optional"]}>
      指定した種類の認証要素を設定するための追加オプションです。
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="options" type="challengewithoptions" post={["optional"]}>
  追加オプションです。プロパティとして `additionalFactors` を指定することもできます。認証要素固有のオプション (たとえば `push-notification` の `otpFallback`) は `factor.options` に指定します。

  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="additionalFactors" type="array of objects" post={["optional"]} />
  </Expandable>
</ResponseField>

```js Challenge with a specific factor theme={null}
api.authentication.challengeWith({
  type: 'phone',
  options: { preferredMethod: 'both' }
});
```

```js Challenge with additional factors theme={null}
api.authentication.challengeWith({
  type: 'otp'
}, {
  additionalFactors: [{
    type: 'push-notification'
  }, {
    type: 'phone'
  }]
});
```

```js Challenge with push notification and disable OTP fallback theme={null}
api.authentication.challengeWith({
  type: 'push-notification',
  options: { otpFallback: false }
});
```

<div id="apiauthenticationchallengewithanyfactors">
  ### `api.authentication.challengeWithAny(factors)`
</div>

指定したいずれかの認証要素を使用して、多要素認証のチャレンジを要求します (最初に認証要素の選択画面が表示されます) 。

多要素認証のチャレンジが要求されると、ユーザーがそのチャレンジを完了するまで、後続の Actions は実行されません。ユーザーは、次のいずれかの状況でチャレンジを満たしたことになります。

1. いずれかの認証要素でチャレンジを正常に完了した場合。

要求された認証要素のいずれかが現在のトランザクションですでに正常にチャレンジされている場合、その認証要素は無視されます。

要求された認証要素がテナントで有効になっていない場合、その認証要素は無視されます。ユーザーが登録していない認証要素が要求された場合も、その認証要素は無視されます。要求された認証要素のいずれも有効でも登録済みでもない場合、認証トランザクションは失敗します (つまり、ログインは完了しません) 。

<Note>
  このメソッドでは、ユーザーがまだチャレンジの要件を満たしていない場合、認証要素の選択画面が表示されます。優先する認証要素がある場合は、`api.authentication.challengeWith()` メソッドを使用することを推奨します。渡される認証要素が 1 つだけの場合、または有効な認証要素が 1 つだけの場合は、認証要素の選択画面は表示されません。
</Note>

<ResponseField name="factors" type="array of objects">
  認証要素の配列。
</ResponseField>

<div id="apiauthenticationenrollwithfactor-options">
  ### `api.authentication.enrollWith(factor, options)`
</div>

指定した認証要素と、必要に応じて追加の認証要素を使用して、多要素認証の登録をリクエストします。

多要素認証の登録がリクエストされると、その登録がユーザーによって
完了されるまで、後続の Actions は実行されません。

リクエストされた認証要素のいずれかが、現在のトランザクションですでに正常に登録またはチャレンジされている場合、その認証要素は
無視されます。

テナントで有効になっていない認証要素がリクエストされた場合、その認証要素は無視されます。
ユーザーがすでに登録済みの認証要素がリクエストされた場合、その認証要素は無視されます。
リクエストされた認証要素のいずれも有効かつ未登録でない場合、認証
トランザクションは失敗します (つまり、ログインは完了しません) 。

<ResponseField name="factor" type="enrollmentfactorselector">
  初回の登録プロンプトで使用する認証要素の種類と、そのオプションを記述するオブジェクトです。

  <Expandable title="factor のプロパティ" defaultOpen>
    <ResponseField name="type" type="string">
      `push-notification`、`phone`、`otp`、`webauthn-roaming`、`webauthn-platform`、`recovery-code` などの認証要素の種類です。

      指定可能な値:

      * `otp`
      * `webauthn-platform`
      * `webauthn-roaming`
      * `recovery-code`
      * `push`
      * `push-notification`
    </ResponseField>

    <ResponseField name="options" type="dictionary" post={["optional"]}>
      指定した種類の認証要素を設定するための追加オプションです。
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="options" type="enrollwithoptions" post={["optional"]}>
  `additionalFactors` をプロパティとして指定することもできる追加オプションです。

  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="additionalFactors" type="array of objects" post={["optional"]} />
  </Expandable>
</ResponseField>

```js Enroll with additional factors theme={null}
api.authentication.enrollWith({
  type: 'otp'
}, {
  additionalFactors: [{
    type: 'push-notification'
  }, {
    type: 'phone'
  }]
});
```

<div id="apiauthenticationenrollwithanyfactors">
  ### `api.authentication.enrollWithAny(factors)`
</div>

指定された認証要素のいずれかを使用して、多要素認証の登録をリクエストします (最初に認証要素の選択画面が表示されます) 。

多要素認証の登録がリクエストされると、その登録がユーザーによって完了されるまで、後続の Actions は実行されません。

リクエストされた認証要素のいずれかが現在のトランザクションですでに正常に登録されている場合、その認証要素は
無視されます。

テナントで有効になっていない認証要素がリクエストされた場合、その認証要素は無視されます。
ユーザーがすでに登録している認証要素がリクエストされた場合、その認証要素は無視されます。
リクエストされた認証要素のいずれも有効かつ未登録でない場合、認証
トランザクションは失敗します (つまり、ログインは完了しません) 。

<Note>
  優先する認証要素がある場合は、`api.authentication.enrollWith()` メソッド
  の使用を推奨します。渡される認証要素が 1 つだけの場合、または有効な認証要素が 1 つだけの場合、認証要素の選択画面は表示されません。
</Note>

<ResponseField name="factors" type="array of objects">
  追加の認証要素の配列。
</ResponseField>

<div id="apiauthenticationrecordmethodprovider_url">
  ### `api.authentication.recordMethod(provider_url)`
</div>

現在のセッションで、カスタム認証方式が完了したことを示します。この方式は、以降のログイン時に `event.authentication.methods`
配列で参照できるようになります。

**重要**: この API は、`PostLogin` Actions の `onContinuePostLogin`
関数内でのみ使用できます。つまり、`api.redirect.sendUserTo()` を使用してユーザーを
リダイレクトした後に、カスタム認証方式の完了を記録するために使用できます。

<ResponseField name="provider_url" type="string">
  完了した認証方式を一意に表す `http:` または `https:` の URL。
</ResponseField>

<div id="apiauthenticationsetprimaryuserprimary_user_id">
  ### `api.authentication.setPrimaryUser(primary_user_id)`
</div>

ログイン トランザクションのプライマリ ユーザーを変更します。

ユーザーのリンクが必要なシナリオでは、ログインの開始に使用されたユーザー ID が、独立したユーザーとしては
存在しなくなる場合があります。その ID は、既存のユーザーのセカンダリ ID になっている可能性があります。このような
場合は、`setPrimaryUser()` 関数を使用して、ログインの対象を変更する必要があることを示せます。

**IMPORTANT**: 安全でない方法でアカウントをリンクすると、悪意のある攻撃者が正当な
ユーザーアカウントにアクセスできる可能性があります。

**IMPORTANT**: ログインの認証に使用された ID は、`primary_user_id` で参照される
ユーザーのセカンダリ ID の 1 つに *含まれている必要があります*。そうでない場合、ログインは失敗し、トークンは発行され
ません。

<ResponseField name="primary_user_id" type="string">
  トークンを発行するユーザーのユーザー ID (`sub` クレーム) 。
</ResponseField>

<div id="apiidtoken">
  ## `api.idToken`
</div>

発行されるIDトークンの変更をリクエストします。

<div id="apiidtokensetcustomclaimkey-value">
  ### `api.idToken.setCustomClaim(key, value)`
</div>

ログインフローの完了時に発行されるIDトークンに、カスタムクレームを設定します。

<ResponseField name="key" type="string">
  クレームの名前 (完全修飾URLが必要になる場合がある点に注意してください) 。
</ResponseField>

<ResponseField name="value" type="unknown">
  クレームの値。
</ResponseField>

<div id="apimultifactor">
  ## `api.multifactor`
</div>

ログイン試行で多要素認証を必須に設定するか、その要件を解除します。

<div id="apimultifactorenableprovider-options">
  ### `api.multifactor.enable(provider, options)`
</div>

このログインフローで多要素認証を有効にします。有効にすると、ユーザーは
設定された多要素認証チャレンジを完了する必要があります。実際の多要素認証チャレンジは、
ログインフローの最後に実行されます。

<ResponseField name="provider" type="string">
  使用する多要素認証プロバイダーの名前、または設定済みの
  いずれかのプロバイダーを使用する場合は `"any"` を指定します。

  指定可能な値: `duo`, `none`, `guardian`, `google-authenticator`, `any`
</ResponseField>

<ResponseField name="options" type="object" post={["optional"]}>
  多要素認証チャレンジを有効にするための追加オプションです。

  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="allowRememberBrowser" type="boolean" post={["optional"]}>
      provider が `google-authenticator` または `duo` に設定されている場合、ユーザーには
      30 日に 1 回 MFA が要求されます。provider が `guardian` に設定されている場合、
      MFA プロンプトには、登録するかどうかをユーザーが選択できる
      登録用チェックボックスが表示されます。デフォルトは `false` です。詳しくは、
      [Customize Multi-Factor Authentication Pages](https://auth0.com/docs/secure/multi-factor-authentication/customize-mfa) を参照してください。
    </ResponseField>

    <ResponseField name="providerOptions" type="object" post={["optional"]}>
      チャレンジを設定するための追加オプションです。`duo` プロバイダーでのみ使用できます。
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="apiredirect">
  ## `api.redirect`
</div>

外部リダイレクトを設定し、開始します。

<div id="apiredirectencodetokenoptions">
  ### `api.redirect.encodeToken(options)`
</div>

クエリ文字列パラメーターのリダイレクト先 (`sendUserTo` 経由) として使用できるセッショントークンを作成します。このトークンには、リダイレクト先エンドポイントで真正性を検証できる必要があるデータが含まれます。対象エンドポイントは、共有シークレットを使用して JWT の署名を検証することで、データの真正性と完全性を確認できます。

共有シークレットは Action の **secret** として保存し、`event.secrets['<secret_name>']` から参照できるようにする必要があります。

<ResponseField name="options" type="tokencreationoptions">
  生成される URL のクエリパラメーターに機密データをどのようにエンコードするかを設定します。

  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="expiresInSeconds" type="number" post={["optional"]}>
      このトークンの有効期限が切れるまでの秒数
    </ResponseField>

    <ResponseField name="payload" type="dictionary">
      リダイレクト先に渡すことを目的としたデータで、その真正性と完全性を検証できる必要があります。
    </ResponseField>

    <ResponseField name="secret" type="string">
      リダイレクト先と共有する JWT の署名に使用するシークレットです。シークレット値は **secret** として保存し、`event.secrets['<secret_name>']` を使用して取得する必要があります。
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="apiredirectsendusertourl-options">
  ### `api.redirect.sendUserTo(url, options)`
</div>

この Action の完了直後に、ログイン パイプラインで対象の `url` へのブラウザー リダイレクトを直ちにトリガーします。`createUrl` ヘルパー メソッドは、対象の `url` のクエリ パラメーターとしてデータをエンコードする処理を簡略化するために用意されています。これにより、そのデータの真正性と完全性を対象エンドポイントで検証できます。

<ResponseField name="url" type="string" />

<ResponseField name="options" type="sendusertooptions" post={["optional"]}>
  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="query" type="dictionary" post={["optional"]}>
      リダイレクト URL に追加するクエリ文字列パラメーターを表すオブジェクトです。
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="apiredirectvalidatetokenoptions">
  ### `api.redirect.validateToken(options)`
</div>

データの真正性と完全性を検証しながら、`/continue` エンドポイントに渡された JWT トークンにエンコードされたデータを取得します。

<ResponseField name="options" type="validatesessiontokenoptions">
  リダイレクト後に `/continue` エンドポイントへ渡された JWT トークンにエンコードされた
  データを取得するためのオプションです。

  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="secret" type="string" />

    <ResponseField name="tokenParameterName" type="string" post={["optional"]}>
      `/continue` エンドポイントに送信されたクエリパラメーターまたはボディパラメーターの名前。
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="apiuser">
  ## `api.user`
</div>

ログイン中のユーザーのメタデータを変更します。

<div id="apiusersetappmetadatakey-value">
  ### `api.user.setAppMetadata(key, value)`
</div>

ログイン中のユーザーに対して、アプリケーション固有のメタデータを設定します。

注: このメソッドはコールバック内では使用しないでください。このメソッドを呼び出しても、メタデータはすぐには更新されません。
同じフロー内の複数の Actions 全体でこのメソッドを複数回呼び出すことができ、エンジンが変更を集約して、
フローの完了前にメタデータを一括で更新します。この関数は、オブジェクト形式のメタデータでのみ
動作します。

<ResponseField name="key" type="string">
  設定するメタデータのプロパティ。
</ResponseField>

<ResponseField name="value" type="unknown">
  メタデータのプロパティの値です。この値を `null` に設定すると、
  メタデータのプロパティを削除できます。
</ResponseField>

<div id="apiusersetusermetadatakey-value">
  ### `api.user.setUserMetadata(key, value)`
</div>

ログイン中のユーザーの一般的なメタデータを設定します。

注: このメソッドはコールバック内では使用しないでください。このメソッドを呼び出しても、メタデータはすぐには更新されません。
同じフロー内の複数の Action でこれを複数回呼び出すことができ、エンジンが変更を集約して、
フローの完了前にメタデータをまとめて更新します。この関数は、オブジェクト形式のメタデータでのみ
動作します。

<ResponseField name="key" type="string">
  設定するメタデータのプロパティです。
</ResponseField>

<ResponseField name="value" type="unknown">
  メタデータ プロパティの値です。メタデータ プロパティを削除するには、これを `null` に
  設定できます。
</ResponseField>

<div id="apicache">
  ## `api.cache`
</div>

キャッシュを変更します。

<div id="apicachedeletekey">
  ### `api.cache.delete(key)`
</div>

指定した
key に対応するキャッシュ値のレコードが存在する場合は、削除します。

<ResponseField name="key" type="string">
  削除するキャッシュレコードのキー。
</ResponseField>

<div id="apicachegetkey">
  ### `api.cache.get(key)`
</div>

指定したキーに対応するキャッシュ済みの値のレコードが存在する場合は、
そのレコードを取得します。レコードが見つかった場合、キャッシュされた値は
返されるオブジェクトの `value` プロパティに格納されています。

<ResponseField name="key" type="string">
  キャッシュに保存されているレコードのキーです。
</ResponseField>

<div id="apicachesetkey-value-options">
  ### `api.cache.set(key, value, options)`
</div>

指定したキーで、キャッシュに文字列値を保存または更新します。

このキャッシュに保存された値のスコープは、それを設定した Trigger に限定されます。
これらの値には、[Actions Cache Limits](https://auth0.com/docs/customize/actions/limitations) が適用されます。

この方法で保存された値の有効期間は、指定した
`ttl` または `expires_at` の *最大* までです。有効期間を指定しない場合は、
デフォルトで 15 分が使用されます。有効期間は、
[Actions Cache Limits](https://auth0.com/docs/customize/actions/limitations) に記載されている最大
時間を超えることはできません。

**重要**: このキャッシュは、短期間のみ保持される一時的なデータ向けに設計されています。項目は、
指定された有効期間内であっても、後続のトランザクションでは利用できない場合があります。

<ResponseField name="key" type="string">
  保存するレコードのキー。
</ResponseField>

<ResponseField name="value" type="string">
  保存するレコードの値。
</ResponseField>

<ResponseField name="options" type="cachesetoptions" post={["optional"]}>
  キャッシュの動作を調整するためのオプション。

  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="expires_at" type="number" post={["optional"]}>
      Unix エポックからの経過時間をミリ秒で表した絶対有効期限です。
      キャッシュされたレコードはそれより前に削除される場合がありますが、
      指定された `expires_at` を過ぎて保持されることは
      ありません。

      *注*: `ttl` の値も
      指定する場合は、この値を指定しないでください。両方のオプションが指定された場合は、
      2 つのうち早いほうの有効期限が使用されます。
    </ResponseField>

    <ResponseField name="ttl" type="number" post={["optional"]}>
      このキャッシュエントリの有効期間 (ミリ秒) です。
      キャッシュされた値はそれより前に削除される場合がありますが、
      指定された `ttl` を過ぎて保持されることは
      ありません。

      *注*: `expires_at` の値も
      指定する場合は、この値を指定しないでください。両方のオプションが指定された場合は、
      2 つのうち早いほうの有効期限が使用されます。
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="apisamlresponse">
  ## `api.samlResponse`
</div>

カスタムのSAML設定と属性を設定します。

<div id="apisamlresponsesetattributeattribute-value">
  ### `api.samlResponse.setAttribute(attribute, value)`
</div>

認証済みユーザーに対して発行されるSAMLアサーションに属性を設定します。

<ResponseField name="attribute" type="string">
  設定するSAML属性。
</ResponseField>

<ResponseField name="value" type="samlattributevalue">
  SAMLクレームの値。この値を `null` または
  `undefined` に設定すると、アサーションからクレームが削除されます。
</ResponseField>

<div id="apisamlresponsesetaudienceaudience">
  ### `api.samlResponse.setAudience(audience)`
</div>

SAML アサーションの対象者。
デフォルト値は SAMLRequest の issuer です。

<ResponseField name="audience" type="string" />

<div id="apisamlresponsesetrecipientrecipient">
  ### `api.samlResponse.setRecipient(recipient)`
</div>

SAML アサーションの受信先 (SubjectConfirmationData) 。
デフォルトは、SAMLRequest の AssertionConsumerUrl、または SAMLRequest が送信されなかった場合はコールバック URL です。

<ResponseField name="recipient" type="string" />

<div id="apisamlresponsesetcreateupnclaimcreateupnclaim">
  ### `api.samlResponse.setCreateUpnClaim(createUpnClaim)`
</div>

UPN クレームを作成するかどうか。既定値は true です。

<ResponseField name="createUpnClaim" type="boolean" />

<div id="apisamlresponsesetpassthroughclaimswithnomappingpassthroughclaimswithnomapping">
  ### `api.samlResponse.setPassthroughClaimsWithNoMapping(passthroughClaimsWithNoMapping)`
</div>

true の場合 (既定値) 、共通プロファイルにマッピングされていない各クレームは、Auth0 によって出力アサーションにそのまま含められます。
false の場合、それらのクレームはマッピングされません。

<ResponseField name="passthroughClaimsWithNoMapping" type="boolean" />

<div id="apisamlresponsesetmapunknownclaimsasismapunknownclaimsasis">
  ### `api.samlResponse.setMapUnknownClaimsAsIs(mapUnknownClaimsAsIs)`
</div>

passthroughClaimsWithNoMapping が true で、これが false (デフォルト) の場合、共通プロファイルにマッピングされていない各クレームに、Auth0 は `http://schema.auth0.com` プレフィックスを追加します。
true の場合、クレームはそのまま渡されます。

<ResponseField name="mapUnknownClaimsAsIs" type="boolean" />

<div id="apisamlresponsesetmapidentitiesmapidentities">
  ### `api.samlResponse.setMapIdentities(mapIdentities)`
</div>

true (デフォルト) の場合、利用可能であれば、プロバイダー (Google、ADFS、AD など) やアクセストークンといった追加情報がトークンに含まれます。

<ResponseField name="mapIdentities" type="boolean" />

<div id="apisamlresponsesetsignaturealgorithmsignaturealgorithm">
  ### `api.samlResponse.setSignatureAlgorithm(signatureAlgorithm)`
</div>

SAML アサーションまたはレスポンスに署名するための署名アルゴリズムです。
デフォルトは `rsa-sha256` です。

<ResponseField name="signatureAlgorithm" type="string">
  使用できる値: `rsa-sha256`
</ResponseField>

<div id="apisamlresponsesetdigestalgorithmdigestalgorithm">
  ### `api.samlResponse.setDigestAlgorithm(digestAlgorithm)`
</div>

SAML アサーションまたはレスポンスのダイジェストの計算に使用するダイジェストアルゴリズムです。
デフォルトは sha256 です。

<ResponseField name="digestAlgorithm" type="string">
  使用できる値: `sha256`
</ResponseField>

<div id="apisamlresponsesetdestinationdestination">
  ### `api.samlResponse.setDestination(destination)`
</div>

SAML レスポンスの宛先です。指定しない場合は、SAMLRequest の AssertionConsumerUrl、SAMLRequest がない場合はコールバック URL が使用されます。

<ResponseField name="destination" type="string" />

<div id="apisamlresponsesetlifetimeinsecondslifetimeinseconds">
  ### `api.samlResponse.setLifetimeInSeconds(lifetimeInSeconds)`
</div>

トークンの有効期限です。
デフォルトは 3600 秒 (1 時間) です。

<ResponseField name="lifetimeInSeconds" type="number" />

<div id="apisamlresponsesetsignresponsesignresponse">
  ### `api.samlResponse.setSignResponse(signResponse)`
</div>

SAML レスポンスに署名するかどうかを指定します。
デフォルトでは、SAML アサーションには署名されますが、SAML レスポンスには署名されません。
true の場合、SAML アサーションではなく SAML レスポンスに署名されます。
デフォルト値は false です。

<ResponseField name="signResponse" type="boolean" />

<div id="apisamlresponsesetnameidentifierformatnameidentifierformat">
  ### `api.samlResponse.setNameIdentifierFormat(nameIdentifierFormat)`
</div>

デフォルト値は `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` です。

<ResponseField name="nameIdentifierFormat" type="string" />

<div id="apisamlresponsesetnameidentifierprobesnameidentifierprobes">
  ### `api.samlResponse.setNameIdentifierProbes(nameIdentifierProbes)`
</div>

Auth0 は、この配列内の各属性を順番に試します。
いずれかに値がある場合は、その値を Subject/NameID として使用します。

順序は次のとおりです。

* [http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier](http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier) (`user_id` からマッピング)
  * [http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress](http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress) (`email` からマッピング)
  * [http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name](http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name) (`name` からマッピング)

<ResponseField name="nameIdentifierProbes" type="文字列の配列" />

<div id="apisamlresponsesetauthncontextclassrefauthncontextclassref">
  ### `api.samlResponse.setAuthnContextClassRef(authnContextClassRef)`
</div>

デフォルト値は `urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified` です。

<ResponseField name="authnContextClassRef" type="string" />

<div id="apisamlresponsesetsigningcertsigningcert">
  ### `api.samlResponse.setSigningCert(signingCert)`
</div>

必要に応じて、SAML リクエストの検証に使用する公開鍵証明書を指定します。
設定すると、SAML リクエストへの署名が必須になります。
値の例: "-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..all the other lines..]-----END CERTIFICATE-----\n"

<ResponseField name="signingCert" type="string" />

<div id="apisamlresponsesetincludeattributenameformatincludeattributenameformat">
  ### `api.samlResponse.setIncludeAttributeNameFormat(includeAttributeNameFormat)`
</div>

true に設定すると、属性名に基づいて NameFormat が推定されます。NameFormat の値は、urn:oasis:names:tc:SAML:2.0:attrname-format:uri、urn:oasis:names:tc:SAML:2.0:attrname-format:basic、および urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified です。
false に設定すると、アサーション内の属性の NameFormat は設定されません。
デフォルトは true です。

<ResponseField name="includeAttributeNameFormat" type="boolean" />

<div id="apisamlresponsesettypedattributestypedattributes">
  ### `api.samlResponse.setTypedAttributes(typedAttributes)`
</div>

true に設定すると、要素の xs:type を推定します。指定できる型は xs:string、xs:boolean、xs:double、xs:anyType です。
false に設定すると、すべての xs:type が xs:anyType になります。
デフォルトは true です。

<ResponseField name="typedAttributes" type="boolean" />

<div id="apisamlresponsesetencryptioncertencryptioncert">
  ### `api.samlResponse.setEncryptionCert(encryptionCert)`
</div>

必要に応じて、SAML アサーションの暗号化に使用する証明書を指定します。
この証明書はサービスプロバイダーから取得してください。
証明書と公開鍵の両方を指定する必要があります。
値の例は `"-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n[..all the other lines..]-----END CERTIFICATE-----\n"` です。

<ResponseField name="encryptionCert" type="string" />

<div id="apisamlresponsesetencryptionpublickeyencryptionpublickey">
  ### `api.samlResponse.setEncryptionPublicKey(encryptionPublicKey)`
</div>

必要に応じて、SAML アサーションの暗号化に使用する公開鍵を指定します。
公開鍵はサービスプロバイダーから取得してください。
公開鍵と証明書は両方とも指定する必要があります。
値の例は "-----BEGIN PUBLIC KEY-----\nnMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..all the other lines..]-----END PUBLIC KEY-----\n" です。

<ResponseField name="encryptionPublicKey" type="string" />

<div id="apisamlresponsesetcertcert">
  ### `api.samlResponse.setCert(cert)`
</div>

デフォルトでは、Auth0 はテナントに割り当てられた公開鍵/秘密鍵ペアを使用して、SAML レスポンスまたはアサーションに署名します。
ごく限られた特定のシナリオでは、独自の証明書と秘密鍵を指定したい場合があります。

証明書と秘密鍵の両方を指定する必要があります。
値の例: `"-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n[..all the other lines..]-----END CERTIFICATE-----\n"`。

<ResponseField name="cert" type="string" />

<div id="apisamlresponsesetkeykey">
  ### `api.samlResponse.setKey(key)`
</div>

デフォルトでは、Auth0 はテナントに割り当てられた秘密鍵/公開鍵のペアを使用して、SAML レスポンスまたはアサーションに署名します。
ごく限られたケースでは、独自の証明書と秘密鍵を指定することもできます。

この秘密鍵は機密情報であるため、**Actions の Add Secret 機能を使用することを推奨します**。
詳細については、こちらを参照してください: [https://auth0.com/docs/customize/actions/write-your-first-action#add-a-secret](https://auth0.com/docs/customize/actions/write-your-first-action#add-a-secret)

証明書と秘密鍵の両方を指定する必要があります。
値の例: "-----BEGIN PRIVATE KEY-----\nnMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..all the other lines..]-----END PRIVATE KEY-----\n"

<ResponseField name="key" type="string" />

<div id="apisamlresponsesetrelaystaterelaystate">
  ### `api.samlResponse.setRelayState(relayState)`
</div>

必要に応じて、サービスプロバイダーに戻る際に使用する RelayState を指定します

<ResponseField name="relayState" type="string" />

<div id="apisamlresponsesetissuerissuer">
  ### `api.samlResponse.setIssuer(issuer)`
</div>

必要に応じて、SAML アサーションの発行元を指定します。
デフォルトは `urn:auth0:TENANT` です

<ResponseField name="issuer" type="string" />

<div id="apisamlresponsesetencryptionalgorithmencryptionalgorithm">
  ### `api.samlResponse.setEncryptionAlgorithm(encryptionAlgorithm)`
</div>

SAML アサーションの暗号化アルゴリズムを設定します。
デフォルトは `aes256-cbc` です。

<ResponseField name="encryptionAlgorithm" type="string">
  * 使用するアルゴリズム (`aes256-gcm` を推奨)

  許可される値: `aes256-gcm`
</ResponseField>

```js Set the encryption algorithm to aes256-gcm (recommended) theme={null}
api.samlResponse.setEncryptionAlgorithm('aes256-gcm');
```

<div id="apivalidation">
  ## `api.validation`
</div>

バリデーションエラーをスローして、ユーザーのログインを防止します。

<div id="apivalidationerrorerrorcode-errormessage">
  ### `api.validation.error(errorCode, errorMessage)`
</div>

バリデーション エラーがある場合に、エラーをスローします。

<ResponseField name="errorCode" type="string">
  バリデーション エラー用のユーザー定義のエラーコードです。
</ResponseField>

<ResponseField name="errorMessage" type="string">
  バリデーション エラー用のユーザー定義のメッセージです。
</ResponseField>

<div id="apirules">
  ## `api.rules`
</div>

Rule が現在のトランザクションで実行されたかどうかを判別します。

<div id="apiruleswasexecutedruleid">
  ### `api.rules.wasExecuted(ruleId)`
</div>

現在のトランザクションで、特定の ID を持つ Rule が実行済みかどうかを確認します。

<ResponseField name="ruleId" type="string">
  Rule の ID。
</ResponseField>

<div id="apiprompt">
  ## `api.prompt`
</div>

カスタムプロンプトを表示します。

<div id="apipromptrenderpromptid-promptoptions">
  ### `api.prompt.render(promptId, promptOptions)`
</div>

カスタムプロンプトをレンダリングします。

<ResponseField name="promptId" type="string">
  プロンプト ID。
</ResponseField>

<ResponseField name="promptOptions" type="promptoptions" post={["optional"]}>
  レンダリング オプション。

  <Expandable title="promptOptions のプロパティ" defaultOpen>
    <ResponseField name="fields" type="dictionary" post={["optional"]}>
      フィールドの値を設定するためのキーと値のペア (クライアント側) 。
    </ResponseField>

    <ResponseField name="vars" type="dictionary" post={["optional"]}>
      変数を挿入するためのキーと値のペア (サーバー側) 。
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="apirefreshtoken">
  ## `api.refreshToken`
</div>

現在のユーザーのリフレッシュトークンの変更を要求します。

<div id="apirefreshtokenrevokereason">
  ### `api.refreshToken.revoke(reason)`
</div>

\[エンタープライズのお客様] 現在のユーザーのリフレッシュトークンを取り消し、現在のリフレッシュトークン交換の試行を拒否済みとしてマークします。これにより、
エンドユーザーはリフレッシュトークン交換フローを完了できなくなり、現在使用中のリフレッシュトークンは取り消されます。
この処理の完了後、リフレッシュトークン交換フローは直ちに停止し、それ以降の Actions は実行されません。

このメソッドは、`event.transaction.protocol === "oauth2-refresh-token"` の場合に、リフレッシュトークン交換フロー中でのみ使用できます。

<ResponseField name="reason" type="string">
  リフレッシュトークン交換を拒否する理由を、人が読んで理解できる形で説明します。これは
  エンドユーザー向けインターフェースに直接表示される場合があります。
</ResponseField>

<div id="apirefreshtokensetexpiresatabsolute">
  ### `api.refreshToken.setExpiresAt(absolute)`
</div>

\[Enterprise Customers] 現在のリフレッシュトークンに、新しい絶対有効期限を設定します。
有効期限は、設定で指定されたリフレッシュトークンの最大有効期間を超えて設定できません。
複数回呼び出した場合は、最も早い有効期限が使用されます。

<ResponseField name="absolute" type="number">
  必須。Unixエポックからの経過時間をミリ秒単位で表した新しい絶対有効期限です。この時刻を過ぎると、リフレッシュトークンは無効と見なされます。
</ResponseField>

<div id="apirefreshtokensetidleexpiresatinactivity">
  ### `api.refreshToken.setIdleExpiresAt(inactivity)`
</div>

\[Enterprise Customers] 現在のリフレッシュトークンの新しいアイドル有効期限を設定します。
この有効期限は、設定で定義されたリフレッシュトークンの絶対有効期間の最大値を超えて設定することはできません。
複数回呼び出した場合は、最も早い有効期限が適用されます。

<ResponseField name="inactivity" type="number">
  必須。新しいアイドル非アクティブ時間を、Unixエポックからのミリ秒数で指定します。この期間内にリフレッシュトークンが使用されなかった場合、無効と見なされます。
</ResponseField>

<div id="apirefreshtokensetmetadatakey-value">
  ### `api.refreshToken.setMetadata(key, value)`
</div>

現在のリフレッシュトークンのメタデータオブジェクトにキーと値のペアを設定します。

<ResponseField name="key" type="string">
  必須。メタデータオブジェクトに設定するキーです。
</ResponseField>

<ResponseField name="value" type="string">
  必須。メタデータオブジェクト内のキーに設定する値です。`null` を指定すると、指定したメタデータキーは削除されます。
</ResponseField>

<div id="apirefreshtokendeletemetadatakey">
  ### `api.refreshToken.deleteMetadata(key)`
</div>

現在のリフレッシュトークンのメタデータオブジェクトから、指定したキーを削除します。

<ResponseField name="key" type="string">
  必須。メタデータオブジェクトから削除するキー。
</ResponseField>

<div id="apirefreshtokenevictmetadata">
  ### `api.refreshToken.evictMetadata()`
</div>

現在のリフレッシュトークンのメタデータオブジェクト内のすべてのキーを削除します。

<div id="apisession">
  ## `api.session`
</div>

現在のユーザーのセッションに対する変更をリクエストします。

<div id="apisessionrevokereason-options">
  ### `api.session.revoke(reason, options)`
</div>

\[Enterprise Customers] 現在のユーザーセッションを無効化し、現在のログイン試行を拒否としてマークします。これにより、
エンドユーザーはログインフローを完了できなくなり、セッションも無効化されます。ログインフローはこのアクションの完了後ただちに
停止し、以降の Actions は実行されません。

<ResponseField name="reason" type="string">
  ログインを拒否する理由を、人が読める形式で説明します。これは
  エンドユーザー向けインターフェースに直接表示される場合があります。
</ResponseField>

<ResponseField name="options" type="sessionrevocationoptions" post={["optional"]}>
  <Expandable title="options のプロパティ" defaultOpen>
    <ResponseField name="preserveRefreshTokens" type="boolean" post={["optional"]}>
      デフォルトは false です。true の場合、システムはセッションを終了しますが、リフレッシュトークンは保持されます。アプリケーションは、リフレッシュトークンの有効期間中、引き続きアクセストークンを取得できます。
    </ResponseField>
  </Expandable>
</ResponseField>

```js Revoke the session while preserving refresh tokens theme={null}
api.session.revoke('reason', { preserveRefreshTokens: true });
```

<div id="apisessionsetexpiresatabsolute">
  ### `api.session.setExpiresAt(absolute)`
</div>

\[Enterprise Customers] 現在のセッションに新しい絶対有効期限を設定します。
有効期限は、テナント設定で定義された最大セッション存続期間を超えて設定することはできません。
複数回呼び出された場合は、最も早い有効期限が適用されます。

<ResponseField name="absolute" type="number">
  必須。新しい絶対有効期限を、Unix エポックからの経過ミリ秒数で指定します。この時刻を過ぎると、セッションは無効と見なされます。
</ResponseField>

<div id="apisessionsetidleexpiresatinactivity">
  ### `api.session.setIdleExpiresAt(inactivity)`
</div>

\[Enterprise Customers] 現在のセッションの新しいアイドル有効期限を設定します。
この有効期限には、テナント設定で設定されたセッションの最大絶対有効期間を超える値は指定できません。
複数回呼び出した場合は、最も早い有効期限が使用されます。

<ResponseField name="inactivity" type="number">
  必須。新しいアイドル有効期限の時刻を、Unix エポックからの経過ミリ秒数で指定します。この期間中にユーザー操作がない場合、Session はこの時刻を過ぎると無効と見なされます。
</ResponseField>

<div id="apisessionsetcookiemodemode">
  ### `api.session.setCookieMode(mode)`
</div>

\[Enterprise Customers] \[早期アクセス] 現在のセッションの cookie モードを設定します。指定できる値は、'persistent' または 'non-persistent' (一時的) のいずれかです。
これにより、ブラウザーでセッション cookie がどのように扱われるかが決まります。

* 'persistent': cookie は、有効期限が切れるか、ユーザーが削除するまで保存されます。
* 'non-persistent' (一時的) : cookie は、ブラウザーを閉じると削除されます。

setCookieMode を複数回呼び出した場合は、最後の呼び出しだけが有効になります。'non-persistent' が設定されている場合、ブラウザーを閉じると cookie は削除されますが、セッション自体は絶対有効期限またはアイドル有効期限に達するまで、または利用可能な API を使用してセッションが取り消されるまで有効なままです。cookie モードの詳細については、ドキュメントを参照してください。

<ResponseField name="mode" type="string">
  必須。現在のセッションの cookie モードです。
  'persistent' または 'non-persistent' (一時的) のいずれかを指定できます。

  使用可能な値: `persistent`, `non-persistent`
</ResponseField>

<div id="apisessionsetmetadatakey-value">
  ### `api.session.setMetadata(key, value)`
</div>

\[Enterprise Customers] \[早期アクセス] 現在のセッションのメタデータ オブジェクトにキーと値のペアを設定します。

<ResponseField name="key" type="string">
  必須。メタデータ オブジェクトに設定するキーです。
</ResponseField>

<ResponseField name="value" type="string">
  必須。メタデータ オブジェクトでそのキーに設定する値です。値が null の場合は、指定したメタデータ キーが削除されます。
</ResponseField>

<div id="apisessiondeletemetadatakey">
  ### `api.session.deleteMetadata(key)`
</div>

\[Enterprise Customers] \[早期アクセス] 現在のセッションのメタデータオブジェクト内のキーを削除します。

<ResponseField name="key" type="string">
  必須。メタデータオブジェクトから削除するキーです。
</ResponseField>

<div id="apisessionevictmetadata">
  ### `api.session.evictMetadata()`
</div>

\[Enterprise Customers] \[早期アクセス] 現在のセッションのメタデータオブジェクトから、すべてのキーを削除します。

<div id="apitransaction">
  ## `api.transaction`
</div>

トランザクションを変更します。

<div id="apitransactionsetmetadatakey-value">
  ### `api.transaction.setMetadata(key, value)`
</div>

指定したキーのトランザクションメタデータに値を保存または更新します。

このメソッドで変更したメタデータは、`event.transaction.metadata`
オブジェクトにリアルタイムで反映されます。

<ResponseField name="key" type="string">
  設定するプロパティのキーです。
</ResponseField>

<ResponseField name="value" type="txmetadatavalue">
  プロパティの値です。メタデータプロパティを削除するには、`null` を
  設定できます。
</ResponseField>

<div id="apigroups">
  ## `api.groups`
</div>

ユーザーが所属するグループに関する情報を取得します。

<div id="apigroupsgetusergroupsparams">
  ### `api.groups.getUserGroups(params)`
</div>

ユーザーが所属しているグループのページネーションされた一覧を取得します。

<ResponseField name="params" type="getusergroupsparams" post={["optional"]}>
  * ページネーション オプションを含むオブジェクト。

  <Expandable title="params のプロパティ" defaultOpen>
    <ResponseField name="take" type="number" post={["optional"]} />

    <ResponseField name="from" type="string" post={["optional"]} />
  </Expandable>
</ResponseField>

<div id="apigroupshasgroupmembershipgroups">
  ### `api.groups.hasGroupMembership(groups)`
</div>

ユーザーが指定されたグループのいずれかに所属しているかどうかを確認し、
所属している場合は一致したグループの詳細を返します。

<ResponseField name="groups" type="array of strings">
  * メンバーシップを確認する対象のグループ識別子 (ID または名前) の配列。
</ResponseField>
