claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialsecurity

🔐auth0-mfa

プラグイン
auth0
ライセンス
Apache-2.0

説明

次のような場合に使用: アプリにMFAまたはステップアップ認証を追加する場合 — ログイン時や機密性の高い操作を行う前に、第二の認証要素(TOTP、SMS、パスキー、プッシュ通知)によるユーザー確認を必須にする場合。 また、アダプティブ/リスクベースのMFAや、HIPAA・PCI-DSSなどのコンプライアンス要件に対応する場合にも使用します。 ユーザーが「二要素認証を追加して」や「この操作の前にMFAを要求して」と指示した場合も対象となります。

原文を表示

Use when adding MFA or step-up authentication to an app — requiring users to verify with a second factor (TOTP, SMS, passkey, push) for login or before a sensitive action. Also use for adaptive/risk-based MFA or compliance requirements like HIPAA or PCI-DSS, even if the user just says "add two-factor auth" or "require MFA before this action".

ユースケース

  • ログイン時に多要素認証を追加する
  • 機密性の高い操作の前に認証要素を追加する
  • アダプティブ認証でリスク対応する
  • コンプライアンス要件に対応する

本文(日本語訳)

Auth0 MFA ガイド

多要素認証(MFA)を追加してユーザーアカウントを保護し、機密性の高い操作に対して追加の本人確認を要求します。


概要

MFA とは

多要素認証(MFA: Multi-Factor Authentication)は、ユーザーがアカウントにアクセスする際に2つ以上の認証要素を提示することを要求する仕組みです。 Auth0 は複数の MFA 要素をサポートしており、機密性の高い操作に対するステップアップ認証も有効化できます。

このスキルを使用する場面

  • ユーザーアカウント保護のために MFA を追加する場合
  • 機密性の高い操作(決済・設定変更など)に追加の本人確認を要求する場合
  • アダプティブ認証(リスクベース認証)を実装する場合
  • コンプライアンス要件(PCI-DSS、SOC2、HIPAA)を満たす必要がある場合

サポートされている MFA 要素

要素 種別 説明
TOTP 所持情報 時間ベースのワンタイムパスワード(Google Authenticator、Authy)
SMS 所持情報 SMS によるワンタイムコード
Email 所持情報 メールによるワンタイムコード
Push 所持情報 Auth0 Guardian アプリによるプッシュ通知
WebAuthn 所持情報 / 生体情報 セキュリティキー、生体認証、パスキー
Voice 所持情報 音声通話によるワンタイムコード
リカバリーコード バックアップ 使い切りのリカバリーコード

主要概念

概念 説明
acr_values 認証時に MFA を要求するパラメータ
amr クレーム Authentication Methods Reference — ユーザーがどの方法で認証したかを示す
ステップアップ認証 初回ログイン後、特定の操作に対して MFA を要求する仕組み
アダプティブ MFA リスクシグナルに基づいて条件付きで MFA を要求する仕組み

ステップ 1: テナントで MFA を有効化する

Auth0 ダッシュボードから設定する

  1. Security → Multi-factor Auth に移動する
  2. 使用したい要素(TOTP、SMS など)を有効化する
  3. ポリシーを設定する:
    • Always — すべてのログインで MFA を要求する
    • Adaptive — リスクベースの MFA
    • Never — MFA を無効化する(代わりにステップアップ認証を使用)

Auth0 CLI から設定する

# 現在の MFA 設定を確認する
auth0 api get "guardian/factors"

# TOTP(ワンタイムパスワード)を有効化する
auth0 api put "guardian/factors/otp" --data '{"enabled": true}'

# SMS を有効化する
auth0 api put "guardian/factors/sms" --data '{"enabled": true}'

# プッシュ通知を有効化する
auth0 api put "guardian/factors/push-notification" --data '{"enabled": true}'

# WebAuthn(ローミング — セキュリティキー)を有効化する
auth0 api put "guardian/factors/webauthn-roaming" --data '{"enabled": true}'

# WebAuthn(プラットフォーム — 生体認証)を有効化する
auth0 api put "guardian/factors/webauthn-platform" --data '{"enabled": true}'

# Email を有効化する
auth0 api put "guardian/factors/email" --data '{"enabled": true}'

MFA ポリシーを設定する

# MFA ポリシーを設定する: "all-applications" または "confidence-score"
auth0 api patch "guardian/policies" --data '["all-applications"]'

ステップ 2: ステップアップ認証を実装する

ステップアップ認証は、すべてのログインに MFA を要求することなく、機密性の高い操作に対してのみ MFA を求める仕組みです。

acr_values パラメータ

認可リクエストに acr_values を含めることで MFA を要求できます:

acr_values=http://schemas.openid.net/pape/policies/2007/06/multi-factor

実装パターン

すべてのフレームワークに共通する基本パターンは以下のとおりです:

  1. ユーザーがすでに MFA を完了しているか確認する(amr クレームを検査)
  2. 完了していない場合、acr_values パラメータを使って MFA を要求する
  3. MFA が検証されたら、機密性の高い操作を実行する

フレームワーク別の完全なコード例は サンプルガイド を参照してください:

  • React(基本パターン・カスタムフックパターン)
  • Next.js(App Router)
  • Vue.js
  • Angular

追加リソース

このスキルは整理しやすくするために複数のファイルに分割されています。

ステップアップ認証のサンプル

全フレームワーク向けの完全なコード例:

  • React(基本パターン・カスタムフックパターン)
  • Next.js(App Router と API ルート)
  • Vue.js(Composition API)
  • Angular(サービスとコンポーネント)

バックエンド検証

バックエンドで MFA ステータスを検証する方法:

  • Node.js / Express による JWT 検証
  • Python / Flask による検証
  • ミドルウェアの実装例

高度なトピック

より高度な MFA 実装パターン:

  • Auth0 Actions を使ったアダプティブ MFA
  • リスクシグナルに基づく条件付き MFA
  • MFA Enrollment API

リファレンスガイド

よく使われるパターンとトラブルシューティング:

  • 30 日間 MFA を記憶させる
  • 高額取引に対する MFA
  • MFA ステータスの表示
  • エラーハンドリング
  • AMR クレームの値一覧
  • テスト戦略
  • セキュリティに関する考慮事項

関連スキル

  • auth0-quickstart — Auth0 の基本セットアップ
  • auth0-passkeys — WebAuthn / パスキーの実装
  • auth0-actions — カスタム認証ロジック

参考リンク

原文(English)を表示

Auth0 MFA Guide

Add Multi-Factor Authentication to protect user accounts and require additional verification for sensitive operations.


Overview

What is MFA?

Multi-Factor Authentication (MFA) requires users to provide two or more verification factors to access their accounts. Auth0 supports multiple MFA factors and enables step-up authentication for sensitive operations.

When to Use This Skill

  • Adding MFA to protect user accounts
  • Requiring additional verification for sensitive actions (payments, settings changes)
  • Implementing adaptive/risk-based authentication
  • Meeting compliance requirements (PCI-DSS, SOC2, HIPAA)

MFA Factors Supported

Factor Type Description
TOTP Something you have Time-based one-time passwords (Google Authenticator, Authy)
SMS Something you have One-time codes via text message
Email Something you have One-time codes via email
Push Something you have Push notifications via Auth0 Guardian app
WebAuthn Something you have/are Security keys, biometrics, passkeys
Voice Something you have One-time codes via phone call
Recovery Code Backup One-time use recovery codes

Key Concepts

Concept Description
acr_values Request MFA during authentication
amr claim Authentication Methods Reference - indicates how user authenticated
Step-up auth Require MFA for specific actions after initial login
Adaptive MFA Conditionally require MFA based on risk signals

Step 1: Enable MFA in Tenant

Via Auth0 Dashboard

  1. Go to Security → Multi-factor Auth
  2. Enable desired factors (TOTP, SMS, etc.)
  3. Configure Policies:
    • Always - Require MFA for all logins
    • Adaptive - Risk-based MFA
    • Never - Disable MFA (use step-up instead)

Via Auth0 CLI

# View current MFA configuration
auth0 api get "guardian/factors"

# Enable TOTP (One-time Password)
auth0 api put "guardian/factors/otp" --data '{"enabled": true}'

# Enable SMS
auth0 api put "guardian/factors/sms" --data '{"enabled": true}'

# Enable Push notifications
auth0 api put "guardian/factors/push-notification" --data '{"enabled": true}'

# Enable WebAuthn (Roaming - Security Keys)
auth0 api put "guardian/factors/webauthn-roaming" --data '{"enabled": true}'

# Enable WebAuthn (Platform - Biometrics)
auth0 api put "guardian/factors/webauthn-platform" --data '{"enabled": true}'

# Enable Email
auth0 api put "guardian/factors/email" --data '{"enabled": true}'

Configure MFA Policy

# Set MFA policy: "all-applications" or "confidence-score"
auth0 api patch "guardian/policies" --data '["all-applications"]'

Step 2: Implement Step-Up Authentication

Step-up auth requires MFA for sensitive operations without requiring it for every login.

The acr_values Parameter

Request MFA by including acr_values in your authorization request:

acr_values=http://schemas.openid.net/pape/policies/2007/06/multi-factor

Implementation Pattern

The general pattern for all frameworks:

  1. Check if user has already completed MFA (inspect amr claim)
  2. If not, request MFA via acr_values parameter
  3. Proceed with sensitive action once MFA is verified

For complete framework-specific examples, see Examples Guide:

  • React (basic and custom hook)
  • Next.js (App Router)
  • Vue.js
  • Angular

Additional Resources

This skill is split into multiple files for better organization:

Step-Up Examples

Complete code examples for all frameworks:

  • React (basic and custom hook patterns)
  • Next.js (App Router with API routes)
  • Vue.js (composition API)
  • Angular (services and components)

Backend Validation

Learn how to validate MFA status on your backend:

  • Node.js / Express JWT validation
  • Python / Flask validation
  • Middleware examples

Advanced Topics

Advanced MFA implementation patterns:

  • Adaptive MFA with Auth0 Actions
  • Conditional MFA based on risk signals
  • MFA Enrollment API

Reference Guide

Common patterns and troubleshooting:

  • Remember MFA for 30 days
  • MFA for high-value transactions
  • MFA status display
  • Error handling
  • AMR claim values
  • Testing strategies
  • Security considerations

Related Skills

  • auth0-quickstart - Basic Auth0 setup
  • auth0-passkeys - WebAuthn/passkey implementation
  • auth0-actions - Custom authentication logic

References

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。