【问题标题】:AWS Cognito - create groups from ADFS as Cognito GroupsAWS Cognito - 从 ADFS 创建组作为 Cognito 组
【发布时间】:2019-08-09 22:23:27
【问题描述】:

应用通过 Open ID Connect 协议与 AWS Cognito 进行通信,该协议连接到 ADFS,通过 SAML 进行通信。 Cognito 本质上是“代理”ADFS 服务器。

ADFS 拥有应用程序所需的 组映射,我想将这些组作为实际的 Cognito 组导入 Cognito - 然后应用程序将从 cognito:groups 从ID 令牌 Cognito 提供。

在 AWS Cognito 用户池设置中,我看不到将 ADFS 组映射到 Cognito 组的方法 - 我必须绝对依赖我的用户池的自定义属性,我可以映射到 ADFS 属性,或者我我错过了一些允许 Cognito 动态创建新组并自动将用户分配到 Cognito 中的组的配置?

编辑:澄清一下,是否可以设置 Cognito 在导入用户时添加/创建组(不是作为自定义属性,而是实际可管理的 cognito 组)?

【问题讨论】:

  • @Sagar ADFS、Cognito 和应用程序已经在一起讨论了 - 我的知识差距是 ADFS 中的组是否可以配置为 Cognito 组,或者我是否必须依赖 Cognito 用户的自定义属性保存组名列表

标签: amazon-cognito saml openid-connect adfs user-management


【解决方案1】:

我遇到了同样的问题,我也没有在 Cognito 中找到静态映射选项。

我看到的唯一方法是将 AD 组映射到 Cognito 中的 custom:adgroups 属性,并设置 Cognito“预令牌生成”lambda 触发器。 lambda 读取 custom:adgroups 的值并手动覆盖用户的 Cognito 组。

注意 - 这不会永久更改 cognito 用户组,仅针对当前会话,但从应用程序的角度来看,这正是我所需要的。

请在此处查看虚拟静态(非条件)ADMIN 组分配示例:

def lambda_handler(event, context):
print(f'incoming event: {json.dumps(event)}')

# manual cognito group override
if event['triggerSource'] == "TokenGeneration_HostedAuth":
    event['response'] = {
            "claimsOverrideDetails": {
                "groupOverrideDetails": {
                    "groupsToOverride": [
                        "ADMIN"
                    ]
                }
            }
        }

return event

更详细的文档在这里:https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html

【讨论】:

【解决方案2】:

this link 中记录了如何使用 Cognito 设置 ADFS。回答您问题的部分是第 4 步第 5 项中的映射。我正在复制以下相关文本:

Choose Attribute mapping. These mappings map the claims from the SAML assertion from AD FS to the user pool attributes.

确保 ADFS 正在发送断言中的组。对于为组设置 ADFS 端 this link 可能很有用。

您可以在 Firefox 中使用 SAML-tracer 插件调试流程。

【讨论】:

  • 谢谢@rsa。我已经进行了集成,我希望知道是否有办法将 ADFS 组映射到实际的认知组。从表面上看,没有,并且 Cognito 组/将用户分配到所述组将必须在 Cognito 内手动管理。我希望有人能够权衡并说出是否绝对可能/不可能。
猜你喜欢
  • 2018-07-28
  • 2017-12-30
  • 2019-09-04
  • 2020-05-04
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
相关资源
最近更新 更多