Im following the instructions from
https://docs.oracle.com/middleware/1213/odi/administer-develop/security.htm#A2332334
10.7 Configuring External Authentication
and MOS 1510392.1
I used the cn=Directory Manager to create the bootstrap user with odi_credtool.sh andthe cwallet was created successfully ..I moved the files to ~/.odi/oracledi
however when I proceed to
10.7.2 Switching an Existing Master Repository to External Authentication Mode
I am not able to see any users in the Credentials step ...neither from OUD or embedded LDAP..
Created user in OUD and embedded LDAP
I created an OUD provider and I can see the users and groups from the external ldap server in the security realm.
can someone help me ...Im not sure what Im doing wrong.
Below are the contents of jps-config-jse.xml and jps-config.xml:
jps-context-jse.cml
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<jpsConfig xmlns="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" schema-major-version="11" schema-minor-version="1">
<!-- This property is for jaas mode. Possible values are "off", "doas" and "doasprivileged" -->
<property name="oracle.security.jps.jaas.mode" value="off"/>
<propertySets>
<!-- SAML Trusted Issuer -->
<propertySet name="saml.trusted.issuers.1">
<property name="name" value="www.oracle.com"/>
</propertySet>
</propertySets>
<serviceProviders>
<serviceProvider type="CREDENTIAL_STORE" name="credstoressp" class="oracle.security.jps.internal.credstore.ssp.SspCredentialStoreProvider">
<description>SecretStore-based CSF provider</description>
</serviceProvider>
<serviceProvider type="IDENTITY_STORE" name="idstore.xml.provider" class="oracle.security.jps.internal.idstore.xml.XmlIdentityStoreProvider">
<description>XML-based IdStore Provider</description>
</serviceProvider>
<!-- add ldap provider -->
<serviceProvider type="IDENTITY_STORE" name="idstore.ldap.provider" class="oracle.security.jps.internal.idstore.ldap.LdapIdentityStoreProvider">
<description>LDAP-based IdentityStore Provider </description>
</serviceProvider>
<serviceProvider type="POLICY_STORE" name="policystore.xml.provider" class="oracle.security.jps.internal.policystore.xml.XmlPolicyStoreProvider">
<description>XML-based PolicyStore Provider</description>
</serviceProvider>
<serviceProvider type="LOGIN" name="jaas.login.provider" class="oracle.security.jps.internal.login.jaas.JaasLoginServiceProvider">
<description>This is Jaas Login Service Provider and is used to configure login module service instances</description>
</serviceProvider>
<serviceProvider type="KEY_STORE" name="keystore.provider" class="oracle.security.jps.internal.keystore.KeyStoreProvider">
<description>PKI Based Keystore Provider</description>
<property name="provider.property.name" value="owsm"/>
</serviceProvider>
<serviceProvider type="AUDIT" name="audit.provider" class="oracle.security.jps.internal.audit.AuditProvider">
<description>Audit Service</description>
</serviceProvider>
</serviceProviders>
<serviceInstances>
<serviceInstance name="credstore" provider="credstoressp" location="./">
<description>File Based Credential Store Service Instance</description>
</serviceInstance>
<!-- JPS IPLANET LDAP Identity Store Service Instance configuration is here -->
<serviceInstance name="idstore.IPLANET" provider="idstore.ldap.provider">
<property name="subscriber.name" value="cn=users,dc=navy,dc=mil"/>
<property name="idstore.type" value="IPLANET" />
<property name="ldap.url" value="ldaps://servernamehere:1638" />
<property name="bootstrap.security.principal.map" value="jps_map"/>
<property name="bootstrap.security.principal.key" value="jps_key"/>
<!--<property name="user.login.attr" value="mail"/>-->
<extendedProperty>
<name>user.search.bases</name>
<values>
<value>cn=users,dc=this,dc=mil</value>
</values>
</extendedProperty>
<extendedProperty>
<name>group.search.bases</name>
<values>
<value>cn=users,dc=this,dc=mil</value>
</values>
</extendedProperty>
<extendedProperty>
<name>user.filter.object.classes</name>
<values>
<value>inetOrgPerson</value>
</values>
</extendedProperty>
<extendedProperty>
<name>group.filter.object.classes</name>
<values>
<value>groupOfUniqueNames</value>
</values>
</extendedProperty>
<property name="username.attr" value="uid" />
<property name="groupname.attr" value="cn" />
</serviceInstance>
<serviceInstance name="idstore.xml" provider="idstore.xml.provider" location="./system-jazn-data.xml">
<description>File Based Identity Store Service Instance</description>
<property name="subscriber.name" value="jazn.com"/>
</serviceInstance>
<serviceInstance name="policystore.xml" provider="policystore.xml.provider" location="./system-jazn-data.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>
<serviceInstance name="idstore.loginmodule" provider="jaas.login.provider">
<description>Identity Store Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.idstore.IdStoreLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<!-- KeyStore Service Instance -->
<serviceInstance name="keystore" provider="keystore.provider" location="./default-keystore.jks">
<description>Default JPS Keystore Service</description>
<property name="keystore.provider.type" value="file"/>
<property name="keystore.file.path" value="./"/>
<property name="keystore.type" value="JKS"/>
<property name="keystore.csf.map" value="oracle.wsm.security"/>
<property name="keystore.pass.csf.key" value="keystore-csf-key"/>
<property name="keystore.sig.csf.key" value="sign-csf-key"/>
<property name="keystore.enc.csf.key" value="enc-csf-key"/>
</serviceInstance>
<serviceInstance name="audit" provider="audit.provider">
<property name="audit.filterPreset" value="None"/>
<property name="audit.maxDirSize" value ="0"/>
<property name="audit.maxFileSize" value ="104857600"/>
<property name="audit.loader.jndi" value="jdbc/AuditDB"/>
<property name="audit.loader.interval" value="15" />
<property name="audit.loader.repositoryType" value="File" />
</serviceInstance>
<!-- SAML Login Module -->
<serviceInstance name="saml.loginmodule" provider="jaas.login.provider">
<description>SAML Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.saml.JpsSAMLLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<propertySetRef ref="saml.trusted.issuers.1"/>
</serviceInstance>
<!-- JPS SAML2 Login Module -->
<serviceInstance name="saml2.loginmodule" provider="jaas.login.provider">
<description>SAML2 Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.saml.JpsSAML2LoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<propertySetRef ref="saml.trusted.issuers.1"/>
</serviceInstance>
<!-- This is Kerberos Login Module Instance. -->
<serviceInstance name="krb5.loginmodule" provider="jaas.login.provider">
<description>Kerberos Login Module</description>
<property name="loginModuleClassName" value="com.sun.security.auth.module.Krb5LoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<property name="storeKey" value="true"/>
<property name="useKeyTab" value="true"/>
<property name="doNotPrompt" value="true"/>
<property name="keyTab" value="./krb5.keytab"/>
<property name="principal" value="HOST/localhost@EXAMPLE.COM"/>
</serviceInstance>
<!-- Digest Authenticator Login Module Instance -->
<serviceInstance name="digest.authenticator.loginmodule" provider="jaas.login.provider">
<description>Digest Authenticator Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.digest.DigestLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<!-- X509 Certificate Authenticator Login Module Instance -->
<serviceInstance name="certificate.authenticator.loginmodule" provider="jaas.login.provider">
<description>X509 Certificate Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.x509.X509LoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<!-- WSS Username token digest login module -->
<serviceInstance name="wss.digest.loginmodule" provider="jaas.login.provider">
<description>WSS Digest Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.digest.WSSDigestLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<!-- User Authentication Login Module -->
<serviceInstance name="user.authentication.loginmodule" provider="jaas.login.provider">
<description>User Authentication Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.authentication.JpsUserAuthenticationLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<!--following instance define here is the cwallet.sso where the credential is stored, the default setting here is the current directory of this jps-config.xml -->
<serviceInstance location="./" provider="credstoressp" name="bootstrap.credstore">
<property value="./" name="location"/>
</serviceInstance>
<!-- User Assertion Login Module -->
<serviceInstance name="user.assertion.loginmodule" provider="jaas.login.provider">
<description>User Assertion Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.assertion.JpsUserAssertionLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
</serviceInstances>
<jpsContexts default="default">
<!-- This is the default JPS context. All the mendatory services and Login Modules must be configured in this default context -->
<jpsContext name="default">
<serviceInstanceRef ref="credstore"/>
<!--serviceInstanceRef ref="keystore"/-->
<serviceInstanceRef ref="idstore.xml"/>
<serviceInstanceRef ref="policystore.xml"/>
<serviceInstanceRef ref="idstore.IPLANET"/>
<serviceInstanceRef ref="idstore.loginmodule"/>
<!--serviceInstanceRef ref="audit"/-->
</jpsContext>
<jpsContext name="bootstrap_credstore_context">
<serviceInstanceRef ref="bootstrap.credstore"/>
</jpsContext>
<!-- Digest Authenticator Login Module -->
<jpsContext name="oracle.security.jps.fmw.authenticator.DigestAuthenticator">
<serviceInstanceRef ref="digest.authenticator.loginmodule"/>
</jpsContext>
<!-- Basic Authenticator Login Module -->
<jpsContext name="oracle.security.jps.fmw.authenticator.BasicAuthenticator">
<serviceInstanceRef ref="idstore.loginmodule"/>
</jpsContext>
<!-- Certificate Authenticator Login Module -->
<jpsContext name="X509CertificateAuthentication">
<serviceInstanceRef ref="certificate.authenticator.loginmodule"/>
</jpsContext>
<!-- SAML Login Module Context -->
<jpsContext name="SAML">
<serviceInstanceRef ref="saml.loginmodule"/>
</jpsContext>
</jpsContexts>
</jpsConfig>
jps-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<jpsConfig xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd jps-config-11_1.xsd" xmlns="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schema-major-version="11" schema-minor-version="1">
<property name="oracle.security.jps.jaas.mode" value="off"/>
<property name="oracle.security.jps.enterprise.user.class" value="weblogic.security.principal.WLSUserImpl"/>
<property name="oracle.security.jps.enterprise.role.class" value="weblogic.security.principal.WLSGroupImpl"/>
<propertySets>
<propertySet name="saml.trusted.issuers.1">
<property name="name" value="www.oracle.com"/>
</propertySet>
<propertySet name="trust.provider.embedded">
<property name="trust.provider.className" value="oracle.security.jps.internal.trust.provider.embedded.EmbeddedProviderImpl"/>
<property name="trust.clockSkew" value="60"/>
<property name="trust.token.validityPeriod" value="1800"/>
<property name="trust.token.includeCertificate" value="false"/>
</propertySet>
<propertySet name="props.db.1">
<property name="server.type" value="DB_ORACLE"/>
<property name="oracle.security.jps.farm.name" value="cn=opssSecurityStore"/>
<property name="datasource.jndi.name" value="jdbc/OpssDataSource"/>
<property name="oracle.security.jps.db.useDSAdminMapKey" value="true"/>
<property name="oracle.security.jps.ldap.root.name" value="cn=opssRoot"/>
<property name="jdbc.url" value="jdbc:oracle:thin:@//servermname:port/sid"/>
<property name="jdbc.driver" value="oracle.jdbc.OracleDriver"/>
<property name="bootstrap.security.principal.map" value="BOOTSTRAP_JPS"/>
<property name="bootstrap.security.principal.key" value="bootstrap_VYZuQSaEPnoL+EKjGdn+jP75imw="/>
</propertySet>
</propertySets>
<serviceProviders>
<serviceProvider type="CREDENTIAL_STORE" name="credstoressp" class="oracle.security.jps.internal.credstore.ssp.SspCredentialStoreProvider">
<description>SecretStore-based CSF Provider</description>
</serviceProvider>
<serviceProvider type="IDENTITY_STORE" name="idstore.ldap.provider" class="oracle.security.jps.internal.idstore.ldap.LdapIdentityStoreProvider">
<description>LDAP-based IdentityStore Provider</description>
</serviceProvider>
<serviceProvider type="IDENTITY_STORE" name="idstore.xml.provider" class="oracle.security.jps.internal.idstore.xml.XmlIdentityStoreProvider">
<description>XML-based IdentityStore Provider</description>
</serviceProvider>
<serviceProvider type="POLICY_STORE" name="policystore.xml.provider" class="oracle.security.jps.internal.policystore.xml.XmlPolicyStoreProvider">
<description>XML-based PolicyStore Provider</description>
</serviceProvider>
<serviceProvider type="PDP" name="pdp.service.provider" class="oracle.security.jps.az.internal.runtime.provider.PDPServiceProvider">
<description>Runtime PDP Service Provider</description>
</serviceProvider>
<serviceProvider type="LOGIN" name="jaas.login.provider" class="oracle.security.jps.internal.login.jaas.JaasLoginServiceProvider">
<description>This is Jaas Login Service Provider and is used to configure login module service instances</description>
</serviceProvider>
<serviceProvider type="KEY_STORE" name="keystore.provider" class="oracle.security.jps.internal.keystore.KeyStoreProvider">
<description>PKI Based Keystore Provider</description>
</serviceProvider>
<serviceProvider type="AUDIT" name="audit.provider" class="oracle.security.jps.internal.audit.AuditProvider">
<description>Audit Service</description>
</serviceProvider>
<serviceProvider type="TRUST" name="trust.provider" class="oracle.security.jps.internal.trust.TrustServiceProvider">
<description>Trust Service</description>
</serviceProvider>
<serviceProvider type="ATTRIBUTE" name="attribute.provider" class="oracle.security.jps.internal.attribute.impl.AttributeServiceProviderImpl">
<description>Attribute Service Provider</description>
</serviceProvider>
<serviceProvider type="CREDENTIAL_STORE" name="db.credentialstore.provider" class="oracle.security.jps.internal.credstore.rdbms.DbmsCredentialStoreProvider"/>
<serviceProvider type="POLICY_STORE" name="policystore.provider" class="oracle.security.jps.internal.policystore.ldap.LdapPolicyStoreProvider"/>
</serviceProviders>
<serviceInstances>
<serviceInstance name="credstore" provider="credstoressp" location="./">
<description>File Based Credential Store Service Instance</description>
</serviceInstance>
<serviceInstance name="bootstrap.credstore" provider="credstoressp" location="./bootstrap">
<description>Bootstrap Credential Store Service Instance</description>
<property name="location" value="./bootstrap"/>
</serviceInstance>
<serviceInstance name="bootstrap.credstore.local" provider="credstoressp" location="${domain.home}/opss/local">
<description>Local Bootstrap Credential Store Service Instance</description>
<property name="location" value="${domain.home}/opss/local"/>
</serviceInstance>
<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
<description>LDAP Identity Store Service Instance</description>
<property name="idstore.config.provider" value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
<property name="CONNECTION_POOL_CLASS" value="oracle.security.idm.providers.stdldap.JNDIPool"/>
<property name="virtualize" value="true"/>
</serviceInstance>
<serviceInstance name="idstore.xml" provider="idstore.xml.provider" location="./system-jazn-data.xml">
<description>File Based Identity Store Service Instance</description>
<property name="subscriber.name" value="jazn.com"/>
</serviceInstance>
<serviceInstance name="policystore.xml" provider="policystore.xml.provider" location="./system-jazn-data.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>
<serviceInstance name="pdp.service" provider="pdp.service.provider">
<description>Runtime PDP service instance</description>
</serviceInstance>
<serviceInstance name="keystore" provider="keystore.provider">
<description>Default JPS Keystore Service</description>
<property name="keystore.file.path" value="./"/>
</serviceInstance>
<serviceInstance name="audit" provider="audit.provider" location="./audit-store.xml">
<description>Audit Service</description>
<property name="audit.filterPreset" value="None"/>
<property name="audit.maxDirSize" value="0"/>
<property name="audit.maxFileSize" value="104857600"/>
<property name="audit.timezone" value="utc"/>
<property name="audit.loader.jndi" value="jdbc/AuditAppendDataSource"/>
<property name="audit.loader.interval" value="15"/>
<property name="audit.loader.repositoryType" value="File"/>
</serviceInstance>
<serviceInstance name="trust" provider="trust.provider">
<description>Trust Service</description>
<propertySetRef ref="trust.provider.embedded"/>
</serviceInstance>
<serviceInstance name="saml.loginmodule" provider="jaas.login.provider">
<description>SAML Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.saml.JpsSAMLLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<propertySetRef ref="saml.trusted.issuers.1"/>
</serviceInstance>
<serviceInstance name="saml2.loginmodule" provider="jaas.login.provider">
<description>SAML2 Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.saml.JpsSAML2LoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<propertySetRef ref="saml.trusted.issuers.1"/>
</serviceInstance>
<serviceInstance name="krb5.loginmodule" provider="jaas.login.provider">
<description>Kerberos Login Module</description>
<property name="loginModuleClassName" value="com.sun.security.auth.module.Krb5LoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<property name="storeKey" value="true"/>
<property name="useKeyTab" value="true"/>
<property name="doNotPrompt" value="true"/>
<property name="keyTab" value="./krb5.keytab"/>
<property name="principal" value="HOST/localhost@EXAMPLE.COM"/>
</serviceInstance>
<serviceInstance name="krb.loginmodule" provider="jaas.login.provider">
<description>OPSS Kerberos Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.krb.JpsKrbLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="digest.authenticator.loginmodule" provider="jaas.login.provider">
<description>Digest Authenticator Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.digest.DigestLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="certificate.authenticator.loginmodule" provider="jaas.login.provider">
<description>X509 Certificate Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.x509.X509LoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="wss.digest.loginmodule" provider="jaas.login.provider">
<description>WSS Digest Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.digest.WSSDigestLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="user.authentication.loginmodule" provider="jaas.login.provider">
<description>User Authentication Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.authentication.JpsUserAuthenticationLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="user.assertion.loginmodule" provider="jaas.login.provider">
<description>User Assertion Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.assertion.JpsUserAssertionLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="attribute" provider="attribute.provider">
<description>Attribute Service Instance</description>
<property name="attribute.expire.time.seconds" value="86400"/>
</serviceInstance>
<serviceInstance name="idstore.loginmodule" provider="jaas.login.provider">
<description>Identity Store Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.jaas.module.idstore.IdStoreLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>
<serviceInstance name="credstore.db" provider="db.credentialstore.provider">
<propertySetRef ref="props.db.1"/>
</serviceInstance>
<serviceInstance name="keystore.db" provider="keystore.provider">
<propertySetRef ref="props.db.1"/>
</serviceInstance>
<serviceInstance name="audit.db" provider="audit.provider">
<property name="audit.loader.repositoryType" value="Db"/>
<property name="audit.timezone" value="utc"/>
<property name="audit.loader.interval" value="15"/>
<property name="audit.maxFileSize" value="104857600"/>
<property name="audit.maxDirSize" value="0"/>
<property name="audit.filterPreset" value="None"/>
<property name="audit.loader.jndi" value="jdbc/AuditAppendDataSource"/>
<propertySetRef ref="props.db.1"/>
</serviceInstance>
<serviceInstance name="policystore.db" provider="policystore.provider">
<propertySetRef ref="props.db.1"/>
</serviceInstance>
</serviceInstances>
<jpsContexts default="default">
<jpsContext name="default">
<serviceInstanceRef ref="credstore.db"/>
<serviceInstanceRef ref="keystore.db"/>
<serviceInstanceRef ref="policystore.db"/>
<serviceInstanceRef ref="audit.db"/>
<serviceInstanceRef ref="trust"/>
<serviceInstanceRef ref="pdp.service"/>
<serviceInstanceRef ref="attribute"/>
<serviceInstanceRef ref="idstore.ldap"/>
</jpsContext>
<jpsContext name="bootstrap_credstore_context">
<serviceInstanceRef ref="bootstrap.credstore"/>
<serviceInstanceRef ref="keystore"/>
</jpsContext>
<jpsContext name="bootstrap_credstore_context_local">
<serviceInstanceRef ref="bootstrap.credstore.local"/>
</jpsContext>
</jpsContexts>
</jpsConfig>