amazon-cognito - AWS Cognito - 从 ADFS 创建组作为 Cognito 组

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

一个应用程序正在通过 Open ID Connect 协议(protocol)与 进行通信AWS 认知 , 连接到 ADFS ,通过 SAML 进行通信。 Cognito 本质上是“代理”ADFS 服务器。
ADFS 持有 组映射应用程序需要,我想将这些组作为实际的 Cognito 组导入 Cognito - 然后应用程序将从 cognito:groups 读取这些组来自 Cognito 提供的 ID token 。
在 AWS Cognito 用户池设置中,我看不到将 ADFS 组映射到 Cognito 组的方法 - 我必须绝对依赖我可以映射到 ADFS 属性的用户池的自定义属性,还是我错过了一些允许 Cognito 动态创建新组并自动将用户分配到 Cognito 中的组的配置?
编辑:澄清,导入用户时是否可以设置 Cognito 以添加/创建组(不是作为自定义属性,而是实际可管理的 cognito 组)?

最佳答案

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

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

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

请在此处查看虚拟静态(非条件)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

关于amazon-cognito - AWS Cognito - 从 ADFS 创建组作为 Cognito 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55240196/

相关文章:

amazon-web-services - 通过链接 API key 、使用计划和 Cognito 构建可计费的 API

python - 如何在 Python 中使用 Cognito 凭据调用 API 网关

amazon-web-services - AWS Cognito 中的 Microsoft oidc 允许多个租户

request - ADFS 3.0 是否尊重 SAML 请求中发送的主题属性?

Java 支持 WS-Fed 与 SAML 作为登录协议(protocol)

oauth-2.0 - IdentityServer4中nonce和state参数是如何存储和传输的?

reactjs - 使用 AWS Cognito 对用户进行身份验证时出现网络错误

Tomcat 使用 FormAuthentication 而不是 KeyCloak Tomcat Valve SAML 身份验证

c# - 如何使 ASP.NET 使用 Owin OpenId Connect 库创建经过身份验证的 session ?

kubernetes - 在不同的 Keycloak 实例之间同步用户