is configured under the CertsMapping entry of the REGISTRY_HOMEconfjaas.conf file. An example of CertsMapping
entry is shown in Example 5, CertsMapping JAAS configuration
. You can configure the following options:
• debug
- if set to true, debug actions of the login module are printed to an error stream. False by default. •
issuer - issuer name. If set, mapped certificate must be issued by a certification authority with this subject name
recommended. •
pattern - regular expression as per java.util.regexp that is used to get user names. The first capturing group
of a specified pattern is used as a user name. When there is no capturing group and the pattern matches, the whole subject becomes a user name. Used regular expressions are case-insensitive. Examples are:
• The default is ?\\,\s?EMAILADDRESS=.+. It matches a name listed in EMAILADDRESS. This
regular expression ignores the case of EMAILADDRESS possibly contained in another part of subject. •
CN=[,]+ matches common name.
• .
matches every subject. Since it has no capturing group, the whole subject DN is used. You can configure more than one login module to perform certificate mapping. This is useful when you have to
accept different issuers andor provide a fallback to a failed certificate mapping of the first configured login module. An example of a CertsMapping entry that allows the mapping of certificates issued by 2 issuers with different
mappings is shown in Example 6, CertsMapping JAAS configuration with 2 possible issuers
. 5.
The registry is now configured for SSL client authentication. You may also change the applicability of SSL client authentication by changing the configuration of SSL security providers. This configuration is in the
securityProviderPreferences name=SSL element of the REGISTRY_HOMEconfserverconf.xml file. An
example is shown in Example 4, A fragment of serverconf.xml with 2-way SSL turned on
.
Page 134
8.3. SSL Client authentication with Embedded HTTPHTTPS Server
Example 4. A fragment of serverconf.xml with 2-way SSL turned on
?xml version=1.0 encoding=UTF-8? config name=main
... securityPreferences name=main
-- Added acceptingSecurityProvider -- acceptingSecurityProviderSSLacceptingSecurityProvider
pstoreInitParams ...
securityPreferences ...
httpsPreferences name=https ...
-- Client authentication required -- needsClientAuthtrueneedsClientAuth
... httpsPreferences
... -- security provider preferences intended mainly for SSL client authentication --
securityProviderPreferences name=SSL -- What to do when SSL is not used to access the resource? Avalaible options:
redirect - perform HTTP redirect to associated HTTPS URL 302 Moved Temporarily
fail - return a message that informs to use HTTPS URL 400 Bad Request
skip - do not perform certififate mapping at all
perform - try to perform certificate mapping with no client certificates
-- whenNotSslskipwhenNotSsl
-- Can certificate mapping fail? If set to true and it fails, no received subject will be constructed. --
certMappingMayFailfalsecertMappingMayFail -- Can a default account be created when no account for a mapped user exists? --
createDefaultAccountfalsecreateDefaultAccount securityProviderPreferences
config
Example 5. CertsMapping JAAS configuration
CertsMapping{ com.systinet.uddi.security.jaas.CertMappingLoginModule sufficient
pattern=?\\,\s?EMAILADDRESS=.+ debug=false issuer=CN=Company CA, OU=mycomp; };
Page 135
8.3. SSL Client authentication with Embedded HTTPHTTPS
Example 6. CertsMapping JAAS configuration with 2 possible issuers
CertsMapping{ com.systinet.uddi.security.jaas.CertMappingLoginModule sufficient
pattern=?\\,\s?EMAILADDRESS=.+ debug=false issuer=CN=Company CA, OU=mycomp; com.systinet.uddi.security.jaas.CertMappingLoginModule sufficient pattern=CN=[,]
issuer=CN=Company CA2, OU=mycomp debug=false; };
8.4. SSL Client Authentication in Oracle WebLogic
This section described how to enable SSL and SSL Client Authentication in Oracle Service Registry deployed to Oracle WebLogic Server 10.3. The following steps assume that Registry is already deployed to WebLogic.
1. Locate WEB-INFweb.xml for the WAR file that is used. You may either edit the WAR file with a file commander
that allows you to edit such archives directly and redeploy it later or locate this file where the WAR file is unpacked. 2.
a. Add tags inside web-app:
context-param param-nameuse.request.userparam-name
param-valuetrueparam-value context-param
login-config auth-methodCLIENT-CERTauth-method
login-config
security-constraint display-nameHTTPS required to access registrydisplay-
name web-resource-collection
web-resource-nameProtected Areaweb-resource-name url-patternurl-pattern
http-methodDELETEhttp-method http-methodGEThttp-method
http-methodPOSThttp-method http-methodPUThttp-method
web-resource-collection user-data-constraint
descriptionRequire confidentialitydescription transport-guaranteeCONFIDENTIALtransport-guarantee
user-data-constraint security-constraint
b. C h a n g e   s e r v l e t   c l a s s   t o   l o o k   l i k e   t h i s :    s e r v l e t -
classcom.systinet.transport.servlet.server.registry.RegistryServletservlet-class
3. Start Registry in WebLogic. The Registry still works with normal userpassword authentication.
4. Select EnvironmentServers_your_server_Configuration
Page 136
8.4. SSL Client Authentication in Oracle WebLogic
Select the Keystores Tab. Select Custom Identity and Custom Trust. Provide values to your identity and trust stores. Click Save.
a. b.
Select the SSL Tab. Click the Advanced option. Fill in Identity Alias and Password. Select Client Certs Requested and enforced
in Two Way Client Cert Behavior. Click Save.
5. Click Security Realms in Domain Structure. Select myrealm.
a. Click Users and groups. Create a new user called admin. You can create other users here too. Their names
are matched with the name part of emails in the certificate. b.
Click the Providers tab. Create a new authentication provider. Name it mysslauthprovider and select DefaultIdentityAsserter
. Click on the provider properties. Add the X.509 type. Click Save. Click the Provider specific
tab. Check Use Default User Name Mapper. Leave default value  for Default User Name Mapper Attribute Delimiter
. Click Save.
Note
The last step may not work when another provider with DefaultIdentityAsserter is present. Either modify the old provider or delete the old and configure the new mysslauthprovider.
8.5. J2EE Server Authentication
The registry can be configured to let a J2EE application server perform authentication. Unlike Section 8.2, Netegrity
SiteMinder and
Section 8.1, HTTP Basic , the authentication takes place for the whole registry application. To allow J2EE
server authentication: 1.
Locate the EAR or WAR file produced by the installer. It is available in REGISTRY_HOMEconfporting or in the application server when deployed. Note that in case of an EAR file the actual WAR file is contained in it. Both files
can be opened as ZIP archives.
2. Modify WEB-INFweb.xml file in the WAR file as follows:
a. Change the value of context parameter use.request.user to true.
b. Add a login-config element with a type of the chosen J2EE authentication.
Example 7, A fragment of web.xml shows a login config that turns on the CLIENT-CERT authentication method, which is used for SSL client
authentication. You may also add a security-constraint element to specify a set of resources where confidentiality andor
integrity is required. Example 7, A fragment of web.xml
contains a security-constraint that requires confidential communication between client and server for all registry resources, which typically means to
allowing only HTTPS for communication with registry. c.
Configure a J2EE application server for the authentication method of your choice. For SSL client authentication, this typically means setting up HTTPS transport to require client certificates and to map client certificates to
user names. Consult your J2EE application server documentation for details.
3. Continue deployment of the modified war file.
Page 137
8.5. J2EE Server Authentication