当调用AssumeRole时,我们可以设置从900秒(15分钟)到最大3600秒(1小时)的时间。默认值为 1 小时。这能超过1个小时吗?比如12小时?
我花了大量时间在这里寻找解决方案,但找不到。这是情况:
我实际上对任何一个都有效,因为文档似乎表明 /login 端点仅是 GET,我感到有些惊讶:https : //docs.aws.amazon.com/cognito/latest/developerguide/login-endpoint.html
无论如何,我更喜欢使用代码 response_type 。我在这里做错了吗?还有其他人有这个问题吗?我不认为我在做任何不寻常的事情。对我来说,就像内置 ui 流程中的某些东西被破坏了一样。我确实发现我不应该使用内置 UI,但我想让它工作,然后如果可能的话替换它。
如果您需要更多信息,请告诉我,我很乐意提供。
编辑:如果我将 redirect_url 设为 google.com,它实际上确实有效,这意味着它与我的应用程序和重定向有关,但基本上没有迹象表明出了什么问题。有谁知道我在哪里可以找到与 Cognito 中这些类型的错误相关的任何类型的相关日志或信息?
错误:“cognito_identity_providers.0.client_id 必须仅包含字母数字字符和下划线”
此问题来自 aws_cognito_identity_pool 资源上的 client_id 和 provider_name。我们从哪里得到这些值。Terraform 不遵循 AWS 命名。我已经尝试过 Pool id 和 Pool ARN。但那些不起作用我也试过应用程序客户端ID
下面文档中提供的示例不清楚
cognito_identity_providers {
client_id = "6lhlkkfbfb4q5kpp90urffae"
provider_name = "cognito-idp.us-east-1.amazonaws.com/us-east-1_Tv0493apJ"
server_side_token_check = false
}
Run Code Online (Sandbox Code Playgroud) 我有我的 UI 应用程序,它使用 AWS Cognito 进行用户身份验证。我们已成功将 SAML 身份提供程序集成到我们的 Cognito 用户池中。
现在我想使用 AD FS 支持 SSO。
以下是我可用于 ADFS 登录的 URL。
https://adfs.DOMAIN.com/adfs/ls/IdpInitiatedSignOn.aspx
我已阅读此AWS Doc以配置任何 aws 管理控制台。
但是我应该遵循哪些步骤来为 Cognito 启用此功能。
有什么帮助吗?
我是 Node JS 的初学者,并尝试在线学习示例并从 AWS 文档中学习得相当好。到目前为止,我只使用 AWS 提供的基于 Web 的 lambda 编辑器。以下代码给我带来了麻烦并指出,“errorMessage”:“AmazonCognitoIdentity 未定义”,
有人可以建议我如何仅使用网络编辑器成功开始使用 Cognito 吗?
var aws = require('aws-sdk');
var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool;
exports.handler = (event, context, callback) => {
console.log("Do something here...");
}Run Code Online (Sandbox Code Playgroud)
有没有人在无服务器框架的认知用户池中设置用户组?我知道我可以在 .yml 文件的资源部分中创建用户池和用户组,但我面临的问题是用户组需要用户池 ID(直到用户池已创建)。我总是可以在没有用户组的情况下进行部署,然后在获得用户池 ID 后使用用户组进行第二次部署,但我很好奇是否有人对如何在一次部署中执行此操作有任何经验或想法。我相信你们中的许多人都遇到过这个问题,但作为参考,我在下面添加了有关资源的无服务器文档以及有关添加用户池和用户组资源的 AWS 文档。谢谢大家的帮助!!
无服务器文档:https : //serverless.com/framework/docs/providers/aws/guide/resources/
用户池文档:https : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html
用户组文档:https : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html
为了列出认知用户池的所有用户,我想到了使用 boto3 的client.list_users()- 功能,包括分页。
不过,如果我打电话print(client.can_paginate('list_users')),False返回,因为该功能list_users()是不分页。
是否有替代方法可以列出认知用户池的所有用户而不过滤那些已经被选中的用户?
我当前没有分页的代码如下所示:
client = boto3.client('cognito-idp',
region_name=aws_region,
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
config=config)
response = client.list_users(
UserPoolId=userpool_id,
AttributesToGet=[
'email','sub'
]
)
Run Code Online (Sandbox Code Playgroud)
提前谢谢了!
我在 aws congnito 池中创建了一个自定义属性,现在添加 Post authentication lambda 并且在 lambda 内部想要读取“自定义属性”和登录用户名。
在 Node.js lambda 中:
var email=event.request.userAttributes.email;
var refNumber=event.request.userAttributes.ref_number; //custom attribute
var loginid=event.request.userAttributes.username;//loggedin id in cognito
Run Code Online (Sandbox Code Playgroud)
我能够正确获取电子邮件 ID,但是登录用户名和自定义属性都未定义。
我正在尝试运行官方文档中所示的 admin-create-user cli 命令,但它似乎无法正常运行。
尽管它们在命令中,但我没有得到所有属性创建事件。我总是只得到命令中输入的最后一个属性。
难道我做错了什么?有什么解决办法吗?
aws cognito-idp admin-create-user --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --user-attributes=Name=email,Value=kermit2@somewhere.com,Name=phone_number,Value="+15555551212" --message-action SUPPRESS
Run Code Online (Sandbox Code Playgroud)
我得到
{
"User": {
"Username": "diego@example.com",
"Enabled": true,
"UserStatus": "FORCE_CHANGE_PASSWORD",
"UserCreateDate": 1566470568.864,
"UserLastModifiedDate": 1566470568.864,
"Attributes": [
{
"Name": "sub",
"Value": "5dac8ce5-2997-4185-b862-86cf15aede77"
},
{
"Name": "phone_number",
"Value": "+15555551212"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
代替
{
"User": {
"Username": "7325c1de-b05b-4f84-b321-9adc6e61f4a2",
"Enabled": true,
"UserStatus": "FORCE_CHANGE_PASSWORD",
"UserCreateDate": 1548099495.428,
"UserLastModifiedDate": 1548099495.428,
"Attributes": [
{
"Name": "sub",
"Value": "7325c1de-b05b-4f84-b321-9adc6e61f4a2"
},
{
"Name": "phone_number",
"Value": "+15555551212"
},
{
"Name": "email",
"Value": "diego@example.com" …Run Code Online (Sandbox Code Playgroud) 我刚开始在我的应用程序中使用 AWS Cognito,我按照说明安装了 Amplify 并创建了用户池和身份池并设置了所有内容。我创建了一个注册表单并在没有问题Aut.signUp()和确认电子邮件的情况下进行了注册。
但是当我尝试登录时,我输入了我的凭据并得到 NotAuthorizedException,用户名或密码不正确。
我是这样登录的:
Auth.signIn(user.Username, user.Password)
.then((res) => {
AsyncStorage.setItem('token', JSON.stringify(user))
.then(res =>{
console.log('saved')
})
.catch(err=>{
console.log(err)
})
Run Code Online (Sandbox Code Playgroud)
无论我在输入字段中输入什么,我都会收到此错误。我刚开始使用 Amazon AWS,实在想不出问题
amazon-cognito ×10
aws-lambda ×2
adfs ×1
adfs2.0 ×1
adfs3.0 ×1
amplifyjs ×1
aws-amplify ×1
aws-cli ×1
aws-sts ×1
boto3 ×1
node.js ×1
paginator ×1
python ×1
react-native ×1
terraform ×1