亚马逊认可AuthFlow(Amazon Cognito AuthFlow)

2019-09-29 20:10发布

有点多的问题,而是,

一个人如何与亚马逊Cognito用户池进行认证,在.NET。 我发起验证具有以下内容:

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侧,在那里我会再进行解码和验证令牌。 这是使用亚马逊Cognito的预期呢? (我不希望使用亚马逊的API网关,至少现在)。

我假设它只是一个默认的JWT中间件配置OWIN,或者我应该期待什么东西?

Answer 1:

该开发人员指南倒是什么需要进入的请求都发起AUTH和AUTH挑战。

你可能会发现更容易的SRP认证卸载到Cognito与AdminInitiateAuth API(在同一个链接详细说明),将在这些空白为您填写。

移动SDK大约有SRP认证的包装给你,这有助于填补这些参数,但是其他的SDK有地方没有这样的功能。 您可以使用了SDK代码(所有这些都生活在GitHub上)填写之类的东西SRP_A,但你可能会发现它更容易,只需使用AdminInitiateAuth。



Answer 2:

这里这家伙介绍如何做SRP计算在.NET应用程序。 我不得不添加一些逻辑来更新创建控制台用户时,发出的临时密码,但比它就像一个魅力等

AWS Cognito SRP登录在C#/。NET



文章来源: Amazon Cognito AuthFlow