目标
使用okta作为splunk单点登录身份提供程序,通过saml身份验证配置,可实现通过okta平台账号单点登录splunk应用
环境准备
1. okta环境
首先在okta上注册一个账号,注册地址https://login.okta.com/signin/register/ ,注册完成后,用自己的地址和账号进行登录,如下图:
2. splunk环境
需要有一个可以通过公网访问的splunk环境,本实例为splunk9.02版本
配置步骤
1. 获取splunk元数据
(1)登录splunk应用,http://yoursplunkdomain:port/,点击“设置”-“验证方法”,如下图:
(2)选中 “SAML”,然后点击“配置splunk来使用SAML”,如下图:
(3)点击下载SP元数据文件,下载后文件名为 SPMetadata.xml ,内容如下图:
(4)将上面xml中,‘ds:X509Certificate’ 和‘</ds:X509Certificate>'中间部门加密的证书内容复制出来,保存到新的文本中,如保存到 splunkCert.txt 文件中,然后在首行和末行分别加上
“-----BEGIN CERTIFICATE-----”
和
“-----END CERTIFICATE-----”
如下图:
2. 配置okta
(1)登录 okta 环境,如下图:
(2)点击 Add APP,如下图
(3)在上面搜索框里搜索 splunk 应用,并添加
添加splunk应用
(4)配置 splunk 应用
在上图 红框中填写 splunk应用访问地址(需公网访问地址),然后点击 next ,如下图:
在 role选项中,选择 正则匹配,匹配所有角色组
勾选“Enable Single Logout” ,然后上传 前面导出的 spluntCert.txt文件,上传后显示如下图:
在 Entity ID选项中,填写实例ID(自定义,要和后面splunk中配置保持一致,这里填 splunkEntityId )
其他地方默认即可,然后点击 Done ,进入应用授权页面,如下图:
点击 授权给用户,如下图:
选中 splunk test用户,点击右侧Assign
如下图:
保存并返回
点击 完成
授权给角色组:
选择 splunkadmin组,并授权
完成之后如下图:
导出 okta 元数据,点击Sign On标签,
找到 SAML Sigining Certificates
点击 查看IDP元数据,如下图:
复制元数据内容(红框中部分)
3. 配置splunk saml
(1)用管理员账号登录 splunk ,进入“设置”-“验证方法”,配置SMAL,如下图:
(2)将 IDP的元数据内容粘贴到上图红框中,并点击 应用,如下图
点击应用后,下方会自动填充内容,填写 “实例ID”(和okta中设置的保持一致)
勾选 “签名验证请求”
在别名选项中,如下图:
默认无需填写,如果IDP自定义了字段,这里就需要和IDP中保持一致(这里不用填写,默认为空即可)
高级设置中,如果是搜索头集群,需要填写负载均衡器的地址(我这里是在搜索头集群中配置,填写的为负载均衡地址,和okta中配置的splunk应用地址一样)
保存配置后,创建SAML组,点击“新组”,
组名定义为 splunkadmin(和okta中的组名保持一致)
给该组赋予 admin 角色,则通过okta登录的账号具有splunk admin的权限
配置完成后,进入“设置”-“验证方法”,如下图:点击 重新加载验证配置,即可完成saml配置
4. 登录验证
在浏览器中访问原splunk登录地址,会自动跳转到 okta 登录,如下图:
输入 okta 被授权登录splunk的账号和密码,点击登录即可访问splunk应用,如下图:
在用户中,可以看到通过saml验证的用户,如下图:
参考教程:https://www.splunk.com/en_us/blog/tips-and-tricks/configuring-okta-saml-single-sign-on-with-splunk-cloud-using-the-okta-splunk-cloud-app.html