AWS Cognito-从ADFS创建组

问题描述 投票:5回答:2

一个应用程序正在与AWS Cognito(通过Open ID Connect协议)进行通信,该AWS Cognito已连接到ADFS(通过SAML进行通信)。 Cognito本质上是“代理” ADFS服务器。

[ADFS拥有应用程序所需的组映射,我想在应用程序中显示这些组(由ID令牌中的cognito:groups属性检索。

在AWS Cognito用户池设置中,我看不到将ADFS组映射到Cognito组的方法-我需要依靠我的用户池的自定义属性来映射到ADFS属性,还是我缺少一些配置,这些配置允许Cognito动态创建新组并自动将用户分配给Cognito中的组?

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

amazon-cognito saml openid-connect adfs user-management
2个回答
0
投票

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

到目前为止,我发现的唯一方法是将AD组映射到Cognito中的custom:adgroups属性,并设置一个Cognito“令牌生成前” lambda触发器。 lambda读取custom:adgroups的值,然后手动将用户分配给适当的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


-1
投票

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正在发送断言中的组。为组[AD]设置组this link可能会有用。

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

© www.soinside.com 2019 - 2024. All rights reserved.