任何人都可以向我解释SP发起的SSO和IDP发起的SSO之间的主要区别是什么,包括哪个是与ADFS + OpenAM Federation一起实现单点登录的更好解决方案?
我试图用apache tomcat代理安装openam 12 war,如配置sso.But尝试了五十多次,但我只得到错误.
如果我将以下属性值更改为来自webagent的amAdmin,则在tomcat第二个实例中调用受保护的应用程序时,它会一次又一次地重定向到同一页面,但没有得到任何异常.amAdmin是我的openam控制台的管理员用户.
OpenSSOAgentBootstrap.properties/com.sun.identity.agents.app.username =
Run Code Online (Sandbox Code Playgroud)
Tomcat日志中的异常
Apr 16, 2015 5:41:10 PM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.ExceptionInInitializerError
at com.sun.identity.agents.arch.AgentConfiguration.bootStrapClientConfiguration(AgentConfiguration.java:727)
at com.sun.identity.agents.arch.AgentConfiguration.initializeConfiguration(AgentConfiguration.java:1140)
at com.sun.identity.agents.arch.AgentConfiguration.<clinit>(AgentConfiguration.java:1579)
at com.sun.identity.agents.arch.Manager.<clinit>(Manager.java:675)
at com.sun.identity.agents.tomcat.v6.AmTomcatRealm.<clinit>(AmTomcatRealm.java:67)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:145)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1288)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1342)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2770)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
at org.apache.catalina.startup.Catalina.load(Catalina.java:615)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) …
Run Code Online (Sandbox Code Playgroud) 警告!我在这里有点钓鱼之旅,我甚至不确定我问的问题是否完全有意义.请善意回复你!:)
我最近接手了一个目前基于Java + Linux + Tomcat + MySQL的项目.现在,该系统基本上只是一个在后台有一些cron工作的网站,可以移动一些数据等等.在与产品经理合作开发优先顺序时,很清楚他想做什么我需要开始开发面向服务的体系结构(SOA < - buzz word warning!),最终我将结合使用Web服务器和应用程序服务器.注意:我正在考虑转向Glassfish v3.
目前,身份验证和授权在Java代码中处理,用户信息存储在MySQL数据库中.至少在我看来,我需要将其拆分为一个单独的身份验证服务(否则,最终将会出现一堆重复的代码来处理用户身份验证和授权).
我一直在研究单点登录(SSO)类型解决方案并进行一些研究.从我可以收集的信息来看,OpenSSO已被Oracle正式删除,但被ForgeRock收录,现在被称为OpenAM.这似乎非常接近我想要的,但由于我已经有一个基于MySQL的系统,我宁愿有一些东西支持它(或其他一些RDBMS).我在Stack Overflow上找到了它,它似乎表明它基本上是LDAP或什么也没有.
有没有办法让OpenSSO/OpenAM与数据库通信以进行身份验证和授权?
我的问题是:
OpenSSO/OpenAM有哪些其他选择?LDAP是否可行?注意:执行"OpenAM vs"谷歌搜索不会产生太多影响.人们倾向于"自己动手"吗?
任何有助于教育我的关于此主题的想法/建议/链接将不胜感激.提前感谢您的耐心和帮助.
我正在尝试使用与 Spring Security 集成的 ForgeRock OpenAM 设置 OAuth2-OpenID Connect,但收到以下错误
2019-06-17 15:01:42.576 DEBUG 62255 --- [nio-8090-exec-2] .o.s.r.w.BearerTokenAuthenticationFilter :
Authentication request for failed: org.springframework.security.oauth2.core.OAuth2AuthenticationException:
An error occurred while attempting to decode the Jwt:
Signed JWT rejected: Another algorithm expected, or no matching key(s) found
Run Code Online (Sandbox Code Playgroud)
Jwk .wellknown uri 返回以下支持的算法:
"id_token_signing_alg_values_supported": [
"PS384",
"ES384",
"RS384",
"HS256",
"HS512",
"ES256",
"RS256",
"HS384",
"ES512",
"PS256",
"PS512",
"RS512"
]
Run Code Online (Sandbox Code Playgroud)
解码后的 JWT 显示以下标头:
{
"typ": "JWT",
"zip": "NONE",
"alg": "HS256"
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以根据来自标头的值设置特定的 JwtDecoder 或强制 AM 使用一种特定算法?
我正在尝试选择forgerock身份管理解决方案(openAM,openIDM)和wso2身份服务器之一来实现身份和访问管理解决方案.
我有兴趣使用以下功能:
两种开源产品都看起来很可行.我有兴趣拥有上述所有功能以及良好的API来实现这些功能,以及积极的社区支持.
哪一个是两个中最好的?
谢谢.
我尝试使用OpenAM通过以下链接在我现有的Web应用程序中实现SSO
http://fczaja.blogspot.com/2012/06/idp-initiated-sso-and-identity_21.html
PS.我的Web应用程序已经拥有自己的登录页面
现在实现后得到的是,openAM登录页面在我的Web应用程序中受到保护,我需要再次登录我的应用程序
我需要的是,想跳过我的应用程序的登录页面成为单点登录.
那么,谁能告诉我我需要做什么任务呢?我是否需要修改我的应用程序的登录页面?我是否需要任何数据库或数据存储来保存用户登录信息?
我正在尝试使用带有angular2的前端和带有弹簧引导的REST后端来开发Web应用程序.
我需要管理3种类型的身份验证: - 基本登录/密码匹配数据库 - ldap authentification - sso authentification
用户通过身份验证后,后端会生成JWT并发送到前端.所有请求必须在标头中包含jwt以与REST通信.
这时我的websecurity配置是:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableTransactionManagement
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
private static final String LDAP_AUTHENTIFICATION = "ldap";
private static final String SSO_AUTHENTIFICATION = "sso";
@Autowired
private DataBaseAuthentificationProvider authProvider;
@Value("${ldap.provider.url}")
private String ldapProviderUrl;
@Value("${ldap.user.dn.patterns}")
private String userDnPatterns;
@Value("${authentification.type}")
private String authentificationType;
public WebSecurityConfiguration() {
/*
* Ignores the default configuration, useless in our case (session
* management, etc..)
*/
super(true);
}
/**
* Configure AuthenticationManagerBuilder to use …
Run Code Online (Sandbox Code Playgroud) 已经使用OpenDJ和OpenAM的人们的经验是什么?旧版本似乎可以免费使用,但新版本似乎没有免费使用.它们与现有的商业产品相比如何?它们看起来比使用带有CAS的OpenLDAP更好,但看起来并不自由.
请解释OpenDS OpenDJ OpenAM时使用的内容.谢谢.
请注意,我对我提到的应用程序很陌生,因此我可能会错误地使用术语。我添加了一些图表来尽可能地解释自己。
我正在尝试在 APIMAN 中设置 Web 服务身份验证策略(内部使用 Keycloak)
到目前为止,我知道我在 Keycloak 中创建的身份提供程序 (OpenAM) 已正确配置,因为它正在登录页面上运行(参见下图 1)
我还通过 Keycloak 的 OpenID API 成功使用 access_token 来访问 Web 服务;但前提是用户凭证位于 Keycloak 中(与 OpenAM 相反)(参见图 2)
我想要实现的是通过 Keycloak 但使用身份提供者的凭据来验证此 Web 服务客户端,但我不知道如何执行此操作,也不知道是否可能。(见图3)
请注意,我还尝试了使用 OpenAM 背后的 LDAP 进行用户联合,它工作正常,但我想知道是否有办法通过 OpenAM 实现这一点。