【发布时间】:2017-01-14 10:12:49
【问题描述】:
有点多问,但是,
如何在 .NET 中使用 Amazon Cognito 用户池执行身份验证。 我正在使用以下内容启动身份验证:
var response1 = client.InitiateAuth(new InitiateAuthRequest()
{
AuthFlow = AuthFlowType.USER_SRP_AUTH,
AuthParameters = new Dictionary<string, string>()
{
{"USERNAME","User" },
{"SRP_A" , A }
},
ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
});
他们的文档非常非常糟糕,当我想应对挑战时,我似乎找不到要通过的内容。
client.RespondToAuthChallenge(new RespondToAuthChallengeRequest()
{
ChallengeName = ChallengeNameType.PASSWORD_VERIFIER,
ChallengeResponses = { /*WHAT am I supposed to add here, and where can I find any documnetation on what is expected?*/ },
Session = response1.Session,
ClientId = "xxxxxxxxxxxxx"
});
附带说明,我想使用 Cognito 联合身份来保护自定义 .Net API,所以我的想法是使用 Cognito 返回的令牌作为 JWT 传递到 webapi 端,然后我将在那里解码和验证令牌。这是使用 Amazon Cognito 的预期方式吗? (至少现在我不想使用亚马逊 API 网关)。
我假设它只是使用默认的 JWT 中间件配置 OWIN,还是我应该期待其他的东西?
【问题讨论】:
-
您的旁注基本上是正确的:用户池为您提供与 Google 等非常相似的 JWT 令牌......,并且身份池以相同的方式使用。
-
关于 SRP,it's a standard algorithm,但我还没有在 C# 中针对 Cognito 使用它。
-
“他们的文档非常非常糟糕,当我想应对挑战时,我似乎找不到要通过什么。”。我同意。它非常非常详细地介绍了 cognito 的工作原理,但没有明确的路线图或关于如何在 .net 中使用它的示例。非常令人沮丧!我经常发现自己试图重复文档中列出的步骤,结果却放弃了。我最近发现,我试图复制的是对幕后发生的事情的描述,而不是我需要做什么才能使用它。
标签: .net amazon-web-services asp.net-web-api amazon-ec2 amazon-cognito