アカウント保護(ログイン時判定)
概要
Login APIは、顧客がログインする際に使用され、不正なユーザーが正規ユーザーのアカウントにアクセスしたり、個人情報、アカウントに保存されている決済手段やポイントにアクセスするのを防ぎます。
主な使用ケース
Login APIは、以下のシナリオに使用できます:
- アカウント乗っ取り (ATO): 不正者が盗まれた認証情報を使用してユーザーアカウントにアクセスするのをを防ぎます。
- MFA最適化: 正当なユーザーへの多要素認証(MFA)摩擦を減らします。
- ボットによる認証情報の総当たり攻撃: 不正者が盗まれたユーザー名とパスワードのペアを使用して不正アクセスを試みる自動攻撃からアカウントを保護します。
- 拡張セッション: ユーザーが再認証を必要とせずに長時間ログインを維持できるようにし、利便性とユーザー体験を向上させます。
統合手順
専用のForterポータルで、サンドボックス環境と本番環境それぞれのJavaScriptスニペットを取得できます。ネイティブモバイルアプリの場合は、ForterのネイティブSDKのダウンロードリンクが提供されます。取得したJSスクリプトをサイトの適切なページに貼り付けるか、関連するモバイルアプリの画面でモバイルSDKのメソッドを呼び出してください。これにより、顧客の重要な行動データを非同期で収集できます。JavaScriptが生成するトークンやモバイルSDKが生成するmobileUIDは、Account Login APIのリクエストボディに含める必要があります。
APIでログインの判定をリクエスト
Forterの LoginAPI は、スムーズなログイン(フリクションレスログイン)を承認する判定を提供したり、不審なアクティビティが検出された場合に多要素認証(MFA)を推奨したりすることができます。ボットなどの不正トラフィックによる負荷を考慮し、認証に成功したログイン(パスワードが正しいもの)のみを判定することを推奨しています。(多要素認証が必ず行われ得る場合は、認証成功したログインのみ判定)
ログインAPIリクエスト
主要データポイントは次のとおりです:
- accountId: 加盟店サイトにおける顧客のアカウントID(ユーザーのメールアドレスではなく)。アカウントIDが利用できない場合はNO_ACCOUNT_IDを送信してください。
- userInput: ユーザー入力の詳細(通常はメールアドレスか、電話番号)
- connectionInformation: IPアドレス、ユーザーエージェント
- loginMethod: パスワード、SMSなど
{
"accountId": "e520-ba9a-367-60b",
"eventTime": 1415287568000,
"connectionInformation": {
"customerIP": "10.0.0.127",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64)",
"forterTokenCookie": "2315688945984"
},
"loginMethodType": "PASSWORD",
"loginStatus": "SUCCESS",
"channelType": "WEB",
"userInput": {
"inputType": "EMAIL",
"email": "[email protected]"
}
}Login APIレスポンス
レスポンスには、Forterの判断と推奨事項(存在する場合)、および加盟店が追加情報を送信する際に保存・使用すべき correlationIdが含まれています(例:追加の本人確認が推奨された場合のMFA結果)。
重要なフィールド:
- forterDecision: Forterの判定。以下のいずれかの値を取ります:
- "APPROVE":ログインが承認された場合。ユーザーのアカウントアクセスを許可します。
- "DECLINE":ログインが拒否された場合。ユーザーのアカウントアクセスを拒否します。
- "VERIFICATION_REQUIRED":追加の本人確認が必要な場合。メール・SMSなどを通じた追加認証をユーザーに要求してください。(多要素認証をForterの判定に従って部分利用したい場合のみ返却されます。多要素認証を全てのログインに利用する、あるいは、全く利用しない場合には、返却されません。)
- "NOT_REVIEWED":未審査。
- correlationId: Login APIのリクエストと、認証試行結果を紐付けるための一意の識別子。Authentication result APIのAdvancedAuthenticationMethodにセットします。
{
"forterDecision": "APPROVE",
"decisionReason": "",
"accountId": "e520-ba9a-367-60b",
"correlationId": "HGJ7512345H3DE",
"recommendation":""
}{
"forterDecision": "VERIFICATION_REQUIRED",
"decisionReason": "",
"accountId": "e520-ba9a-367-60b",
"correlationId": "HGJ7512345H3DE",
"recommendation": "EMAIL_VERIFICATION",
"verificationMethod":{
"verificationId": "88yr28r890u",
"correlationId": "e520-ba9a-367-60b",
"type": "OTP_EMAIL",
}
}多要素認証の結果をForterに送る
Authentication Result API は、以前のLogin APIリクエストでMFAが要求された後、提供された correlationId を使用してForterに認証結果を通知するために使用します。このリクエストに対して判断は返されませんが、Forterの判定モデルの継続的な改善のために必要です。
Authentication Result APIリクエスト
重要なフィールド:
- accountId: 加盟店サイトにおける顧客のアカウントID
- eventTime: イベントが発生した時刻(ミリ秒単位)
- additionalAuthenticationMethod.correlationId: 追加認証を推奨したForter APIレスポンスの一部として提供された、Forter固有の識別子。ログイン試行と認証結果を紐付けるために使用します。
- additionalAuthenticationMethod.verificationOutcome: 多要素認証の結果に応じて異なる値を取ります。詳細については、認証結果 APIリファレンスセクションをご覧ください(例:["SUCCESS", "FAILURE", "NONE_ATTEMPTED"])
{
"accountId": "e520-ba9a-367-60b",
"eventTime": 1415287568000,
"connectionInformation": {
"customerIP": "10.0.0.127",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36",
"forterTokenCookie": "2315688945984"
},
"channelType": "WEB",
"additionalAuthenticationMethod": {
"verificationOutcome": "SUCCESS",
"correlationId": "87363864834",
},
}Authentication Result APIレスポンス このAPIはForterの意思決定モデルに補足情報を提供するためだけに使用されるため、返される判断は常に "NOT_REVIEWED" となります。