Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 亚马逊Cognito AuthFlow_.net_Amazon Web Services_Asp.net Web Api_Amazon Ec2_Amazon Cognito - Fatal编程技术网

.net 亚马逊Cognito AuthFlow

.net 亚马逊Cognito AuthFlow,.net,amazon-web-services,asp.net-web-api,amazon-ec2,amazon-cognito,.net,Amazon Web Services,Asp.net Web Api,Amazon Ec2,Amazon Cognito,有点多重问题,但是 如何使用.NET中的Amazon Cognito用户池执行身份验证。 我正在通过以下方式启动Auth: var response1 = client.InitiateAuth(new InitiateAuthRequest() { AuthFlow = AuthFlowType.USER_SRP_AUTH, AuthParameters = new Dictionary<string

有点多重问题,但是

如何使用.NET中的Amazon Cognito用户池执行身份验证。 我正在通过以下方式启动Auth:

var response1 = client.InitiateAuth(new InitiateAuthRequest()
            {
                AuthFlow = AuthFlowType.USER_SRP_AUTH,
                AuthParameters = new Dictionary<string, string>()
                {
                    {"USERNAME","User" },
                    {"SRP_A"  ,  A }
                },
                ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
            });
另一方面,我想使用Cognito联合身份来保护一个定制的.NETAPI,所以我的想法是使用Cognito返回的令牌作为JWT传递到webapi端,然后在那里解码和验证令牌。这是使用Amazon Cognito的预期方式吗?(至少目前我不想使用AmazonAPI网关)

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

这涉及到启动身份验证和响应身份验证挑战的请求需要做些什么

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"
        });
您可能会发现使用AdminInitiateAuthAPI(在同一链接中详细介绍)将srp身份验证卸载到Cognito更容易,这将为您填补这些空白

移动SDK围绕SRP身份验证为您提供了包装,这有助于填充这些参数,但其他SDK没有此类功能。您可以使用SDK的代码(所有SDK都位于GitHub中)来填充SRP_A之类的内容,但您可能会发现,仅使用AdminInitiateAuth要容易得多。

这篇文章涉及到在请求启动身份验证和响应身份验证挑战时需要做些什么

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"
        });
您可能会发现使用AdminInitiateAuthAPI(在同一链接中详细介绍)将srp身份验证卸载到Cognito更容易,这将为您填补这些空白


移动SDK围绕SRP身份验证为您提供了包装,这有助于填充这些参数,但其他SDK没有此类功能。您可以使用SDK的代码(所有SDK都位于GitHub中)来填充SRP_A之类的内容,但您可能会发现只使用AdminInitiateAuth要容易得多。

这家伙描述了如何在.NET应用程序中进行SRP计算。我不得不添加一些逻辑来更新在控制台中创建用户时发布的临时密码,但除此之外,它就像一个符咒


这家伙描述了如何在.NET应用程序中进行SRP计算。我不得不添加一些逻辑来更新在控制台中创建用户时发布的临时密码,但除此之外,它就像一个符咒


AdminInitiateAuth
不会“卸载srp身份验证”-因此流名称为
ADMIN\u NO\u srp\u AUTH
。SRP是一种避免通过网络发送密码的算法,因此使用
AdminInitiateAuth
的安全性要差得多,尽管这基本上是互联网上其他登录页面所做的。基本上,它是为服务器端使用而设计的。它确实减轻了它的负担。cognito服务器代表您执行srp,但要做到这一点,它需要用户名和密码作为事实上的客户机。文档可能对此并不十分清楚,因为您的推断是公平的,但它确实减轻了负担。来源:我是cognito团队的成员,这个名字背后的想法是你不必做SRP,它看起来像互联网上的每个登录页面,但在后台它使用相同的后端存储,通过利用SRP来实现。我的观点是正确的!考虑到这一点,您需要在内部执行一些SRP计算,以验证密码的存储方式,但它真的也会执行所有HTTP请求吗?这似乎很奇怪。
AdminInitiateAuth
没有“卸载srp身份验证”——因此流名为
ADMIN\u NO\u srp\u AUTH
。SRP是一种避免通过网络发送密码的算法,因此使用
AdminInitiateAuth
的安全性要差得多,尽管这基本上是互联网上其他登录页面所做的。基本上,它是为服务器端使用而设计的。它确实减轻了它的负担。cognito服务器代表您执行srp,但要做到这一点,它需要用户名和密码作为事实上的客户机。文档可能对此并不十分清楚,因为您的推断是公平的,但它确实减轻了负担。来源:我是cognito团队的成员,这个名字背后的想法是你不必做SRP,它看起来像互联网上的每个登录页面,但在后台它使用相同的后端存储,通过利用SRP来实现。我的观点是正确的!考虑到这一点,您需要在内部执行一些SRP计算,以验证密码的存储方式,但它真的也会执行所有HTTP请求吗?这似乎有点奇怪。你的旁注基本上是正确的:用户池给你的JWT令牌与Google等非常相似,身份池也以同样的方式使用。关于SRP,但我还没有让它在C#与Cognito的对比中发挥作用。“他们的文档非常非常糟糕,当我想应对挑战时,我似乎找不到应该传递什么。”“我同意。它非常非常详细地介绍了cognito是如何工作的,但对于如何在.net中使用它却没有明确的路线图或示例。非常令人沮丧!我经常发现自己试图重复文档中列出的步骤,结果却放弃了。我最近发现,我试图复制的是对幕后发生的事情的描述,而不是我需要做什么来使用它。你的旁注基本上是正确的:用户池给你的JWT令牌与谷歌等非常相似,身份池也以同样的方式使用。关于SRP,但我还没有让它在C#与Cognito的对抗中发挥作用。“他们的文档非常非常糟糕,当我想应对挑战时,我似乎找不到应该传递什么。”。我同意。它非常非常详细地介绍了cognito是如何工作的,但对于如何在.net中使用它却没有明确的路线图或示例。非常令人沮丧!我经常发现自己试图重复文档中列出的步骤,结果却放弃了。我最近发现,我试图复制的是对幕后发生的事情的描述,而不是我需要做什么来使用它。