标签: federated-identity

使用WIF创建SAML身份验证请求

似乎大多数WIF信息对于在整个应用程序中启用联合身份验证很有用.我有兴趣使用API​​创建SAML身份验证请求并接收/解释SAML响应.

我在SOL 阅读SAML令牌的SAML属性上发现了以下帖子,这使我在接收和解释SAML响应方面朝着正确的方向前进.任何人都可以向我提供有关如何使用API​​创建SAML请求的更多信息吗?

一般来说,API上的更多信息(阅读材料,视频等)将不胜感激.

.net c# saml federated-identity wif

11
推荐指数
2
解决办法
1万
查看次数

Cognito:联合身份标识和用户属性

故事:

我有一个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

10
推荐指数
1
解决办法
807
查看次数

如何注销 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)

从我的注销按钮

这个线程 …

federated-identity amazon-cognito expo

10
推荐指数
0
解决办法
1742
查看次数

非Apple应用程序可以使用Apple ID吗?

Google和Facebook都可以在Ping Identity或Microsoft ACS等安全联合设置中充当身份提供商.

有谁知道是否有可能将Apple Id添加为身份提供者?

federated-identity federation acs apple-id

9
推荐指数
1
解决办法
1829
查看次数

forgerock身份管理解决方案与WSO2身份服务器

我正在尝试选择forgerock身份管理解决方案(openAM,openIDM)和wso2身份服务器之一来实现身份和访问管理解决方案.

我有兴趣使用以下功能:

  • 单点登录(SSO)
  • 基于策略的访问控制
  • 管理用户身份
  • 连接到中央存储库,如Active Directory,OpenLdap,Oracle Internet Directory等.
  • 等等..

两种开源产品都看起来很可行.我有兴趣拥有上述所有功能以及良好的API来实现这些功能,以及积极的社区支持.

哪一个是两个中最好的?

谢谢.

wso2 identity-management federated-identity openam openidm

9
推荐指数
2
解决办法
8416
查看次数

有没有众所周知的thinktecture的身份服务器替代品?

除了thinktecture的身份服务器之外,还有谁知道其他任何身份服务器?我需要评估一些,但我找不到了?

federated-identity single-sign-on thinktecture-ident-server

9
推荐指数
2
解决办法
4245
查看次数

Cognito用户池 - 是否可以为Facebook登录创建自定义注册/表单?

我想使用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

9
推荐指数
1
解决办法
1647
查看次数

AWS:如何根据Cognito Pool正确验证用户身份并将其用于Cognito Federated Identity?

我正在开发一个将使用两个身份验证提供程序的应用程序:

  • Facebook的
  • 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)

federated-identity amazon-web-services ios swift

8
推荐指数
1
解决办法
2661
查看次数

AWS Amplify:如何为基于电子邮件的身份验证映射社交提供商属性?

我有一个使用 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

8
推荐指数
1
解决办法
2737
查看次数

多个社交提供商的 AWS Cognito 联合身份:合并身份或将它们分开更好?

通过在 Cognito 调用中传递两个登录名,可以将多个 AWS Cognito 联合身份(例如,同一电子邮件的 Facebook 和 Google 登录名)合并为一个身份。但是知道我可以合并身份并不能回答我是否应该合并身份。

合并身份与保持身份分开的利弊是什么?(我们将用户配置文件存储在我们自己的数据库中;我们不使用 Cognito 用户池。如果我们不合并身份,那么我们的后端数据库将在我们的后端存储每个身份 ID 到正确用户 ID 的映射-结束数据库。)

这是当同一用户尝试同时使用 Facebook 和 Google 进行身份验证时应用程序的当前工作流程:

  1. 在客户端(它是一个 Web 应用程序)上,新用户单击登录并选择使用 Facebook 登录。
  2. 客户端代码将用户登录到 Cognito Federated Identities 并获取新的联合身份 ID,该 ID 被授权调用我们的 AWS Lambda 函数。
  3. 客户端调用我们的getOrCreateUserProfileLambda 函数,该函数使用 Cognito 身份 ID 作为密钥来查看该 Cognito 身份是否已与用户关联。
  4. 因为在我们的数据库中没有找到具有此身份 ID 的其他用户,并且因为没有其他用户拥有此电子邮件地址(因为它是一个全新的用户),所以我们的 Lambda 函数将在我们的数据库中创建一个新的用户配置文件并返回该配置文件返回给用户。
  5. 稍后,用户尝试使用 Google 登录(在同一台设备或另一台设备上)。
  6. 为此 Google 身份创建了一个新的联合身份。
  7. 我们的getOrCreateUserProfileLambda 函数找不到匹配此身份 ID 的现有用户,但确实找到了具有相同电子邮件地址的另一个用户。

此时我们有三个选择:

  • A) 向用户返回错误信息,例如“请使用您的 Facebook 帐户登录”。这是我们想要改变的当前行为。
  • B) 通过要求用户也使用 Facebook 登录来合并身份,然后将两个身份传递给 Cognito,Cognito 将合并它们。见 …

federated-identity amazon-web-services amazon-cognito

8
推荐指数
1
解决办法
727
查看次数