https://s3.amazonaws.com/a.storyblok.com/f/270183/118416/4643a938e9/blog_strong-customer-authentication_1200x600-2.png

アプリケーションに強力なPSD2認証を追加する

最終更新日 May 4, 2021

所要時間:1 分

オンラインでの買い物が増えるにつれ、詐欺や不正決済の危険性が高まっている。

このような状況を受け、欧州ではオンライン決済の認証に関する新たな基準「Secure Customer Authentication」が導入され、PSD2(Payment Services Directive version 2)とも呼ばれている。

PSD2では、オンライン決済に追加のセキュリティ要素が導入されます。ユーロで取引を行う場合、当社の Verify APIを使用して、アプリケーションにこの追加要素を実装することができます。

安全な顧客認証について

セキュアな顧客認証とは、より大きな取引額に対して複数の認証タイプを使用することを確実にすることである(技術的な詳細については、以下の小冊子を参照されたい)。 技術的な詳細も入手可能)。要するに、トランザクションには 二つのリストから 3つの要素が含まれていなければならない:

  • パスワードまたはPIN(ユーザーが知っているもの 利用者が知っている)

  • 指紋または顔/目のスキャン(ユーザーが )

  • 電話やハードウェアトークンからの情報(顧客が持っているもの からの情報)

Verify API の PSD2 機能を使用することは、上記のリストの 3 番目のオプションを実装する簡単な方法です。

Verify API PSD2の仕組み

支払いを承認するために、APIはユーザーのアカウントに記録されている電話番号にコードを送信する。

認証は、テキストメッセージ、電話、または通常、可能な限り多くのユーザーに到達するために両方の組み合わせで行うことができます。ユーザーは、取引に関する情報(支払先と支払額)と共にピンを受け取る。

Screenshot from phone with message: Your code 2393 is for payment to Acme Inc. in the amount of 12.34€. Valid for 5 minutes

その後、ユーザーは受け取ったPINを入力する。これがVerify APIに送り返され、PINコードが正しいかどうかチェックされる。もし正しければ、リクエストは確認され、支払いに進むことができる。

Verify API PSD2の実装

私たちは いくつかの異なる技術スタックを使用していますが、非常に包括的なものにするために、これらの例では cURL.

PINコードを送信して支払いを確認する

最初のステップは、顧客の携帯電話にコードを送信し、支払額と支払先を確認することである。メッセージが確実に顧客に届くように、メッセージにはPINコードが含まれている。

APIリファレンス PSD2コードを送信するためのAPIリファレンスはこちらを参照してください。最も単純なケースでは、cURLリクエストは次のようになります:

curl -X POST "https://api.nexmo.com/verify/psd2/json" \
-d api_key=API_KEY -d api_secret=API_SECRET \
-d number=447700777000 -d payee="Acme, Inc" \
-d amount=12.34

交換 API_KEYAPI_SECRETをあなたの認証情報に置き換え、PINを送信する電話番号も入力してください。 +記号のない国際形式でなければなりません。

この場合、暗証番号はまずSMSで送信される。ユーザーが数分以内に正しい暗証番号を入力しなかった場合、自動音声でその情報を伝える。

両方のアプローチを持つことで、より多くのユーザーにリーチすることができます。 ワークフローを選択することもできます。

リクエストは request_id.次のステップで必要になるので、これを保存してください!

PINコードの確認

ユーザが受け取ったPINコードを送信すると、Vonage Verify APIのエンドポイントを呼び出すことで、そのPINコードが正しいことを確認できます。 /checkエンドポイントを呼び出すことで確認できます。

チェック・エンドポイントの チェック・エンドポイントのAPIリファレンス・ドキュメントのAPIリファレンス・ドキュメントを参照してください。また コードサンプルがあります。cURLリクエストは以下のようになります:

curl -X POST "https://api.nexmo.com/verify/check/json" \
-d api_key=API_KEY -d api_secret=API_SECRET \
-d request_id=abcdef0123456789abcdef0123456789 -d code=1234

もう一度 API_KEYそして API_SECRETをあなたの認証情報で置き換え、前のステップで返された request_id前のステップで返されたパラメータ codeパラメータは、ユーザーに送られたピンコードでなければなりません。

成功すれば、レスポンスは statusが表示され、ユーザが支払いを承認したことを確信できます。

次のステップ

この投稿では、Secure Customer Authenticationの内容と、アプリケーションへの実装方法の例について説明しました。次のステップに役立つリソースをいくつかご紹介します:

シェア:

https://a.storyblok.com/f/270183/250x250/e3d3b71060/lornajane.png
Lorna Mitchellヴォネージの卒業生

ローナはブログ癖のあるソフトウェア・エンジニアだ。彼女は言葉とコードを同等に扱おうとしている。