Hi all,
I am trying to implement Multi Factor Authentication (MFA) in OAM. I am using OIM and the OUD LDAP server. I have configured everything according to these docs:
- Protecting an Application Deployed in WebLogic Server
- Configuring the Adaptive Authentication Plug-in in the Oracle Access Management Console
- OAMSSA-20027: Could not get user : null, idstore using Adaptive Authentication Service (Doc ID 2152202.1)
- How to Configure OAM for One-Time Passwords for Use with the Oracle Mobile Authenticator Application (Doc ID 2307570.1)
Here is what happens:
- The user requests a protected resource.
- OAM redirects the user to the login screen.
- The user enters their LDAP user ID & password.
- OAM successfully authenticates the user against the LDAP server
- OAM then attempts to lookup the user's email and SMS number from the OUD LDAP server
- This is where it fails.
- I see the exception below in the OAM server log
| 1 | | 0 | | wls_oam1 | | oracle.oam.plugin | | idm.us.oracle.com |
| |
| | | oracle.security.am.sfa.SFAUDMStoragegetFieldNamesAndValues | | oracle.security.am.foundation.udmrtstore.UDMRuntimeStoreException: User doesn't exist. at oracle.security.am.foundation.udmrtstore.impl.UDMRuntimeStoreImpl.getUserProfile(UDMRuntimeStoreImpl.java:963) at oracle.security.am.sfa.SFAUDMStorage.getFieldNamesAndValues(SFAUDMStorage.java:267) at oracle.security.am.sfa.processor.SFASMSProcessor.getAvailableRecepients(SFASMSProcessor.java:226) at oracle.security.am.sfa.plugin.AbstractOAMSFAPlugin.initPluginClientResponse(AbstractOAMSFAPlugin.java:622) at oracle.security.am.sfa.plugin.AbstractOAMSFAPlugin.process(AbstractOAMSFAPlugin.java:208) at oracle.security.am.engine.authn.internal.executor.PlugInExecutor.execute(PlugInExecutor.java:204) at oracle.security.am.engine.authn.internal.executor.AuthenticationSchemeExecutor.execute(AuthenticationSchemeExecutor.java:113) at oracle.security.am.engine.authn.internal.controller.AuthenticationEngineControllerImpl.validateUser(AuthenticationEngineControllerImpl.java:269) at oracle.security.am.engines.enginecontroller.AuthnEngineController.authenticateUser(AuthnEngineController.java:986) at oracle.security.am.engines.enginecontroller.AuthnEngineController.processEvent(AuthnEngineController.java:341) at oracle.security.am.controller.MasterController.processEvent(MasterController.java:596) at oracle.security.am.controller.MasterController.processRequest(MasterController.java:788) at oracle.security.am.controller.MasterController.process(MasterController.java:708) at oracle.security.am.pbl.PBLFlowManager.delegateToMasterController(PBLFlowManager.java:209) at oracle.security.am.pbl.PBLFlowManager.handleBaseEvent(PBLFlowManager.java:147) at oracle.security.am.pbl.PBLFlowManager.processRequest(PBLFlowManager.java:107) at oracle.security.am.pbl.transport.http.AMServlet.handleRequest(AMServlet.java:217) at oracle.security.am.pbl.transport.http.AMServlet.doPost(AMServlet.java:173) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:138) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:464) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:121) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:211) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) at oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter(SSOSessionSynchronizationFilter.java:296) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) |
|
Any idea what can cause this problem?
Cheers,
Mike