如何将 SAML 属性从 IdP 映射到 AWS Elastic Search 角色?

问题描述

最近为 AWS Elastic Search 解决方添加的 SAML 支持https://aws.amazon.com/about-aws/whats-new/2020/10/amazon-elasticsearch-service-adds-native-saml-authentication-kibana/

在其文档中列出了支持后端角色: https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/saml.html

例如,在 Okta 中,您可能有一个用户 jdoe,他属于组 admins。如果您将 jdoe 添加到 SAML 主用户名字段,则只有该用户获得完全权限。如果您将管理员添加到 SAML 主后端角色字段,则属于管理员组的任何用户都会获得完全权限。

如果您想使用后端角色(推荐),请在角色键字段的断言中指定一个属性,例如角色或组。这是 SAML-tracer 等工具可以提供帮助的另一种情况。

但有些用户在使用 AWS 控制台完成配置后会遇到问题。

解决方法

答案在 AWS 控制台之外,必须在 Elastic Search 集群中完成,主用户是您在集群中作为内部用户创建的,通过 IAM 角色或使用 SAML 配置中的主用户字段弹性搜索的 AWS 控制台中修改身份验证向导的部分。 您必须:

  1. 创建一个与您的 SAML 属性值匹配的后端角色
  2. 在新的后端角色和实际的弹性搜索角色之间创建映射

在您通过创建自定义属性/声明(如角色或组)并在弹性搜索集群中配置 SAML 身份验证集成来完成配置 IdP 之后。

1.-使用您的主用户登录 Kibana 2.-转到 OpenDistro -> 安全性 -> 角色 -> 您要授予访问权限的角色,即 readall 3.-转到角色屏幕下的映射用户选项卡 4.-在后端角色字段中输入您按照以下步骤创建的 Azure 声明的值:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-enterprise-app-role-management 作为参考,声明值为:user.assignedroles。 声明密钥是您将 Azure 企业应用程序配置为的任何内容。 您将拥有“您选择的声明名称”的键值对:user.assignedroles 5.-在 Kibana 中保存映射

使用 Azure IdP 使用分配给他们的不同 Azure 声明的用户登录 Kibana。 Open Distro Security 插件将解析 SAML 令牌属性,找到 user.assignedroles 的字段,并将其作为 Kibana 后端角色映射到实际的 Elastic Search 角色。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...