メインコンテンツに移動

年齢認証

k-IDは、以下のシナリオでユーザーの年齢を認証するためのAPIセットを提供します。

APIシナリオ
/age-verification/perform-access-age-verification機能、成熟したコンテンツ、またはプロダクト自体にアクセスする前にユーザーの年齢を認証するため。
/age-verification/perform-trusted-adult-verification検証可能な親の同意を達成するために使用する信頼できる成人(親または保護者)認証を実行するため。
/age-verification/perform-facial-age-estimation顔年齢推定のみを使用して年齢を認証するため。
/age-verification/perform-id-verification政府発行のID認証のみを使用して年齢を認証するため。
/age-verification/perform-age-appealプロダクトへのアクセスを復元する前に、未成年と疑われるユーザーの年齢を認証するため。

年齢認証APIは、リクエストとレスポンスの形式で標準化されています。

リクエストボディ

プロパティ説明必須?
jurisdiction年齢認証が行われる管轄区域はい
criteria年齢認証の基準はい
subject.emailユーザーが他のコンテキストでk-IDでメールアドレスを使用して年齢を認証した場合、ユーザーに再度年齢を推定または証明するよう求める代わりに、元の年齢が返されます。いいえ
subject.claimedAge年齢ゲートでユーザーに年齢を尋ねた場合、年齢推定プロセスに情報を提供するために使用いいえ
subject.id複数の認証方法で複数の失敗した試行を報告するために使用される識別子。これは一時的なセッションIDまたはハッシュ化されたユーザーIDです。いいえ
scenarioId*カスタムscenarioIdはい*

* perform-custom-age-verification APIにのみ適用されます。

サンプル:

{
"jurisdiction": "US-CA",
"subject": {
"email": "user@example.com",
"claimedAge": 23,
"id": "3854909b-8888-4bed-9282-24b74c4a3c97"
},
"criteria": {
"ageCategory": "DIGITAL_YOUTH_OR_ADULT"
}
}

レスポンスボディ

年齢認証APIへの成功したリクエストは、以下のレスポンスを返します。

プロパティ説明
id年齢認証サービスによって生成された一意の認証ID
urlユーザーに提示して自己認証してもらう必要がある年齢認証URL。

サンプル:

{
"id": "7854909b-9124-4bed-9282-24b44c4a3c97",
"url": "https://family.k-id.com/verify?token=eyJhbGciOiJFUzM4NCIsImtpZCI6IjEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJnYW1lLWFwaS5rLWlkLmNvbSIsImF1ZCI6WyJodHRwczovL2ZhbWlseS5rLWlkLmNvbSJdLCJleHAiOjE3Mzg5NTk2MjUsIm5iZiI6MTczNzc1MDAyNSwiaWF0IjoxNzM3NzUwMDI1LCJqdGkiOiI3ODU0OTA5Yi05MTI0LTRiZWQtOTI4Mi0yNGI0NGM0YTNjOTciLCJwaWQiOjk1MTYsInNjbiI6IjI5YTg5YTEyLTJiMmEtNDM1MS04ZTkxLWU1ZDdlNTgwNmFlNyIsInZpZCI6Ijc4NTQ5MDliLTkxMjQtNGJlZC05MjgyLTI0YjQ0YzRhM2M5NyIsImp1ciI6IlVTLUNBIiwiZW1hIjoidXNlckBleGFtcGxlLmNvbSIsImFnZSI6MTMsImZsdyI6ImZhZS1vbmx5IiwiY2F0IjoiZGNhLW9yLWNhIiwiY2FnIjoyM30.gnGqpvAVBmzPCoMPFgW7-Kix2BsC1x7lypnrC4CRmXxqG3u142FyxAkMfHx5476F02kOqQQ3ApI3c05mxYxta_rtwlx1l3NgkCykOp9L6rMw0lGccymbhXipwSUeLmtd"
}

認証結果

ユーザーが年齢認証を正常に完了したか、ユーザーが最大再試行回数に達して成功しなかった場合、年齢認証結果は2つの方法で配信されます。

  1. 登録されたwebhookにVerification.Resultイベントの形式でイベントが送信されます。
  2. 上記のレスポンスボディのURLがiFrameに含まれている場合、親フレームにウィンドウメッセージ(MessageEvent)として送信されます。

ウィンドウメッセージにアクセスする例:

const handleMessage = (event: MessageEvent) => {
const message = event.data;
if (message.eventType === "Verification.Result") {
// 結果を処理するためのコードをここで実行
console.log("eventData", message);
}
};

window.addEventListener("message", handleMessage);

登録されたwebhookは最大再試行回数に達した場合または成功した認証が発生した場合にのみ呼び出されますが、JavaScriptイベントはすべての認証試行に対して発火されます。これは、ユーザーが認証の完了に問題を抱えている場合のユーザーエクスペリエンスを調整したい場合に重要です。

ウィンドウイベントとwebhookイベントのデータ要素には、以下のプロパティが含まれます。

プロパティ説明
idこれが結果である認証ID。
statusユーザーが年齢基準を満たしたかどうかに基づいてPASSまたはFAILステータスを示します。
ageCategoryリクエストで指定された管轄区域でユーザーが属する年齢カテゴリを示します。サポートされる値はadultdigital-youthまたはdigital-minorです
method認証に使用された方法を示します。サポートされる値はid-documentage-estimationage-attestationcredit-cardsocial-security-numberです
failureReason認証が失敗した理由。サポートされる値はage-criteria-not-metmax-attempts-exceeded、またはfraudulent-activity-detectedです。これはstatusFAILの場合にのみ設定されます
age推定または認証された年齢の下限と上限をlowhighとして返します。

サンプル:

{
"eventType": "Verification.Result",
"data": {
"id": "5a58e98a-e477-484b-b36a-3857ea9daaba",
"status": "PASS",
"ageCategory": "adult",
"method": "id-document",
"age": {
"low": 25,
"high": 25,
}
}
}

ウィンドウイベントの使用例:

const handleMessage = (event: MessageEvent) => {
const message = event.data;
if (message.eventType === "Verification.Result" && ) {
if (message.data.status === "PASS") {
window.location.href = `https://www.example.com/success?verificationId=${message.data.id}`
}
if (message.data.status === "FAIL") {
window.location.href = `https://www.example.com/fail?verificationId=${message.data.id}`
}
}
};

window.addEventListener("message", handleMessage);

認証ステータスの確認

JavaScriptとk-ID webhookの両方でイベントを送信することに加えて、認証のステータスをクエリすることも可能です。これは、登録されたwebhookが一定期間到達不可能で、ステータスイベントが送信されなかった場合を処理できるようにするのに役立ちます。認証のステータスを取得するには、/age-verification/get-status APIを使用します。返されるデータ構造は、webhookに送信されるデータ要素と同一です。

サポートされる認証方法

k-IDは、プロダクト、機能、またはコンテンツへのアクセスのためにユーザーの年齢を認証する複数の方法を提供します。

方法説明
age-estimationプライバシー保護顔年齢推定を使用してユーザーの年齢を推定します。生体認証情報はユーザーのデバイスから離れません。
id-verificationパスポート、運転免許証などの政府発行IDカードを使用してユーザーの年齢を認証します。
age-attestation認証された親が子供の年齢を証明できます。

k-IDは、信頼できる成人認証専用の年齢証明の特定の方法も提供します。さらに、顔年齢推定などの一部の方法は、信頼できる成人認証のために一部の管轄区域では許可されていません。

方法説明
credit-card成人が有効なクレジットカードを提供して契約年齢であることを証明できるようにします。
social-security-number社会保障番号と個人情報の組み合わせを使用して年齢を証明します。

認証シナリオ

k-IDは、APIを通じてシナリオと呼ばれる様々な年齢保証ワークフローをサポートしています。各シナリオは、ユーザーのプライバシーを維持し、地域の規制に準拠しながら、特定のユースケースを満たすように設計されています。以下はデフォルトの認証シナリオです:

  • アクセス年齢認証: プロダクトまたはサービスへのアクセスを許可する前にユーザーの年齢を認証し、年齢制限への準拠を確保します。
  • 年齢アピール: 以前に未成年としてフラグが立てられたユーザーが正しい年齢を認証し、アクセスを回復できるようにします。
  • 信頼できる成人認証: 親または保護者が子供のアカウントを管理するための信頼できる成人としてのステータスを認証できるようにします。

各シナリオには、デフォルトで1つ以上の認証方法が設定されています。

認証シナリオデフォルトの認証方法
アクセス年齢認証顔年齢推定、ID認証、親の年齢証明
年齢アピールID認証、親の年齢証明
信頼できる成人認証顔年齢推定、ID認証、クレジットカード、社会保障番号

カスタムシナリオを作成できる場合、それぞれにIDがあります。IDは/perform-custom-age-verification APIのscenarioIdパラメータとして渡されます。

以下はk-IDからのサンプル認証UIです サンプル認証UI

ユーザーは利用可能な認証方法を使用して年齢を認証できます。

年齢認証ユーザーエクスペリエンスのテスト

  • アクセス先:https://family.k-id.com/demo
  • 以下を入力してください
    • デモタイプとしてAccess Age Checkを選択。
    • メールは不要
    • 管轄区域(国)を選択
    • 年齢カテゴリをAdultに設定
  • Startをクリック

以下が表示されます: 年齢認証のテスト

お好みの認証方法を選択し、指示に従って認証を完了してください。

年齢認証統合のテスト

k-ID APIを呼び出すコードを書く前に、APIキーとAPIドキュメントを使用して顔年齢推定を自分で試すことができます。

まず、簡単なk-ID API呼び出しの手順に従ってください。

次に、同じブラウザウィンドウを使用して、/age-verification/perform-facial-age-estimationを呼び出します。これを行うには、リストでこのAPIをクリックします。 サンプル年齢認証APIリクエスト

次にTry it outボタンをクリックし、Executeボタンをクリックします。

サンプル年齢認証APIレスポンス

アプリまたは別のブラウザウィンドウで使用されるiframeのURLは、レスポンスのurlパラメータに含まれています。このURLをブラウザにコピーしてください。以下のようなものになります:

https://family.k-id.com/verify?token=eyJhbGciOiJFUzM4NCIsImtpZCI6IjEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJnYW1lLWFwaS5rLWlkLmNvbSIsImF1ZCI6WyJodHRwczovL2ZhbWlseS5rLWlkLmNvbSJdLCJleHAiOjE3Mzg5NDg0NzAsIm5iZiI6MTczNzczODg3MCwiaWF0IjoxNzM3NzM4ODcwLCJqdGkiOiJjYzAwYzQyZC03NjllLTRmZjItYmRjMy1lOTBiZDFkZmI0YmMiLCJwaWQiOjk1MTYsInNjbiI6IjI5YTg5YTEyLTJiMmEtNDM1MS04ZTkxLWU1ZDdlNTgwNmFlNyIsInZpZCI6ImNjMDBjNDJkLTc2OWUtNGZmMi1iZGMzLWU5MGJkMWRmYjRiYyIsImp1ciI6IlVTLUNBIiwiZW1hIjoidXNlckBleGFtcGxlLmNvbSIsImFnZSI6MTMsImZsdyI6ImZhZS1vbmx5IiwiY2F0IjoiZGNhLW9yLWNhIiwiY2RiIjoiMjAwNS0wNC0xNSJ9.99KDU8lsP7eKEF0nmT8hvPPT-UFXMeMU0FEaJcvV4IMl76dHhjVDXEBneqm6CAGUT8W7SjUtzizpkFhiLNKfwiwh4rHe_Sr6MHjV3nTisNxvBDSlVp-4I3Jino0SohPA

次に指示ページが表示されます: サンプル年齢認証指示

Startボタンをクリックして、自分で顔年齢推定を試してください。セキュリティのために必要なライブネスチェックに注意してください。スキャンの結果は、JavaScriptイベントとwebhook呼び出しとして送信されているため、このビューでは視覚的に表示されません。このデモンストレーションでは、カメラ情報はデバイスから離れません。