AWS 使用 STS 或 Cognito 对移动用户进行身份验证有什么区别
What is the difference in AWS for authenticating a mobile user with STS or Cognito
我想知道在对联合用户进行身份验证方面,STS 是否与 Cognito 本质上类似?
根据 AWS 文档:AWS Security Token Service (STS)
AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users).
根据 AWS 文档:Cognito
Amazon Cognito lets you add user sign-up, sign-in, and access control to your web and mobile apps quickly and easily. Amazon Cognito scales to millions of users and supports sign-in with social identity providers, such as Facebook, Google, and Amazon, and enterprise identity providers via SAML 2.0.
STS 和 Cognito 在对移动应用程序的移动用户进行身份验证方面有何区别和用例?
首先,了解 Cognito 包含两项相关服务,User Pools and Identity Pools。
简而言之,用户池是一个包含所有细节的用户数据库:身份验证、MFA、组、密码重置等。它允许用户提供用户名和密码,如果它们有效,它会提供他们是证明他们是真实用户的令牌。它提供身份验证。
ID 池映射 从用户到 AWS 凭证。为了映射到 AWS 凭证,它需要一些用户的概念,这必须由 somebody 提供。这可以是用户池或第三方。无论如何,一旦您拥有某种用户令牌,您就只能使用 ID 池,然后您可以使用它来询问 ID 池:"give me the credentials (if any) this user may use"。 ID 池提供您需要的凭据,以针对 AWS 服务授权。
What is the difference and use case for STS and Cognito in terms of authenticating a mobile user for a mobile app?
考虑路径 user login -A-> user auth token -B-> aws credentials
。
STS 仅提供临时凭证。 STS 没有用户的概念,它只知道调用者是否有访问凭据的权限,以及这些凭据是什么。 "For users that you authenticate" 表示 只有您 处理所有身份验证,然后调用 STS 获取凭据以提供给这些用户。它既不满足箭头 A
也不满足箭头 B
.
Cognito 用户池满足上面的箭头 A
。
Cognito ID 池实现上面的箭头 B
。
如果您想自己完成箭头 A
和箭头 B
,您可以使用 STS 作为解决方案的一部分。
如果你只想自己做箭头A
,你可以使用id池来处理箭头B
(id池实际上在后端使用STS)。您会告诉 id 池将处理箭头 A
(例如 Facebook)的身份提供者,然后 you 将处理让 Facebook 为您验证用户身份的逻辑。您将获取用户获得的 Facebook 身份验证令牌,并将其传递到 ID 池以取回凭据。
如果您想做最少的工作,您可以使用用户池来处理箭头 A
并使用 ID 池来处理箭头 B
。您仍然可以在用户池下使用第三方身份验证提供程序(例如 Facebook),但您会将 ID 池指向用户池,将用户池指向第三方。然后,用户池为您处理 A
部分的所有逻辑(您编写零 Facebook 身份验证 API 代码)。
我想知道在对联合用户进行身份验证方面,STS 是否与 Cognito 本质上类似?
根据 AWS 文档:AWS Security Token Service (STS)
AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users).
根据 AWS 文档:Cognito
Amazon Cognito lets you add user sign-up, sign-in, and access control to your web and mobile apps quickly and easily. Amazon Cognito scales to millions of users and supports sign-in with social identity providers, such as Facebook, Google, and Amazon, and enterprise identity providers via SAML 2.0.
STS 和 Cognito 在对移动应用程序的移动用户进行身份验证方面有何区别和用例?
首先,了解 Cognito 包含两项相关服务,User Pools and Identity Pools。
简而言之,用户池是一个包含所有细节的用户数据库:身份验证、MFA、组、密码重置等。它允许用户提供用户名和密码,如果它们有效,它会提供他们是证明他们是真实用户的令牌。它提供身份验证。
ID 池映射 从用户到 AWS 凭证。为了映射到 AWS 凭证,它需要一些用户的概念,这必须由 somebody 提供。这可以是用户池或第三方。无论如何,一旦您拥有某种用户令牌,您就只能使用 ID 池,然后您可以使用它来询问 ID 池:"give me the credentials (if any) this user may use"。 ID 池提供您需要的凭据,以针对 AWS 服务授权。
What is the difference and use case for STS and Cognito in terms of authenticating a mobile user for a mobile app?
考虑路径 user login -A-> user auth token -B-> aws credentials
。
STS 仅提供临时凭证。 STS 没有用户的概念,它只知道调用者是否有访问凭据的权限,以及这些凭据是什么。 "For users that you authenticate" 表示 只有您 处理所有身份验证,然后调用 STS 获取凭据以提供给这些用户。它既不满足箭头
A
也不满足箭头B
.Cognito 用户池满足上面的箭头
A
。Cognito ID 池实现上面的箭头
B
。
如果您想自己完成箭头 A
和箭头 B
,您可以使用 STS 作为解决方案的一部分。
如果你只想自己做箭头A
,你可以使用id池来处理箭头B
(id池实际上在后端使用STS)。您会告诉 id 池将处理箭头 A
(例如 Facebook)的身份提供者,然后 you 将处理让 Facebook 为您验证用户身份的逻辑。您将获取用户获得的 Facebook 身份验证令牌,并将其传递到 ID 池以取回凭据。
如果您想做最少的工作,您可以使用用户池来处理箭头 A
并使用 ID 池来处理箭头 B
。您仍然可以在用户池下使用第三方身份验证提供程序(例如 Facebook),但您会将 ID 池指向用户池,将用户池指向第三方。然后,用户池为您处理 A
部分的所有逻辑(您编写零 Facebook 身份验证 API 代码)。