【发布时间】:2019-12-14 05:00:49
【问题描述】:
我正在尝试根据我的用户的 Spotify 帐户对其进行身份验证。但我对 AWS 服务还很陌生,我不确定应该使用哪一个,无论是 Cognito、自定义身份验证 lambda 函数还是任何其他服务。
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito spotify
我正在尝试根据我的用户的 Spotify 帐户对其进行身份验证。但我对 AWS 服务还很陌生,我不确定应该使用哪一个,无论是 Cognito、自定义身份验证 lambda 函数还是任何其他服务。
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito spotify
据我了解,Spotify 为外部应用程序开发人员提供了符合 RFC 6749 [1] 的 OAuth 2.0 端点。由于您希望基于 OAuth 2.0 协议验证您的用户,请注意 OAuth 主要不是一种验证协议 [2]。 这就是 Spotify 在其文档中将其称为授权指南 [3] 的原因。
AWS Cognito 不支持 OAuth 2.0,因为它旨在解决身份验证问题。 [4]
它支持 OpenID Connect (OIDC)。有文章解释了 OIDC 和 OAuth 之间的区别,例如[5]。
如果您仍然想在您的 API 网关中使用 OAuth 令牌,另一个 SO 线程 [4] 提到您可以通过使用 自定义授权器 [6][7] 来做到这一点。您可以使用令牌访问 Spotify 后端,但我不确定您是否可以直接验证它。由于上述 AuthZ 与 AuthN 的原因,我对此表示怀疑。
[1]https://www.rfc-editor.org/rfc/rfc6749#section-4.1
[2]https://oauth.net/articles/authentication/
[3]https://developer.spotify.com/documentation/general/guides/authorization-guide/
[4]https://stackoverflow.com/a/33686216/10473469
[5]https://medium.com/@abstarreveld/oauth-and-openid-explained-with-real-life-examples-bf40daa8049f
[6]https://aws.amazon.com/de/blogs/compute/introducing-custom-authorizers-in-amazon-api-gateway/
[7]https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
【讨论】: