是否可以为 Jira (4.0.1) 和 Confluence (3.1) 的最新版本使用 OpenSSO (express build 8) 实现单点登录解决方案?是否可以完全集成 OpenSSO 用户和组,或者仅集成身份验证级别(这意味着 Jira 和 Confluence 中仍然存在用户存储)?
我已经尝试查找有关此的信息,但这对我来说仍然不清楚。我在以下位置找到了 OpenSSO 的 Seraph 提供程序扩展
https://opensso.dev.java.net/public/extensions/index.html
这个仅提供身份验证并为 Jira 和 Confluence AFAICT 提供纯 SSO。然后我还找到了 Jira 的扩展,它可以更好地与 OpenSSO 集成
http://confluence.atlassian.com/display/JIRAEXT/Sun+Access+Manager+%28OpenSSO%29+Integration
有人对这些扩展和 Jira 和 Confluence 的最新版本有经验吗?
我尝试在 GlassFish 服务器上安装带有 OpenSSO 的设置(使用默认的 OpenSSO 设置,因为这只是一个测试)和 Tomcat 6.0.20 上的 Confluence。我使用 Seraph 提供程序,它可以在 OpenSSO 扩展页面上找到。我按照文档中的描述配置了 Confluence。我使用以下 AMConfig.properties 文件:
com.iplanet.am.naming.url=http://opensso.test.local:8080/opensso/namingservice
com.iplanet.am.cookie.name=iPlanetDirectoryPro
com.sun.identity.agents.app.username=amadmin
com.iplanet.am.service.password=adminadmin
com.iplanet.am.server.protocol=http
com.iplanet.am.server.host=opensso.test.local
com.iplanet.am.server.port=8080
com.iplanet.security.encryptor=com.iplanet.services.util.JCEEncryption
com.iplanet.services.debug.level=MESSAGE
com.iplanet.am.cookie.encode=true
com.iplanet.am.serverMode=false
如您所见,com.iplanet.am.cookie.encode 属性为 true。这也在 OpenSSO 服务器端激活。
在 Confluence 安装中,我最初创建了一个管理员用户“confluenceadmin”。我在 OpenSSO 用户数据存储中创建了一个具有相同 ID 的用户。
当我浏览到 Confluence 站点 ( http://confluence.test.local:8080/ ) 时,我被重定向到 OpenSSO 登录页面(这是正确的)。但是,在 OpenSSO 页面上进行身份验证后,浏览器会进入 Confluence 和 OpenSSO 之间的重定向循环。在 Tomcat 日志中,我发现 Confluence 端出现以下错误:
In SiteMonitor.isAvailable()
amNaming:01/06/2010 04:30:04:463 PM CET: Thread[http-8080-1,5,main]
SiteID http://opensso.pmtools.local:8080/opensso/sessionservice is UP.
PLLClient:01/06/2010 04:30:04:463 PM CET: Thread[http-8080-1,5,main]
sending cookies: iPlanetDirectoryPro=AQIC5wM2LY4SfczS5FTStE+TifKvZv90WatUK11Rea1JT28=@AAJTSQACMDE=#;amlbcookie=null
amSession:01/06/2010 04:30:04:467 PM CET: Thread[http-8080-1,5,main]
ERROR: XMLUtils.fatalError
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
at com.sun.identity.shared.xml.XMLUtils.toDOMDocument(XMLUtils.java:181)
at com.sun.identity.shared.xml.XMLUtils.toDOMDocument(XMLUtils.java:130)
at com.iplanet.dpro.session.share.SessionResponseParser.<init>(SessionResponseParser.java:70)
at com.iplanet.dpro.session.share.SessionResponse.parseXML(SessionResponse.java:152)
at com.iplanet.dpro.session.Session.sendPLLRequest(Session.java:1122)
at com.iplanet.dpro.session.Session.getSessionResponseWithoutRetry(Session.java:1538)
at com.iplanet.dpro.session.Session.getSessionResponse(Session.java:1646)
at com.iplanet.dpro.session.Session.doRefresh(Session.java:1413)
at com.iplanet.dpro.session.Session.access$300(Session.java:108)
at com.iplanet.dpro.session.Session$3.run(Session.java:1385)
....
关于如何进行的任何提示?
顺便说一句,我知道 Atlassian 为中央用户管理和单点登录提供 Crowd。但是,我们希望标准化 OpenSSO。