使用SAML登录OpenSearch Dashboard有
两种方式: SP-initiated
或 IdP-initiated authentication
,
Service provider (SP) initiated:
顾名思义,是从服务提供端来访问。访问Openserach Dashboard
(https://my-domain.us-east-1.es.amazonaws.com/_dashboards), 然后跳转到认证页面,登录后再跳转到OpenSearch Dashboard
Identity provider (IdP) initiated:
顾名思义是从认证端来访问。通过identity provider(Okta)
访问并登录,然后从应用目录中选择OpenSearch Dashboards
本文介绍SP-initiated
这种方式
fine-grained access control
OpenSearch Service Assertion Consumer Service(ACS)
登录到Okta帐号,在Groups下面点击添加:
组的名称为OpenSearch
,点击确认:
在People页面创建新的用户:
输入用户名和邮箱,Group选择之前创建的OpenSearch
,点击保存:
在邮件中会收到一封邮件,点击并完成注册。
在OpenSearch中编辑安全配置:
开启SAML验证:
能看到不同的URL地址,先保持这个页面不要关闭,后面会用到:
转到okta,在Applications中创建App Integration:
选择SAML 2.0
, 进入下一步:
为App Name设置为OpenSearch
,进入下一步:
在SAML设置部分,使用以下值:
Single Sign on URL = https://vpc-XXXXX-XXXXX.us-west-2.es.amazonaws.com/_dashboards/_opendistro/_security/saml/acs (SP-initiated SSO URL)
Audience URI(SP Entity ID) = https://vpc-XXXXX-XXXXX.us-west-2.es.amazonaws.com (Service Provider entity ID)
Attribute Statements (optional) section.
Group Attribute Statements (optional) section.
进入下一步,选择 I’m a software vendor...
,点击finish完成创建:
创建完成后,在Sign on部分,打开Metadata URL,将XML保存下来:
在Assignments
部分,选择 Assign to Groups
, 选择OpenSearch这个组进行assign:
回到OpenSearch的页面,将刚才下载的XML上传:
SAML master backend role
设置为OpenSearch
(对应Okta的group)。role
or group
. This is another situation in which tools like SAML-tracer
can help.假设有个用户叫
jdoe
, 属于admins
组,如果将
jdoe
添加在SAML master username
里,只有这个用户有所有权限。如果将
admins
添加在SAML master backend role
里,admins
下面的用户都有所有权限。
最后保存设置,等配置生效。
访问dashboard: https://search-test-domain-zim2xr5hjkuxwtlfcscs6c6ome.us-east-1.es.amazonaws.com/_dashboards
使用Okta登录到OpenSearch Dashboard:
当前的用户自动具有all_access
,这是因为之前设置了SAML master backend role
:
没有用户所在的group没有被assign到,访问时会报这个错误:
如果被assign到,但不在master backend role里:
登录dashboard后,默认的role是default_role
:
参考: https://docs.aws.amazon.com/OpenSearch-service/latest/developerguide/saml.html#saml-idp-with-sp