ベストプラクティス
ユーザーをどのように認証するかを設計する際は、セキュリティとユーザーエクスペリエンスの両方を考慮することが重要です。複数の主要な認証要素を提供したり、認証時に複数の要素を必須にしたりすることで、その両方を実現できます。- ユーザーはどこで認証情報を入力しますか?
- ユーザーの認証情報をどのように安全に保ちますか?
- 認証システムをどのように維持しますか?
- ユーザーにパスワード認証をどのように提供しますか?
- ハッカーがユーザーになりすましてログインしようとするのをどのように防ぎますか?
- 異なる種類のアプリケーションで認証をどのように実装しますか?
- 異なる言語背景を持つユーザーがログインしやすいようにするにはどうしますか?
- 既存のレガシー認証システムから移行する際に、どのように優れたユーザーエクスペリエンスを提供しますか?
- アプリケーションを Auth0 と統合する際には何を考慮すべきですか?
- ユーザーは既存のソーシャルアカウント (例: Facebook や Google) を使ってログインできますか?
- 多要素認証を提供する必要がありますか?
- ユーザーが事前にログインする手段を持たないサービスがある場合、どうしますか?
- 同じユーザーのを、ある API から別の API に渡せますか?
Universal Login
ベストプラクティス
複数のアプリケーションがある場合のベストプラクティスは、ユーザーを認証するために一元化された場所へリダイレクトすることです。Auth0 では、これは Universal Login を活用することを意味します。Universal Login では、SSO を含む多くのセキュリティ面およびユーザー体験面でのメリットが標準で提供されます。- アプリケーションからリダイレクトする方法とタイミングを決定します。
- Auth0 の設定で、適切なブランディングおよび/またはカスタマイズした HTML を設定します。
- 認可サーバーからのレスポンスを受信して処理するようにアプリケーションを設定します。
username とパスワードによる認証
ベストプラクティス
認証情報を一元化されたログインページでのみ収集することで、ユーザーの秘密情報が漏えいする可能性のある箇所を減らせます。また、不要に認証情報を収集する必要も少なくなります。詳細については、Universal Login を参照してください。アプリケーション統合
匿名アクセス
- すでにログインしたことがあり、その後アプリケーションに戻ってきたのか、または
-
今回初めてアプリケーションにアクセスする場合:
- 同じ Auth0 テナントを使用している別のアプリケーションにすでにアクセスしたことがあるか、
- このデバイスまたはブラウザーで過去に認証したことがあるか (または長期間認証していないか) 。
保護されたエンドポイントへのディープリンク
ベストプラクティス
- 機密クライアント、非機密クライアント、またはその両方をサポートしていること
- ディスカバリーエンドポイント による設定、または明示的なインライン設定をサポートしていること
- 有効期限、署名、クレーム、スコープを含むトークンの検証をサポートしていること
- 必要に応じて、 をサポートしていること
ユーザーの認証
- 共有APIを呼び出すために、アクセストークンも必要ですか?
- アプリケーションはシングルページアプリケーションで、IDトークンのみが必要ですか? 詳細については、PKCEを使用した認可コードグラントを参照してください。
- アプリケーションはネイティブアプリケーション (モバイルまたはデスクトップ) ですか? また、リフレッシュトークンが必要ですか? 詳細については、PKCEを使用した認可コードグラントを参照してください。
攻撃対策
ベストプラクティス
異常検知は Auth0 によってバックグラウンドで処理され、製品に強力なセキュリティ機能を提供します。これを利用する場合は、ユーザーへのメール配信を有効にする前に、Email Provider を設定し、Email Templates を構成しておくようにしてください。レガシーシステムとの SSO
- レガシー SSO システム内の既存の IDプロバイダー を更新し、ログイン時に Auth0 にリダイレクトするようにします (例: SAML を使用) 。
- Auth0 からレガシー SSO システムにリダイレクトしてログインさせます。これには、Auth0 でレガシーシステムを IdP として設定する必要があります (つまり、SAML または OIDC のいずれかを使用します) 。
ベストプラクティス
レガシーシステムで SSO をサポートすると複雑さが増す可能性はありますが、Auth0 との統合時に、よりシームレスなユーザー体験を実現するうえで有効な場合があります。この方針で進める予定であれば、早い段階から計画しておくことで、実現できる可能性を高められます。すでに一元化されたサービスで SSO を導入していない場合は、それを追加するための複雑さは、得られる利点に見合わない可能性が高いでしょう。ベストプラクティス
ソーシャルログインは非常に有用な機能ですが、複数のサインイン方法を提供する場合は、顧客が実際に複数の方法を使ってサインインする可能性を考慮する必要があります。デフォルトでは、Auth0 の各ユーザーアイデンティティにはそれぞれ個別のユーザープロファイルがあるため、1 つのユーザープロファイルに複数のアイデンティティを関連付ける効果的な方法として、Auth0 のユーザーアカウントのリンク機能を検討することをお勧めします。多要素認証 (MFA)
ベストプラクティス
顧客向けアプリケーションでは、ユーザーに第 2 要素の利用を強制するのではなく、第 2 要素を追加する選択肢を提供するのが一般的です。詳しくは、ユーザーに MFA を追加する選択肢を提供する を参照してください。- Auth0 Guardian: Push 通知の生成と、リクエストを許可または拒否するためのアプリケーションの両方を提供するサービスです。Push は、ユーザーが事前登録したデバイス (通常はモバイル端末またはタブレット) に通知を送信し、ユーザーはボタンを押すだけで直ちにアカウントアクセスを許可または拒否できます。
- Time-based One-Time Password (TOTP): Google Authenticator などのデバイスを登録すると、そのデバイスが一定時間ごとに変化するワンタイムパスワードを生成し、それを第 2 要素として入力してユーザーアカウントを検証できます。
- SMS: SMS でワンタイム code を送信し、ユーザーは認証を完了する前にその code の入力を求められます。
- Voice: 電話でワンタイム code を伝え、ユーザーは認証を完了する前にその code の入力を求められます。
- Duo: Duo アカウントを多要素認証に使用できます。
- Email: メールアドレスのアカウントを多要素認証に使用できます。