首页 > 解决方案 > AWS API Gateway 的身份验证策略

问题描述

我正在尝试根据他们的 Spotify 帐户对我的用户进行身份验证。但是我在 AWS 服务方面还很陌生,我不确定应该使用哪一个,无论是 Cognito、自定义身份验证 lambda 函数还是任何其他服务。

标签: amazon-web-servicesaws-lambdaaws-api-gatewayamazon-cognitospotify

解决方案


据我了解,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-现实生活示例-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


推荐阅读