如何使用基本身份验证而不是 OAuth 2.0 将 Alexa 用户与 3rd 方应用程序相关联

Posted

技术标签:

【中文标题】如何使用基本身份验证而不是 OAuth 2.0 将 Alexa 用户与 3rd 方应用程序相关联【英文标题】:How to link an Alexa user with 3rd party app using basic authentication instead of OAuth 2.0 【发布时间】:2017-11-17 05:28:29 【问题描述】:

我正在创建一个自定义 Alexa Skill,它使用他们的 API 从应用程序获取信息。为了使用该应用程序,您必须有一个帐户。应用程序使用基本身份验证对用户进行身份验证,即用户使用其用户名和密码登录,并且授权服务器提供一个 cookie 以确保用户在使用应用程序时得到身份验证。授权服务器不提供获取访问令牌的 API。

这是一个问题,因为Amazon Alexa documentation on account linking 指定授权服务器必须返回访问令牌,因为此访问令牌唯一标识系统中的用户。为了获得访问令牌,授权服务器需要使用 OAuth(授权码授权或隐式授权)。

重申一下,亚马逊需要一个访问令牌,但这个授权服务器不提供;它只支持基本身份验证。即使亚马逊不直接支持它,有没有办法使用基本身份验证链接帐户?我想以亚马逊希望的方式来处理它。也就是说,我仍然想在 Echo 伴侣应用程序上托管我的技能,并且用户可以通过输入他们的用户名和密码来链接他们的帐户。但是,它不是取回访问令牌,而是取回 cookie,亚马逊可以像存储访问令牌一样存储 cookie。然后,每当用户调用该技能时,可以在 http 请求中使用存储的 cookie。亚马逊本身不支持这一点,所以我想知道如何做到这一点,或者是否有可能。

【问题讨论】:

【参考方案1】:

在阅读 amazon alexa 文档并在 alexa 应用程序上测试帐户链接后,我可以确保您无法绕过现有的建议。正如 alexa 文档中所述,您的第三方应用程序应提供 Oauth2.0 身份验证,提供访问令牌,并且此服务器应通过 https 运行并具有亚马逊可识别的有效认证

【讨论】:

感谢您的回答。你是对的——一位亚马逊开发者也证实了这一点。

以上是关于如何使用基本身份验证而不是 OAuth 2.0 将 Alexa 用户与 3rd 方应用程序相关联的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 逻辑应用中使用 OAuth 2.0 身份验证?

OAuth 2.0 两腿身份验证与 SSL/TLS

如何进行应用程序到应用程序(服务器到服务器)身份验证、OAuth 2.0、Web API 2.0

OAuth 2.0应该用于身份验证超时吗?

当我完全信任依赖方时,为啥我应该遵循 Oauth2.0 和 OpenID Connect Protocole 而不是仅使用 JWT 的基本身份验证?

如何使用 OAuth 2.0 通过 Azure Active Directory 对用户进行身份验证?