我正在编写一个控制台 POC 来演示 AWS 认知身份验证 - 应用程序池而不是联合身份,作为我们的 API 网关身份验证机制(不在 AWS 中托管)。这是用 C# 编写的。
我已经成功创建了一个用户,并确认了他们;但现在我需要进行身份验证以检索我可以传递并验证下游的 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
我在 dotnet sdk 中找不到生成 SRP 标头的方法,有人可以帮忙吗?
谢谢
科赫
实际上有一个新的扩展类可以帮助解决这个问题。只需搜索这个 NuGet 包:
AWSSDK.Extensions.CognitoAuthentication
可以找到GitHub存储库here https://github.com/aws/aws-sdk-net-extensions-cognito.
可以找到一些例子here https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-authentication-extension.html。第一个代码示例向您展示了如何执行 SRP 流程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)