| Summary: | jUDDI v3 URLs are not secured | ||
|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise SOA Platform 5 | Reporter: | Len DiMaggio <ldimaggi> |
| Component: | Security, jUDDI - within SOA | Assignee: | Julian Coleman <jcoleman> |
| Status: | CLOSED NEXTRELEASE | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 5.0.0 ER7 | CC: | jcoleman, kurt.stam |
| Target Milestone: | --- | ||
| Target Release: | 5.2.0 GA, 5.2.0.ER5 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| URL: | http://jira.jboss.org/jira/browse/SOA-1862 | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-11-08 23:38:51 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Len DiMaggio
2010-01-22 02:11:13 UTC
Mitre recomments protecting WSDL access to a restricted audience, as information about endpoints and methods could leak (CWE-651). Having those locked down (at least basic auth) in the default looks like a proper choice. (http://cwe.mitre.org/data/definitions/651.html) John Graham to investigate. This may split into two JIRAs (jUDDI and ESB). No decision yet for SOA 5.1.0 Support supplying credentials for basic authentication slated for jUDDI-3.1.1: https://issues.apache.org/jira/browse/JUDDI-512 Some comments:
1. In jUDDI-3.1.0 the WSDLs can be locked down with basic authentication without any issue. The jUDDI client is getting at the service URLs directly (not using the wsdl urls anymore). Though there is one exception which is the JUDDIApiService (we will change that too). Then again in this case I'm not sure what the big deal is since the WSDLs are part of the UDDIv3 public spec. Protecting the URLs can be achieved in the web.xml if needed. We may want to do this by default.
2. Eventhough (1) is all that is talked about we should then also protect the actual service endpoints. I can think of two ways:
- application level, jUDDI supports requiring an authentication token on inquiries just like it does for publishing right now. For that use 'juddi.authenticate.Inquiry' in the juddiv3.properties on the server.
- basic authentication, for that we'd add basic authentication settings to the web.xml much like (1), and then we have to set the credentials on the client call. This is what https://issues.apache.org/jira/browse/JUDDI-512 speaks to.
When using the *juddi-client-3.1.1* it is now possible to use WSTransport against a WebServices deployment which is protected by Basic Authentication. To set the protection add the following fragment to the juddiv3.war/WEB-INF/web.xml
<security-role>
<role-name>JBossAdmin</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>Authenticated Realm</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>JBossAdmin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
and to the juddiv3.war/WEB-INF/jboss-web.xml add
<security-domain>java:/jaas/soa</security-domain>
Then, the juddi-client needs to be given the credentials to login. Therefore add the following properties to the uddi.xml
<property name="basicAuthUsername" value="<username>" />
<property name="basicAuthPassword" value="<password>" />
where in soa the default username/password would be admin/admin
From IRC: as well as adding the above to juddiv3.war, we should also add commented out basicAuthUsername/basicAuthPassword properties both to esb.uddi.xml, and to riftsaw.uddi.xml. Verified fixed in ER5 build Temporarily reopening to update release note info. Release Notes Docs Status: Added: Documented as Resolved Issue Writer: Added: dlesage Release Notes Text: Added: https://issues.jboss.org/browse/SOA-1862 Whilst the servlet and console URLs exposed by SOA Server were password-protected, the URLs exposed by jUDDI v3.0 were not. When using the juddi-client-3.1.1 it is now possible to use WSTransport against a WebServices deployment which is protected by Basic Authentication. |