【发布时间】:2019-07-08 23:49:12
【问题描述】:
我们有一个使用 Alexa 技能的应用程序,通过帐户链接来获取用户详细信息。
根据Alexa的账号链接documentation:
我们的技能是为帐户链接设置的,而帐户链接又是指用于用户身份验证的第 3 方(或可能是内部的)身份管理系统 (IMS)。我们的应用程序(以及我们的组织)不会在内部维护应用程序的用户身份。
假设用户在她的设备上启用了我们的技能,此时(根据上述文档)她收到了 Alexa 生成的userId,类似于:
"userId": "amzn1.ask.account.AFMWOL5WIGQZLYYEMM2IJL2BJ26ICPQHBPR2DSLRX46CHW36R6CPVH7RZTUZMBCHHJLQQNU3YO2BWZWNIRTM3PCAGTNZKILK33PM2XVI36H4RSINFH2A26OLURAIB2RVPV6GMK56BR5BLBIFNJKT64EANASM7IDTQJBQLGDIEUZHUIM6VSHTTOUPVPITIPOIOPESUK53TSALU5I"
因此,在与该技能进一步交互后,她希望访问一些触发帐户关联的更个性化的信息,以便通过提供的帐户关联详细信息(OAuth 2 授权代码配置文件)确认并重新建立她的身份,而这样做所以,如前所述,联系了第 3 方身份管理系统(不是 LWA)来验证用户身份:
- 用户会看到一个登录屏幕,
- 她输入她的凭据,说:
"alice"/"password123" - 她回答了相关问题以允许我们的应用可以代表她执行某些操作,并且
- 允许在更个性化的基础上进一步与系统交互
假设在我们的应用程序中,我们希望能够通过她的真实用户 ID:alice 来识别用户,而不是如上所述由亚马逊自动分配的用户。
- Alexa 是否允许这样做?
- 在成功连接帐户后,Alexa 是否会在其 JSON 请求中覆盖(或者它能否以某种方式通过它,以及现在嵌入的
accessToken字段)它从第 3 方身份提供者接收到的 userId,以便“真实” userId(在 OAuth 用语中称为 subjectId 吗?)然后可以用于在她与应用程序的进一步交互期间识别用户操作吗?
如果是,我们如何通过 Alexa Java API 从 JSON 获取用户详细信息?
如果不是,有哪些方法可以促进这种能力?
-
在验证用户身份后,Alexa在其请求中放入的
accessToken能否获取真实的userId?如果有,怎么做?我不确定它是否与this 相关,似乎是一个类似的请求,它是否已被列入 Alexa 的路线图或已经成为一项功能?
【问题讨论】:
标签: authentication oauth-2.0 alexa alexa-skills-kit identity-management