Amazon web services 认证AWS Cognito SRP

Amazon web services 认证AWS Cognito SRP,amazon-web-services,aws-sdk,amazon-cognito,aws-cognito,Amazon Web Services,Aws Sdk,Amazon Cognito,Aws Cognito,我正在编写一个控制台POC来演示AWS cognito身份验证——应用程序池不是联邦身份,作为我们的API网关身份验证机制(不在AWS中托管)。这是用C写的 我已经成功创建了一个用户,并对其进行了确认;但现在我需要通过身份验证来检索JWT,我可以在下游传递和验证JWT 下面的代码 using (var client = new AmazonCognitoIdentityProviderClient()) { var initAuthRequ

我正在编写一个控制台POC来演示AWS cognito身份验证——应用程序池不是联邦身份,作为我们的API网关身份验证机制(不在AWS中托管)。这是用C写的

我已经成功创建了一个用户,并对其进行了确认;但现在我需要通过身份验证来检索JWT,我可以在下游传递和验证JWT

下面的代码

 using (var client = new AmazonCognitoIdentityProviderClient())
            {
               var initAuthRequest = new InitiateAuthRequest();
                   initAuthRequest.AuthParameters.Add("USERNAME", username);
                   initAuthRequest.AuthParameters.Add("PASSWORD", password);
                   initAuthRequest.ClientId = clientId;
                   initAuthRequest.AuthFlow = AuthFlowType.USER_SRP_AUTH;
                   var response = client.InitiateAuth(initAuthRequest);
                   WriteLine("auth ok");
            }
产生此例外情况:

类型的未处理异常 'Amazon.CognitoIdentityProvider.Model.InvalidParameterException' 在AWSSDK.Core.dll中发生

其他信息:缺少必需的参数SRP_A

我在dotnetsdk中找不到生成SRP头的方法,有人能帮忙吗

谢谢
KH

Cognito用户池不支持来自.NET SDK的SRP身份验证。您将无法在
InitiateAuth
API调用中使用
AuthFlowType.USER\u SRP\u AUTH


如果您想直接使用用户名和密码登录,可以查看使用API和ADMIN\u NO\u SRP\u AUTH流的。Cognoto用户池不支持来自.NET SDK的SRP身份验证。您将无法在
InitiateAuth
API调用中使用
AuthFlowType.USER\u SRP\u AUTH


如果您想直接使用用户名和密码登录,可以查看使用API和ADMIN\u NO\u SRP\u AUTH流的。

如Chetan所述,.NET SDK不支持SRP身份验证。但是,可以通过使用第三方实施SRP程序来实现


根据Github上的一些评论,这段代码应该可以工作(但不幸的是,自定义SRP身份验证实现对我不起作用,但可能对你起作用)。

正如Chetan所述,.NET SDK不支持SRP身份验证。但是,可以通过使用第三方实施SRP程序来实现


根据Github上的一些评论,这段代码应该可以工作(但不幸的是,自定义SRP身份验证实现对我不起作用,但可能对你起作用)。

我想先介绍一下,我不熟悉AWS.NET SDK;但是,以下内容可能会提供有用的见解

AWS在JavaScript中提供了一个Cognito Identity helper库,您可以查看源代码,特别是文件,因为它包含用于计算SRP的逻辑。此外,还有一种计算SRP_a的方法,它是调用“initiateAuth”API方法所需的参数。希望这能帮助你朝着正确的方向前进


作为补充说明,您可能会注意到amazon cognito identity js库依赖于一个大整数库来处理JavaScript数字数据类型固有的影响精度的显著性丢失问题。首先,我提到这一点是因为我不熟悉该算术问题是否与.NET上下文相关,因为它与SRP计算相关。

我想先介绍一下我不熟悉的AWS.NET SDK;但是,以下内容可能会提供有用的见解

AWS在JavaScript中提供了一个Cognito Identity helper库,您可以查看源代码,特别是文件,因为它包含用于计算SRP的逻辑。此外,还有一种计算SRP_a的方法,它是调用“initiateAuth”API方法所需的参数。希望这能帮助你朝着正确的方向前进


作为补充说明,您可能会注意到amazon cognito identity js库依赖于一个大整数库来处理JavaScript数字数据类型固有的影响精度的显著性丢失问题。首先,我提到这一点是因为我不知道这个算术问题是否与.NET上下文相关,因为它与SRP计算相关。

实际上有一个新的扩展类,可以帮助实现这一点。只需搜索此NuGet软件包:

AWSSDK.Extensions.CognitoAuthentication
可以找到GitHub存储库


可以找到一些例子。第一个代码示例向您展示了如何执行SRP流。

实际上有一个新的扩展类,可以帮助您实现这一点。只需搜索此NuGet软件包:

AWSSDK.Extensions.CognitoAuthentication
可以找到GitHub存储库


可以找到一些例子。第一个代码示例向您展示了如何执行SRP流。

我究竟应该如何使用它?我一直在寻找亚马逊的教程,试图让这个工作,但我不断得到“失踪认证令牌”。我在世界上如何使用这个?我一直在寻找亚马逊的所有教程,试图让这个工作,但我不断得到“缺少认证令牌”。