用户成功登录后,我无法在从 AWS Cognito 返回的ID_TOKEN 中获取自定义属性。
我试过的步骤:
1.创建用户池 2.创建应用客户端并检查自定义属性(customattrib1,customattrib2)
用户池屏幕:
检查应用程序客户端配置中的自定义属性
3.使用admin-create-user api创建用户
下图显示了用户属性的值:
4.在客户端应用程序中使用 aws-cognito-auth.js 登录的用户。返回的 ID 令牌不包含自定义属性。
ID_TOKEN
{
"at_hash": "PKfjYDaiEty5mUOyJZlPQA",
"sub": "639d5016-2bd3-4c6f-b82d-21ae38071b09",
"email_verified": true,
"iss": "https://cognito-idp.ap-south-1.amazonaws.com/ap-south-1_XXXXXXX",
"phone_number_verified": true,
"cognito:username": "testuser",
"aud": "XYXYXYXYX",
"token_use": "id",
"auth_time": 1549349674,
"phone_number": "##########",
"exp": 1549353274,
"iat": 1549349674,
"email": "testuser@somedomain.com"
}
Run Code Online (Sandbox Code Playgroud)
我已经检查了下面的链接,其中包含有关此问题的一些信息,但到目前为止没有任何帮助。
如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中
如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中
https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/
请帮我弄清楚我是否遗漏了什么..
amazon-web-services openid-connect amazon-cognito aws-sdk aws-userpools
在我看来,“AWS Cognito”是“AWS 的 IdentityServer”。我做了一个 POC - 通过注册 API 调用创建了用户。在 AWS Cognito 用户池中创建用户并返回访问令牌。但是,为了关联事物,我想在 DynamoDB 的用户表中而不是在用户池中创建用户。
预期场景:
1) 新用户 --> 注册 --> AWS Cognito --> DynamoDB 中添加新用户记录 --> AWS Cognito 返回访问令牌
2) 现有活动用户 --> 登录 --> AWS Cognito --> 从 DynamoDB 检索用户详细信息 --> AWS Cognito 返回访问令牌
Qn -1:类似于在 SQL Server 数据库表中创建 IdentityServer 用户。这可以在 AWS Cognito 中完成吗?可以绕过用户池并从数据库中获取用户数据吗?即使没有绕过,用户池是否可以从数据库表映射其用户?
Qn - 2:用户池用户存储在哪里?最终在数据库中的某个地方?
注意:以下问题看起来与我的相似,但尚未回答:
amazon-dynamodb amazon-cognito identityserver4 aws-userpools
今天早上,我在用户池设置中发现了一条以前从未注意到的警报:
我看着设置屏幕,有一个单选按钮:
我已经有一个发件人地址。如何使用CloudFormation将该设置设置为“是”?
该Cognito CloudFormation文档看起来是这样的:
Type: AWS::Cognito::UserPool
Properties:
AdminCreateUserConfig:
AdminCreateUserConfig
AliasAttributes:
- String
AutoVerifiedAttributes:
- String
DeviceConfiguration:
DeviceConfiguration
EmailConfiguration:
EmailConfiguration
EmailVerificationMessage: String
EmailVerificationSubject: String
LambdaConfig:
LambdaConfig
MfaConfiguration: String
Policies:
Policies
Schema:
- SchemaAttribute
SmsAuthenticationMessage: String
SmsConfiguration:
SmsConfiguration
SmsVerificationMessage: String
UsernameAttributes:
- String
UserPoolName: String
UserPoolTags:
String: String
Run Code Online (Sandbox Code Playgroud)
EmailConfiguration是我在其中设置发件人地址的地方,我想也许他们在此添加了该地址,但是EmailConfiguration文档似乎也没有任何内容。
知道如何配置Cognito用户池以将SES用于电子邮件吗?
amazon-web-services amazon-ses aws-cloudformation amazon-cognito aws-userpools
OpenID 提供商在众所周知的 URL 上发布其元数据。在 Okta 中,它看起来像这样:https://dev-599740.okta.com/oauth2/default/.well-known/oauth-authorization-server AWS Cognito 用户池是否有类似的 URL?如果不是,我如何找到 AWS Cognito 用户池的以下端点?
amazon-web-services amazon-cognito aws-api-gateway ibm-api-management aws-userpools
我在使用 AWS Cognito 提供的 UI 时遇到问题。
当我尝试使用提供的 UI 时,我使用填充的 URL 调用端点:
现在的问题是,在身份验证后,Cognito 使用 # 发回所需的参数。结果如下所示:
我很难在我的回调页面(这是一个 vue 应用程序)中读取 id_token 和 access_token。
如何配置 Cognito 以使用通常的问号 (?) 来传递查询字符串,或者,如何在哈希 (#) 后读取传递的参数。
我很感激你在这方面的建议。
我需要检查用户提供的输入是否与当前密码(来自 Cognito 用户池)匹配。我正在实现一个确认对话框,要求用户再次提供密码(用户必须登录才能访问此功能),并检查它是否有效。
我在 Android 上使用适用于 Java 的 AWS 开发工具包,当前的实现执行以下操作:
getUserPool() // com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool
.getCurrentUser()
.changePasswordInBackground(
password, // oldUserPassword
password, // newUserPassword
new GenericHandler() {
@Override
public void onSuccess() {
// provided password is correct
}
@Override
public void onFailure(Exception e) {
// provided password is incorrect
}
}
);
Run Code Online (Sandbox Code Playgroud)
然而,这感觉像是一种黑客行为,并且受到失败尝试限制的影响,这使得自动化一些测试用例变得不可行。
SDK 中是否有可以用于此目的的 API?
谢谢你!
java android amazon-web-services amazon-cognito aws-userpools
我正在配置一个新的 Cognito 用户池。我有一个经过验证的电子邮件地址,我正在使用它,但是当我尝试创建用户池时,我收到以下错误,但没有提示哪个参数无效:
Cannot configure From email address for default email configuration (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException*'*
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我们正在使用 cognito 用户池进行身份验证,并且我在MFA 和验证下启用了电子邮件验证,因此一段时间后我尝试通过取消选中电子邮件复选框来删除该验证,我总是收到错误消息您的角色仍在创建中。请稍候再试。我等了一周,问题仍然存在。我只需要取消选中电子邮件验证。先感谢您。
amazon-web-services email-verification amazon-cognito aws-userpools
我正在尝试使用 YAML 创建 AWS CloudFormation 模板。我添加一个 UserPool 资源,如下所示。用户池名称和 ID 应通过参数值获取,即,如果参数 paramUserPoolName 的值为“Sample”,则:
用户池名称 = 示例
UserPool 资源名称 = SampleUserPool 即“paramUserPoolName + UserPool”的串联值
Parameters:
paramUserPoolName:
Type: String
Resources:
<I need 'paramUserPoolName + UserPool' here >:
Type: 'AWS::Cognito::UserPool'
Properties: {
"UserPoolName": paramUserPoolName
}
Run Code Online (Sandbox Code Playgroud)
如何在 CloudFormation 模板中动态创建资源 id?
附:
以下工作有效:
Resources:
SampleUserPool:
Type: 'AWS::Cognito::UserPool'
Properties:
UserPoolName: !Sub ${paramUserPoolName}UserPool
Run Code Online (Sandbox Code Playgroud) 我一直在尝试按照https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-中的文档设置我的 Cognito 用户池和托管 UI 登录网页应用程序集成.html
\n\n按照信中的步骤操作,但是,当我尝试启动登录网页时,它似乎不起作用
\n\n\n\n\n无法访问此站点\xe2\x80\x99\n {myprefix}.auth.us-west-2.amazoncognito.com\xe2\x80\x99s 找不到服务器 IP 地址。
\n
我从应用程序集成 -> 应用程序客户端设置 -> 启动托管 UI 按钮调用它,因此无需对看起来像这样的 URL 进行操作https://{myprefix}.auth.us-west-2.amazoncognito.com/login?client_id=<some_client_id>&response_type=code&scope=aws.cognito.signin.user.admin+email+openid+phone+profile&redirect_uri=https://mybucket.s3-us-west-2.amazonaws.com/index.html
我缺少什么吗?
\naws-userpools ×10
amazon-ses ×1
android ×1
aws-cognito ×1
aws-sdk ×1
java ×1
vue-router ×1
vue.js ×1
vuejs2 ×1