Team, if no objections, I'm going to go ahead tomorrow with the new
"authentication.method" flag, replacing the three below.
Regards,
Glen
On 07/30/2014 01:38 PM, Glen Mazza wrote:
Actually, this could wait for a future patch release, 5.1.1 or
whatever, if desired. Requiring a major release whenever we need to
have users make a minor change to their roller-custom.properties file
as a part of a Roller upgrade, as I suggested below, is major overkill
for a small project such as ours.
Glen
On 07/29/2014 04:35 PM, Glen Mazza wrote:
Hi Team, it may be a good time for us to consolidate our security
settings in roller.properties from our current three properties to
just one. It would be best to get such a change into Roller 5.1
because for backward compatibility reasons we're not going to be able
to put it into a subsequent minor patch release.
Presently we have three different security flags:
authentication.cma.enabled = true/false (i.e., tomcat-users.xml file)
users.sso.enabled = true/false (i.e., LDAP)
authentication.openid = disabled/hybrid/only (Roller DB only, either
Roller DB or OpenID, OpenID only)
The problem with coding three properties where one will do is that
security holes start to develop as we code with just one or two of
the properties where we actually need all three. Also, users may
inadvertently set unsupported combinations of the three and as a
result not get the security they're expecting. Finally, it's not
obvious as it could be from the above settings the type of security
offered by each setting.
I propose we switch to one flag in 5.1 called "authentication.method"
and it will have only one of five possible values:
db (use roller database, this will be the default value defined in
roller.properties)
ldap (equivalent to old users.sso.enabled=true)
db-openid ("hybrid" above, users can use DB or OpenID but not both)
openid ("only" above, openID alone supported)
cma (= authentication.cma.enabled=true).
If "db" seems too terse/vague, we can use "rollerdb" instead to
clarify the DB it's using. If we have additional auth methods in the
future, we'll add other constants, using hyphens such as "db-openid"
above instead of additional properties if we're allowing multiple
auth methods simultaneously. [Incidentally, I'm not sure if
authentication.cma.enabled (i.e., tomcat-users.xml file) even works
in Roller today--the web.xml probably won't support it--but we have
some coding for it within the application. We may wish to pull this
option out.]
Another advantage of this switch is that by leaving the ambiguous
"users.sso.enabled" ("sso" can mean multiple things--OpenID, LDAP,
CMA) and replacing it with an explicit "ldap" flag, we can possibly
start moving towards LDAP security without the users needing to
modify their security.xml, they would just need to configure their
roller-custom.properties instead.
WDYT?
Regards,
Glen