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