似乎大多数WIF信息对于在整个应用程序中启用联合身份验证很有用.我有兴趣使用API创建SAML身份验证请求并接收/解释SAML响应.
我在SOL 阅读SAML令牌的SAML属性上发现了以下帖子,这使我在接收和解释SAML响应方面朝着正确的方向前进.任何人都可以向我提供有关如何使用API创建SAML请求的更多信息吗?
一般来说,API上的更多信息(阅读材料,视频等)将不胜感激.
故事:
我有一个Cognito用户池与用户.
此用户池是联合身份池中的身份验证提供程序.
我有一个S3存储桶,用户只能通过Auth Role上的策略上传到私有路径,如下所示:
阿尔恩:AWS:S3 ::: BUCKET_NAME/$ {cognito-identity.amazonaws.com:sub}/*
用户通过aws javascript sdk直接从Web浏览器上传.
现在这很好用,我的用户仅限于他们上传的位置.他们上传的文件最终会显示桶中的路径,如下所示:
美东1:0f26319c-1233-4c71-afb6-fac96a798ffb/random_file_name.txt
然后我有一个lambda,只要添加一个文件,就会从这个S3桶中触发.为了澄清,用户不会调用lambda
问题:
我想从lamda访问用户池中的用户属性.我以为我可以使用cognito-identity sub进行查找.但是,我似乎无法找到使用SDK api的方法来实现这一点.
使用此API:http: //boto3.readthedocs.io/en/latest/reference/services/cognito-identity.html#CognitoIdentity.Client.describe_identity 我能够获取登录/用户池,但不能获取与之关联的用户名此身份证.
如果我有用户名,那么我可以使用api:http://boto3.readthedocs.io/en/latest/reference/services/cognito-idp.html? highlight= cognito#CognitoIdentityProvider.Client.admin_get_user
有关如何使用联合身份ID查找用户属性的任何想法?
amazon-s3 federated-identity amazon-web-services aws-lambda aws-cognito
通过用户名和密码或使用“aws-amplify”中的 { Auth } 联合身份可以轻松登录 AWS Cognito 会话
Auth.signIn({ username: email, password: password})
Run Code Online (Sandbox Code Playgroud)
或者
Auth.federatedSignIn({ provider: 'Google' }); // or 'SignInWithApple' || 'Facebook'
Run Code Online (Sandbox Code Playgroud)
通过以下方式可以轻松退出 Cognito 会话
Auth.signOut();
Run Code Online (Sandbox Code Playgroud)
可能值得注意的是,我们使用 expo-web-browser 来启动应用内浏览器会话,而不是定向到外部 safari/chrome 窗口。
问题是 Auth.signOut() 调用不会撤销 Google/Apple/Facebook 会话中的令牌,因此每当Auth.federatedSignIn({ provider: 'Google' });再次调用时,用户已经登录。
这是次优的,因为这意味着如果用户通过 Google / Facebook / Apple 登录,他们将无法使用不同的 Google / Facebook / Apple 帐户登录。它还使得调试联合提供商首次登录时发生的问题变得非常困难,因为它不允许测试人员更改帐户。
有没有人在最新版本的 Expo 中找到有效的解决方案?(截至撰写本文时为 35)
这是一个类似的问题,没有答案并且没有提供很多背景信息
本文档建议致电
GET https://mydomain.auth.{region}.amazoncognito.com/logout?
client_id={CLIENT_ID}&
logout_uri=https://myclient/logout
Run Code Online (Sandbox Code Playgroud)
但我在调用时没有在我的应用程序中使用此方法
fetch('https://{MY_DOMAIN}.auth.us-west-2.amazoncognito.com/logout?client_id={CLIENT_ID}&redirect_uri=exp://127.0.0.1:19000&response_type=code', {
method: 'GET',
//Request Type
})
Run Code Online (Sandbox Code Playgroud)
从我的注销按钮
这个线程 …
Google和Facebook都可以在Ping Identity或Microsoft ACS等安全联合设置中充当身份提供商.
有谁知道是否有可能将Apple Id添加为身份提供者?
我正在尝试选择forgerock身份管理解决方案(openAM,openIDM)和wso2身份服务器之一来实现身份和访问管理解决方案.
我有兴趣使用以下功能:
两种开源产品都看起来很可行.我有兴趣拥有上述所有功能以及良好的API来实现这些功能,以及积极的社区支持.
哪一个是两个中最好的?
谢谢.
除了thinktecture的身份服务器之外,还有谁知道其他任何身份服务器?我需要评估一些,但我找不到了?
我想使用Cognito用户池进行Facebook登录,这可能是使用内置的登录表单,但我需要使用自己的.
从理论上讲,当谈到自定义表单时,它应该不难:在我从FB收到用户对象后,我将用户和电子邮件属性绑定到我的用户池中的属性并保存.
但是如何处理密码字段和未来的身份验证?在这里,我在旅程中失败了......
...
userPool.signUp('FoobarUser', '**password?**', attributeList, null, function(err, result){
...
Run Code Online (Sandbox Code Playgroud)
在深入研究文档时,我尝试实现一个身份池(联合身份),设法以数据集的形式保存用户信息,但后来我意识到,如果可能的话,查询这些设置将是一个巨大的痛苦.
也许我没有理解这些概念,如果有人可以建议使用Cognito以一种组织良好的方式管理facebook登录,我会非常感激.
authentication federated-identity amazon-web-services facebook-graph-api amazon-cognito
我正在开发一个将使用两个身份验证提供程序的应用程序:
对于前者,我没有任何问题,一切都按预期工作.但是,在使用Cognito用户池设置身份验证时,我正在接着一个墙.我使用的是AWS SDK 2.4.9,XCode 8和Swift 3.
我知道已经有很多问题已经被提出,并且有很多"指南".但是,很多人都会回答/制作过时的文档和SDK.甚至官方AWS文档也已过时.
我要经历的身份验证步骤如下:
1.配置初始认知池
/// Set the default service configuration
let serviceConfiguration = AWSServiceConfiguration(region: AWSRegionType.usEast1, credentialsProvider: nil)
AWSServiceManager.default().defaultServiceConfiguration = serviceConfiguration
/// Create a pool configuration and register it for a specific key to use later
let poolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: appClientID, clientSecret: appClientSecret, poolId: poolID)
AWSCognitoIdentityUserPool.registerCognitoIdentityUserPool(with: poolConfiguration, forKey: poolKey)
/// Create a pool for a specific predefined key
pool = AWSCognitoIdentityUserPool(forKey: poolKey)
Run Code Online (Sandbox Code Playgroud)
2.针对Cognito用户池验证用户
user.getSession(username, password: password, validationData: nil).continue({ (task) -> AnyObject? in
if let …Run Code Online (Sandbox Code Playgroud) 我有一个使用 AWS Amplify 构建的 React Web 应用程序我已经添加了 Cognito 用户池的身份验证,我没有使用用户名,我只使用电子邮件/电话选择了登录,我不想要用户名,但 Cognito 还是创建了一个随机用户名.
我希望用户使用他们的电子邮件或使用一个社交提供商(Facebook 或 Google)登录,这无关紧要,他们应该可以根据电子邮件访问同一个帐户。
我认为很正常的做法。但是,当我第一次尝试使用社交提供商登录时,我注意到 Cognito 没有为我提供相同的帐户,而是创建了一个新帐户,使用不同的用户名,并在用户池中将 EXTERNAL_PROVIDER 作为帐户状态
所以,我认为这可能只是一些映射不正确,我去了联邦部分的属性映射,我看到 Facebook Id 和 Google Sub 被分配给用户名,我试图删除它,为了我的令人惊讶的是,它被分配回了用户名。然后我想“我可以创建一个自定义属性来存储该信息,它应该没问题”。
所以我这样做了,为 Facebook 创建了一个属性,为 GoogleId 创建了一个属性......再次尝试......不,仍然回到用户名,但没有错误消息,什么都没有......
我去寻求帮助文档并找到了这个
目前,只有 Facebook id、Google sub、login with Amazon user_id 和 Sign in with Apple sub 属性可以映射到 Amazon Cognito 用户池用户名属性。
如果这总是将每个提供者 ID 与用户名相关联,那么就无法合并这些帐户我认为可能是我需要设置一个联合身份池,但阅读它似乎是用来提供 IAM 角色/外部用户的权限,我不想。
我怎么能做到这一点?
federated-identity amazon-web-services amazon-cognito aws-amplify
通过在 Cognito 调用中传递两个登录名,可以将多个 AWS Cognito 联合身份(例如,同一电子邮件的 Facebook 和 Google 登录名)合并为一个身份。但是知道我可以合并身份并不能回答我是否应该合并身份。
合并身份与保持身份分开的利弊是什么?(我们将用户配置文件存储在我们自己的数据库中;我们不使用 Cognito 用户池。如果我们不合并身份,那么我们的后端数据库将在我们的后端存储每个身份 ID 到正确用户 ID 的映射-结束数据库。)
这是当同一用户尝试同时使用 Facebook 和 Google 进行身份验证时应用程序的当前工作流程:
getOrCreateUserProfileLambda 函数,该函数使用 Cognito 身份 ID 作为密钥来查看该 Cognito 身份是否已与用户关联。getOrCreateUserProfileLambda 函数找不到匹配此身份 ID 的现有用户,但确实找到了具有相同电子邮件地址的另一个用户。此时我们有三个选择:
.net ×1
acs ×1
amazon-s3 ×1
apple-id ×1
aws-amplify ×1
aws-cognito ×1
aws-lambda ×1
c# ×1
expo ×1
federation ×1
ios ×1
openam ×1
openidm ×1
saml ×1
swift ×1
wif ×1
wso2 ×1