gpt4 book ai didi

c# - 在 AWS Cognito 中调用 (Admin)InitiateAuthRequest 以获取具有范围的访问 token

转载 作者:行者123 更新时间:2023-12-05 06:30:22 25 4
gpt4 key购买 nike

我需要公开一个 api,这也允许我们获取范围,但我使用 aws cognito 的所有尝试都失败了。

所以我希望做到以下几点:

  1. 将 scope:foo 分配给现有用户和新用户
  2. 获取包含 foo 范围的访问 token (使用 c# 后端代码)

第一部分:使用范围获取访问 token

因此,要获取 token ,请执行以下操作:

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);

现在,我可以通过此请求/响应获得 token (显然凭据良好:))。我想不通的是如何请求更多 scope 项目。目前它只返回 aws.cognito.signin.user.admin

第二部分:用户属性

话虽如此,我还添加了一个 custom:some-attribute 属性。我可以在 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);

稍后我去查找用户:

var result = await _provider.GetUserAsync(new GetUserRequest
{
AccessToken = response1.AuthenticationResult.AccessToken
});

... 我新更新的变量没有显示在 result.UserAttribues AttributeType 列表中。

也许我做错了,但我不知道如何创建一个范围(我想我可以通过自定义属性做一个替代方案)并获得范围。

同样,我不知道如何在对 token 进行身份验证时传入一个范围。

谢谢,凯利

最佳答案

哇,我终于想通了...

  1. 我还没有完全弄明白这一点,如果能做到这一点就好了,但自定义属性会出现(第 2 条)。我可以将其勾选为 OK。

  2. 获取身份 token 中的自定义属性。你必须设置他读写属性。这里有更多信息:https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html .从根本上选择区域,它会扩展 Attributes 以显示您可以打开或关闭的信息,其中一个区域用于读取,另一个区域用于写入。所以,嗯,点击并保存应用程序客户端更改!请注意,这些更改将使它们能够显示在 Identity Token 中。

关于c# - 在 AWS Cognito 中调用 (Admin)InitiateAuthRequest 以获取具有范围的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52431591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com