验证方法
年龄验证是数字合规的关键组成部分,确保用户满足访问某些内容、功能或服务的最低年龄要求。这些验证方法在 CDK(Compliance Development Kit)的所有支持流程中使用。k-ID 的年龄验证方法有两个主要目的:验证用户的年龄以确定对适合年龄的功能或内容的访问,以及验证用户是可信成人,当数字未成年人寻求可信成人同意时。
k-ID 提供一套全面的年龄验证方法,平衡安全性、用户体验和法规合规性。通过利用多个验证提供商和技术,k-ID 根据司法管辖区要求和用户情况自动选择最合适的验证方法。
k-ID 验证的工作原理
k-ID 的年龄验证系统灵活且智能,根据司法管辖区要求、用户人口统计和所需的保证级别自动选择各种验证技术。您可以通过 Compliance Studio 配置启用哪些验证方法。
在 Compliance Studio 的 Assurance and Verification 标签页下,可将其中列出的任意验证方法设为 仅作为备选。启用、禁用与 仅作为备选 对该标签下的所有验证方法均适用。设为 仅作为备选 时,仅当用户已尝试另一种方法且该尝试未产生年龄信号(未得出明确的年龄判定)时,才会提供该方法。该标签的界面说明与相关设置请参阅成人验证指南。
该系统以隐私为中心。k-ID 不存储验证过程中的私人数据或图像。它只是确认用户是否根据其司法管辖区的要求满足定义的年龄阈值(成年人或数字青年),在保持强大的验证能力的同时最小化数据收集。
通用年龄验证方法
这些验证方法在多个司法管辖区可用,并为年龄验证要求提供广泛覆盖。
📄 ID 扫描验证
ID 扫描验证使用 Veratad 提供的先进文档验证技术来验证政府颁发的身份证明文件,包括护照、驾驶执照和国民身份证。
用户只需使用设备摄像头拍摄其 ID 文档。系统分析文档以验证真实性并提取年龄信息。增强的安全实施可能还需要面部扫描以确认用户的面部与 ID 文档中的照片匹配。
这种方法非常有效,因为政府颁发的 ID 在颁发前经过严格的验证过程,使它们成为可靠的年龄来源。该技术检测安全特征和篡改迹象,提供强大的防欺诈保护。
📸 面部年龄估计扫描
面部年龄估计提供了一种用户友好的验证方法,用户通过使用设备摄像头扫描面部来验证其年龄。这种隐私保护技术使用 AI 来估计年龄类别,而不存储生物识别数据。
过程很简单。用户看向摄像头,系统在几秒钟内提供年龄估计。该技术提供用户年龄的估计,建议使用年龄类别(成年人或数字青年)作为标准,而不是精确年龄。
🔑 AgeKey
AgeKey 为重复用户提供最低摩擦体验。成功完成任何其他验证方法后,用户可以创建一个 AgeKey,作为未来验证的可重用年龄凭证。用户也可以直接在 AgeKey.org 创建 AgeKey。
一旦生成,此安全凭证允许用户在后续交互中通过共享其 AgeKey 而不是重复完整的验证过程来验证其年龄。您的 AgeKey 本地存储在您的设备上,并受您的生物识别保护(Face ID、指纹或设备密码)。这显著减少了摩擦,同时为已经验证过一次的用户保持安全性和隐私性。
💳 信用卡验证
信用卡验证通过 Stripe 的安全支付处理提供年龄验证,特别是在卡所有权仅限于成年人的司法管辖区。用户提供信用卡信息,可能会进行小额收费以验证他们的卡是真实的。如果收费,此金额将在 14 个工作日内退还。
该系统使用 Stripe 的成熟支付基础设施,确保以最高安全标准处理财务数据。此方法仅允许使用信用卡进行验证,因为借记卡和预付礼品卡可供年轻用户使用。
测试信用卡验证集成
当您的产品处于测试模式时,使用提供的 Stripe 测试卡号 来覆盖所有测试场景。
📧 电子邮件地址年龄估计
电子邮件地址年龄估计仅使用电子邮件地址来估计用户的年龄。用户提供其电子邮件并完成一次性密码验证以确认所有权。系统分析与电子邮件地址关联的数字足迹以估计年龄类别。
此方法通过检查与电子邮件地址关联的数字历史来工作,这可以指示年龄范围。该过程通常在几秒钟内完成,并包括防欺诈措施。它不需要 ID 扫描、自拍或信用卡信息,使其成为年龄验证的简单替代方案。
区域特定验证方法
某些年龄验证方法针对特定司法管辖区定制,利用这些地区独特的数字身份基础设施和监管框架。
🇦🇺 ConnectID(澳大利亚)
ConnectID 是由 Australian Payments Plus 运营的澳大利亚数字身份交换。该服务通过将用户与他们已经建立关系的身份提供商(如他们的银行)连接来启用年龄验证。
用户选择他们首选的身份提供商(通常是他们的银行)并使用其现有银行凭据进行身份验证。然后他们同意共享特定信息,例如确认他们超过 18 岁,而不透露其他个人详细信息。
ConnectID 被澳大利亚政府认可为身份交换,并在澳大利亚可信数字身份框架内运营。该服务由主要澳大利亚银行支持,作为数据桥接运行而不存储个人信息。
测试 ConnectID 集成
当您的 k-ID 产品处于测试模式时,ConnectID 在验证过程中呈现虚构的银行供选择。要完成模拟验证,您可以使用以下任何测试账户凭据:
| 银行 | 用户名 | 密码 |
|---|---|---|
| Capital | dev+user1@connectid.com.au | T3stUs3rs! |
| ABank | dev+user2@connectid.com.au | T3stUs3rs! |
| National | dev+user3@connectid.com.au | T3stUs3rs! |
| WBank | dev+user4@connectid.com.au | T3stUs3rs! |
这些测试账户允许您模拟完整的 ConnectID 验证流程,并在进入实时模式之前验证您的集成。
对于移动应用集成,您可以使用 ConnectID Mock Bank C 测试应用来测试完整的重定向流程。这些应用模拟移动应用指南中描述的第三方应用重定向行为:
在移动应用程序中测试 ConnectID 验证时,请在设备上安装这些测试应用以验证完整的重定向流程。
🇺🇸 社会保障号验证(美国)
对于美国用户,社会保障号验证通过使用政府数据系统提供强大的年龄验证。用户提供其社会保障号的后四位数字以及出生日期,这与权威政府数据库交叉引用以确认身份和年龄。
此方法对于可能没有驾驶执照或照片身份证明的用户很有价值,提供了一个依赖广泛持有的政府颁发凭证的包容性验证选项。
测试社会保障号验证集成
当您的 k-ID 产品处于测试模式时,您可以使用以下测试数据来触发成功的验证:
| 名字 | 姓氏 | 生日 | SSN(后4位) |
|---|---|---|---|
| Barbara | Miller | 1974-08-21 | 5698 |
此测试数据允许您模拟完整的社会保障号验证流程,并在进入实时模式之前验证您的集成。
🇸🇬 Singpass(新加坡)
Singpass 是新加坡的国家数字身份系统,使用户能够进行身份验证并同意与依赖方共享已验证的属性。对于年龄验证,用户使用 Singpass 进行身份验证并同意共享其出生日期 (DOB)。k-ID 使用 DOB 来确定用户是否满足配置的年龄阈值,避免存储不必要的个人数据。这利用了 Singpass 的可信政府支持生态系统和强大的安全控制。
🇰🇷 KISA 身份验证(韩国)
韩国通过韩国互联网与安全局 (KISA) 指定的方法支持实名和年龄验证。平台可以通过以下选项之一请求用户验证:手机(运营商)验证、信用卡或公共证书。对于年龄检查,提供商返回用户的出生日期 (DOB),k-ID 使用它来确定用户是否满足所需的年龄阈值。这些方法在韩国的实名验证制度下标准化,并在在线服务中广泛使用。
🇧🇷 CPF 验证(巴西)
CPF(Cadastro de Pessoas Físicas)是巴西联邦税务局(Receita Federal)管理的国家纳税人登记制度。每位巴西公民和居民都拥有与其身份绑定的唯一 CPF 号码。对于年龄验证,用户提供其 CPF 号码,系统将与政府登记数据库进行验证以确认个人身份和年龄。经过验证的出生日期随后用于确定用户是否满足配置的年龄阈值。这利用了巴西广泛采用的国家身份识别系统,为巴西用户提供了一种可靠且熟悉的验证方式。
测试 CPF 验证集成
在使用测试模式时,您可以使用以下测试数据触发成功或失败的验证。
- 输入凭据并提交。
- CPF 号码:(请参阅以下凭据选项)
- 最后,您将看到验证会话的测试数据。
| CPF 号码 | CPF 状态 | 验证结果 |
|---|---|---|
| 40442820135 | Regular | ✅ 成功 |
| 07691852312 | Pending Regularization | ✅ 成功 |
| 12345678909 | Regular(12岁) | ⚠️ 不确定(未满18岁标准)/ ❌ 失败(18岁及以上标准) |
| 40532176871 | Suspended | ❌ 失败 |
| 01648527949 | Canceled | ❌ 失败 |
| 98302514705 | Nullified | ❌ 失败 |
| 05137518743 | Deceased | ❌ 失败 |
测试和开发考虑
k-ID 为构建和运行您的集成提供了两种模式:
- 测试模式:使用提供商的测试凭据(例如测试卡和测试 ID)模拟 PASS、FAIL 及具体失败原因等结果。由于输入和提供商响应都是模拟的,测试模式无法为真实用户提供经过验证的真实结果,因此不得用于生产流量。
- 实时模式:针对真实提供商和权威数据源来验证真实用户。用户必须提供真实凭据,结果会反映提供商返回的用户实际出生日期或年龄判定。
测试模式与实时模式的用户体验和响应形态(包括 Webhook 和客户端事件)完全一致,因此您可以安全地构建、演练错误路径并验证端到端处理。切换到实时模式后,模拟功能将被关闭,最终用户只能使用真实的验证方法。有关更全面的测试策略以及如何调用 API,请参阅测试指南。
模拟和真实提供商
当您的产品配置了测试模式 API 密钥时,Family Connect 验证流程会在小部件顶部显示一个 TEST MODE 工具栏。此工具栏在实时模式下从不显示,对真实最终用户也不可见。
工具栏包含一个在两条路径之间切换的开关:
- Mock Providers(默认):小部件用内置模拟器替换每个提供商的 UI,让您无需联系真实提供商即可驱动验证结果。
- Real Providers:每种验证方法都会打开其真实沙箱集成(例如 Credit Card 使用 Stripe、ConnectID 使用 Mock Bank、Veratad 测试记录)。使用此路径针对正在运行的提供商沙箱验证端到端集成。
一旦某个验证方法正在进行中,开关会被锁定,因此您不能在流程中途切换。
使用 Mock Providers
Mock Providers 激活时选择某个方法会打开一个带有三组控件的模拟器屏幕。
Context 卡片。 显示来自您产品所在司法管辖区配置的相关年龄阈值,以便您了解提交需要达到的条件:
- 目标验证年龄。
- 司法管辖区(例如
US-CA)。 - 民事年龄和数字同意年龄。
- 对于年龄估计方法,显示 FAE 通过/失败阈值。
- 特定方法的说明(例如 "Credit card verification always proves adult status.")。
Simulate Attempt 预设。 基于产品真实司法管辖区阈值,一键提交预设结果的角色:
- 对于返回精确或估计年龄的方法:
Adult、Teen、Child。 - 对于仅基于阈值的方法(如 ConnectID 或 AgeKey):
Passes Age Check或Fails Age Check。
Advanced 面板。 用于自定义输入的可展开部分:
- Custom Age Range(仅限估计方法):两个数字输入(Low 和 High,0–120)。当您更改 Low 且未手动编辑 High 时,High 会自动填充为
Low + 4,以匹配典型的 FAE 置信区间。 - Custom Date of Birth(精确和阈值方法):HTML 日期输入。通过/失败状态在提交时根据日期使用与真实提供商相同的逻辑进行计算。
Simulate Failed Attempt 预设。 与年龄无关的明确失败:
Inconclusive记录一次未产生年龄信号的不完整尝试。它会计入该方法的最大尝试次数,但方法仍可使用。Fraudulent记录一次不完整的尝试,并在本次验证中禁用该方法,迫使用户选择其他选项。
提交后,匹配组下方会显示结果标签(例如 Teen → PASS),以便您确认已记录的内容。
支持模拟的方法
每个已启用的验证方法都会根据其形态公开相应的控件:
| 方式 | 年龄输入 | 预设 |
|---|---|---|
| Age Estimation Scan | 自定义年龄范围 | Adult、Teen、Child、Inconclusive、Fraudulent |
| ID Document | 精确年龄和出生日期 | Adult、Teen、Child、Inconclusive、Fraudulent |
| Credit Card | 固定(18+) | Adult、Inconclusive |
| Social Security Number | 精确年龄 | Adult(18+)、Inconclusive |
| Singpass | 精确年龄 | Adult、Teen、Inconclusive |
| Korean Real Name | 精确年龄和出生日期 | Adult、Teen、Inconclusive |
| ConnectID | 阈值和出生日期 | Passes Age Check、Fails Age Check、Inconclusive |
| Email Estimation | 固定(18+) | Adult、Inconclusive |
| Brazil CPF | 精确年龄和出生日期 | Adult、Teen、Inconclusive |
| AgeKey | 阈值 | Passes Age Check、Inconclusive |
| Age Attestation | 精确年龄和出生日期 | Adult、Teen、Child、Inconclusive |
使用 Real Providers
当您需要演练实际的提供商集成时,将工具栏切换到 Real Providers。每种方法会打开其供应商沙箱;请参阅本页前面按提供商列出的测试凭据,例如:
- Credit Card 的 Stripe 测试卡号。
- ConnectID 的 ConnectID Mock Bank 凭据及移动端测试应用。
- Social Security Number 和 ID Document 的 Veratad 测试记录。
模拟结果的处理方式
Mock Providers 提交并非独立的代码路径:结果通过记录真实提供商结果的同一服务进行路由,因此 Webhook(例如 Verification.Result)、DOM 事件和会话更新均与生产验证完全相同。被替换的只是提供商的 UI。
对于不使用小部件的服务器间测试场景,Set age verification status 端点提供了以编程方式实现的等效功能,同样仅在测试模式下可用。
选择正确的验证方法
k-ID 的智能系统根据包括司法管辖区要求、用户人口统计和所需保证级别在内的几个因素自动选择适当的验证方法。但是,了解每种方法的优势可以帮助您优化年龄验证策略。
为了最大覆盖和用户便利,实施多种验证方法可提供最佳用户体验。用户可以选择最适合他们情况的方法,无论他们喜欢面部扫描的便利性、文档验证的安全性,还是利用现有数字身份关系的简单性。
系统的自动选择确保不同司法管辖区的用户看到既合法合规又在其地区技术上支持的方法。例如,澳大利亚的用户可能被提供 ConnectID,其他地区的用户可能看到通用方法,如 ID 扫描或面部年龄估计。
隐私和安全
在所有验证方法中,k-ID 保持对用户隐私和数据安全的强烈承诺。该系统旨在仅收集满足年龄验证要求所需的最少信息。个人数据和图像不会存储,验证结果专注于年龄类别确定而不是收集详细的个人信息。
这种隐私保护方法符合全球数据保护法规,同时为企业提供满足年龄验证要求所需的保证。通过利用可信的第三方验证提供商和成熟的数字身份基础设施,k-ID 可以提供强大的验证能力,而不会损害用户隐私。
验证系统还包括强大的防欺诈措施,使用先进技术检测操纵尝试并确保验证过程的完整性。这些安全措施有助于保护企业和用户免受欺诈活动,同时保持流畅的用户体验。
集成和实施
k-ID 的年龄验证方法通过标准化 API 无缝集成到现有应用程序和工作流中。系统处理管理多个验证提供商和方法的复杂性,向开发者呈现一致的接口,同时在幕后利用最合适的验证技术。
验证过程设计为自然地嵌入到用户旅程中,无论是作为账户创建、功能激活还是内容访问的一部分。结果通过 webhooks 和 JavaScript 事件传递,允许应用程序适当地响应验证结果并向用户提供即时反馈。
通过了解这些各种年龄验证方法及其适当的用例,开发者可以创建更具包容性、安全性和合规性的应用程序,满足不同司法管辖区和情况下用户的多样化需求。