我正在编写一个控制台POC来演示AWS认知身份验证-,作为我们的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
我在dotnet中找不到生成SRP头的方法,有人能帮忙吗?
谢谢KH
发布于 2017-03-09 08:02:41
认知用户池不支持来自.NET SDK的SRP身份验证。您将无法在AuthFlowType.USER_SRP_AUTH API调用中使用InitiateAuth。
如果您想直接使用用户名和密码登录,可以查看管理认证流程,它使用AdminInitiateAuth API和ADMIN_NO_SRP_AUTH流。
发布于 2019-01-18 15:42:52
发布于 2017-03-20 15:28:23
正如Chetan已经指出的,.NET SDK不支持SRP身份验证。然而,它应该是可能的,通过一些第三方实施的SRP程序,可以找到这里。
根据关于Github的一些注释,这段代码应该可以工作(但不幸的是,定制的SRP身份验证实现对我无效,但可能对您有效)。
https://stackoverflow.com/questions/42668607
复制相似问题