パスワードなしのログイン

パスワードなしのログインとは、パスワードを使わずに買い物客の本人確認を行う方法です。この方法により、フィッシングや総当たりパスワードクラッキングなどのサイバー攻撃から保護できます。パスワードなしのログインシステムでは、マジックリンク、ワンタイムコードなど、通常のパスワードよりセキュアな認証メソッドを採用しています。

このガイドでは、Shopper Login and API Access Service (SLAS) を使用して、Web サイトまたはアプリにパスワードなしのログインを実装する方法を学びます。

SLAS を使用したパスワードなしのログインがどのように機能するかを理解するため、プロセスの概要を見てみましょう。

パスワードなしのログインプロセスダイアグラム

  1. 買い物客がパスワードなしのログインをリクエストします。
  2. アプリは authorizePasswordlessCustomer エンドポイントを呼び出し、コールバック URI を提供します。
  3. SLAS は、コールバック URI に対して HTTP POST リクエストを作成します (買い物客の連絡先情報と、買い物客の認証に使用できる 8 桁のパスワードなしのトークンを含む)。
  4. アプリは、E メール、SMS、または別のメカニズムを介して買い物客にパスワードなしのトークンを送信します。
  5. 買い物客は、リンクをクリックするか手動で入力することにより、パスワードなしのトークンをアプリに提供します。
  6. アプリは getPasswordLessAccessToken エンドポイントを呼び出して買い物客を認証し、SLAS アクセスおよびリフレッシュトークンを取得します。
  7. アクセストークンは、買い物客に代わって承認されたリクエストを行うために使用できます。
  1. パブリックにアクセス可能なコールバック URL (ECOM インスタンス、Managed Runtime 環境、独自サーバーなど)。パブリックコールバック URL がない場合は、テスト目的で Webhook.site などのサービスを使用できます。
  2. E メールや SMS など、パスワードなしのトークンを買い物客に共有するメカニズム。
  3. パスワードなしのログインで動作するように構成された SLAS プライベートクライアント。

SLAS プライベートクライアントをまだ作成していない場合は、Shopper API の認可の指示に従って作成してから、このガイドに戻ってください。パスワードなしのログインは、プライベートクライアントでのみ使用可能です。

パスワードなしのログインを使用できるようにプライベートクライアントを構成するには、SLAS Admin UI で以下の手順を実行します。

  1. 上部のナビゲーションで、Clients (クライアント) をクリックします。
  2. 以前に作成したクライアント ID の横にある Edit (編集) リンクをクリックします。
  3. 「Scopes」 (範囲) フィールドに、sfcc.pwdless_login を追加します。
  4. 「Callback URL」 (コールバック URL) フィールドには、先ほど用意したコールバック URI を入力します。

「Redirect URL」 (リダイレクト URL) フィールドとは異なり、「Callback URL」フィールドではワイルドカードを使用できません。コールバックには、プロトコルを含む完全な URL を常に含めてください。

www.example.com でホストされているストアフロント用のパスワードなしのログインフローを構築しているとします。買い物客は、ユーザー名を入力し、E メールでパスワードなしのログインをリクエストすることでフローを開始します。

authorizePasswordlessCustomer エンドポイントをリクエストします。

user_id パラメーターは買い物客の実際のログイン認証情報 profile.credentials.login でなければなりません。ログイン認証情報は E メールアドレスでも可能ですが、profile.email と同じであることは保証されません。

SLAS は、指定されたコールバック URI に対して HTTP POST リクエストを作成します。リクエストボディは JSON ペイロードです。

これには、顧客の E メールアドレスと電話番号の両方が含まれます。B2C Commerce システムでは、phone の値が phoneMobile の値に設定されます。phoneMobile がない場合、SLAS は代わりに phoneHome または phoneBusiness の値を使用します。

token の値は、買い物客に送信できるパスワードなしのトークンです。

アプリは、パスワードなしのトークンを E メールまたは SMS で買い物客に送信します。

トークンは最大 10 分間有効です。トークンの有効期限が切れた場合は、パスワードなしのログインフローを再開する必要があります。

買い物客は、リンクをたどるか、手動でパスワードを入力して、パスワードなしのトークンをアプリに提供する必要があります。

getPasswordLessAccessToken エンドポイントにパスワードなしのトークンをアクセストークンと交換するようリクエストします。

これで、SLAS が返すアクセストークン (Shopper JWT) を使用して、Shopper API を呼び出せるようになりました!

Storefront Reference Architecture (SFRA) でパスワードなしのログインを使用するには、コミュニティで管理されている PasswordLess Login カートリッジを使用できます。

コードにアクセスするには、Salesforce Commerce Cloud GitHub にアクセスする必要があります。