JIRA6 免插件SAML认证集成
bccastle 7/7/2020 单点登录SSO
# 说明
本文介绍JIRA6如何实现免插件进行SAML认证集成。
7.0以上版本的JIRA和Confluence自带SSO2.0配置,请参考 JIRA & Confluence配置单点登录
SSO插件配置,请参考Confluence 、Jira的SAML插件认证
# 认证配置
# JIRA 配置
1.将 customauth-jira-6.1.2.jar放到 WEB-INF下的lib包;
2.将 jira_onelogin.xml 放到bin目录和bin上级目录;
3.查看xml内容,获取参数信息;
参数配置
参数 | 参数说明 |
---|---|
certificate | IDaaS中IDP证书 |
assertion(断言消费地址) | http(s)😕/jira地址/secure/Dashboard.jspa |
issuer | 同上即可 |
ssotarget | IDaaS中IDP配置中的SSO URL |
- 4.修改classes 目录下的seraph-config.xml 文件;
在xml文件中新增:
<authenticator class="com.onelogin.jira.saml.SSOAuthenticator"/>
1
- 5.修改secure\views目录下dashboard.jsp;
在jsp文件中新增:
if(request.getSession().getAttribute("os_destination") != null){
String os_destination = request.getSession().getAttribute("os_destination").toString();
request.getSession().setAttribute("os_destination",null);
response.sendRedirect(os_destination);
}
1
2
3
4
5
2
3
4
5
- 6.修改include 目录下的loginform.jsp;
在jsp文件中新增:
<%@ page import= "com.onelogin.jira.saml.SSOAuthenticator" %>
if(request.getParameter("SAMLResponse") == null)
{
String redirectURL =
request.getSession().getAttribute("reqString").toString();
response.sendRedirect(redirectURL);
}else{
if(jiraAuthenticationContext.getLoggedInUser() != null)
{
if(request.getSession().getAttribute("os_destination") != null)
{
String os_destination =
request.getSession().getAttribute("os_destination").toString();
response.sendRedirect(os_destination);
}else{
response.sendRedirect("/");
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# IDaaS配置
1.添加内置应用JIRA;
2.配置应用参数;
参数 | 参数说明 |
---|---|
SP Entity ID | Jira基础访问地址(此地址在jira_onelogin.xml中assertion中获取) |
ACS URL | 基础访问地址(此地址在jira_onelogin.xml中assertion中获取) |
Audience URI | 基础访问地址(此地址在jira_onelogin.xml中assertion中获取) |
NameID Format | 选择 urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified |
Name ID | 账号名 |
- 3.账号授权 在内置应用中,选择JIRA图标,选择【授权管理】--》添加账号
此处应用账号名需和JIRA中的Username一致。
# 登录验证
配置saml认证后JIRA的用户名密码登录入口将失效。