C# 在AWS Cognito中调用(Admin)InitiateAuthRequest以获取具有作用域的访问令牌
我需要公开一个api,它也允许我们获取范围,但是我使用aws cognito的所有尝试都失败了 所以我希望能做到以下几点:C# 在AWS Cognito中调用(Admin)InitiateAuthRequest以获取具有作用域的访问令牌,c#,amazon-web-services,.net-core,amazon-cognito,C#,Amazon Web Services,.net Core,Amazon Cognito,我需要公开一个api,它也允许我们获取范围,但是我使用aws cognito的所有尝试都失败了 所以我希望能做到以下几点: var provider = new AmazonCognitoIdentityProviderClient(new BasicAWSCredentials(AccessKey, SecretKey)); var request1 = new AdminInitiateAuthRequest { UserPoolId
var provider = new AmazonCognitoIdentityProviderClient(new BasicAWSCredentials(AccessKey, SecretKey));
var request1 = new AdminInitiateAuthRequest
{
UserPoolId = userPoolId,
ClientId = request.ClientId,
AuthFlow = AuthFlowType.ADMIN_NO_SRP_AUTH,
AuthParameters =
{
{"USERNAME", request.UserName},
{"PASSWORD", request.Password}
}
};
var response1 = await provider.InitiateAuthAsync(request);
var provider = new AmazonCognitoIdentityProviderClient(new BasicAWSCredentials(AccessKey, SecretKey));
var request1 = new AdminInitiateAuthRequest
{
UserPoolId = userPoolId,
ClientId = request.ClientId,
AuthFlow = AuthFlowType.ADMIN_NO_SRP_AUTH,
AuthParameters =
{
{"USERNAME", request.UserName},
{"PASSWORD", request.Password}
}
};
var response1 = await provider.InitiateAuthAsync(request);
现在,我可以通过这个请求/响应获得令牌(显然具有良好的凭据:)。我搞不懂的是如何要求更多的scope
项目。目前它只返回aws.cognito.signin.user.admin
第二部分:用户属性
话虽如此,我还添加了一个自定义:some属性
属性。我可以在General settings\Attributes
屏幕的UI中看到它。顺便说一句,我没有任何lambda触发器设置
我发现我可以更新用户设置,因为我返回了OK | 200
状态,但是如果我尝试获取用户,他的更新属性不会显示
var request2 = new AdminUpdateUserAttributesRequest
{
UserAttributes = new List<AttributeType>
{
new AttributeType {
Name="custom:some-attribute",
Value=Guid.NewGuid().ToString("N")
};
UserPoolId = userPoolId,
Username = userName
};
var response2 = await provider.AdminUpdateUserAttributesAsync(request);
。。。我新更新的变量未显示在结果中。userattributes
AttributeType
列表中
也许我做得不对,但我不知道如何创建一个范围(我想我可以通过自定义属性做一个替代)并获取范围
同样,我也不知道在对令牌进行身份验证时如何传入范围
谢谢,
凯莉哇,我终于明白了
属性
,以显示您可以打开或关闭的信息,其中一个区域用于读取,另一个区域用于写入。因此,嗯,单击并保存应用程序客户端更改
!注意,这些更改将使它们显示在标识令牌中