Cognito 中的 AuthFlow ADMIN_NO_SRP_AUTH 和 ADMIN_USER_PASSWORD_AUTH 有什么区别

sam*_*mba 7 amazon-web-services amazon-cognito

我们的登录流程:客户端->服务器->cognito

我们将InitiateAuth() APIUSER_PASSWORD_AUTH AuthFlow 结合使用。我们将在 Cognito 中启用高级安全性,为此我们将使用带有 IP 地址和指纹数据的AdminInitiateAuth() API。

您能否建议我哪种 AuthFlow 适合我的场景(我们将 USERNAME、PASSWORD 和 SECRET_HASH 作为 AuthParameters 传递)。

您还能告诉我ADMIN_NO_SRP_AUTHADMIN_USER_PASSWORD_AUTH AuthFlow的主要区别吗?

Har*_* KM 6

\n

哪种身份验证流程适合我的场景?

\n
\n

具有 ADMIN_USER_PASSWORD_AUTH 的APIAdminInitiateAuth很好,因为您正在执行服务器到服务器的身份验证。

\n
\n

ADMIN_USER_PASSWORD_AUTH 和 ADMIN_NO_SRP_AUTH 身份验证流程之间的区别?

\n
\n

ADMIN_USER_PASSWORD_AUTH 以前称为 ADMIN_NO_SRP_AUTH。

\n
\n
\n

如果您有服务器端应用程序:

\n
    \n
  1. 它调用AdminInitiateAuthAPI。这需要 AWS 管理员凭据并返回身份验证参数。

    \n
  2. \n
  3. 然后它调用AdminRespondToAuthChallengeAPI,这也需要 AWS 管理员凭据。

    \n
  4. \n
\n

AdminInitiateAuth操作AdminRespondToAuthChallenge无法接受用于管理员登录的用户名和密码用户凭据,除非您通过执行以下操作之一明确允许它们这样做:

\n
    \n
  • 将服务器端应用程序调用中的参数ADMIN_USER_PASSWORD_AUTH (以前称为 ADMIN_NO_SRP_AUTH)传递给或。ExplicitAuthFlowCreateUserPoolClientUpdateUserPoolClient

    \n
  • \n
  • 在创建用户池的应用程序客户端选项卡中选择启用登录 API 以进行基于服务器的身份验证 (ADMIN_USER_PASSWORD_AUTH)

    \n
  • \n
\n
\n

\xe2\x80\x94服务器端身份验证流程\xe2\x80\x94 Cognito 文档

\n
\n

例子:

\n
AdminInitiateAuth Request {\n    "AuthFlow": "ADMIN_USER_PASSWORD_AUTH",\n    "AuthParameters": {\n        "USERNAME": "<username>",\n        "PASSWORD": "<password>"\n    },\n    "ClientId": "<clientId>",\n    "UserPoolId": "<userPoolId>"\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n

\xe2\x80\x94管理员身份验证流程\xe2\x80\x94 Cognito 文档

\n