Apache Qpid : Add New Users
This page last changed on Oct 08, 2009 by mmccorma.
The Qpid Java Broker has a single reference source (PrincipalDatabase) that defines all the users in the system. To add a new user to the broker the password file must be updated. The details about adding entries and when these updates take effect are dependent on the file format each of which are described below. Available Password file formatsThere are currently two different file formats available for use depending on the PrincipalDatabase that is desired. In all cases the clients need not be aware of the type of PrincipalDatabase in use they only need support the SASL mechanisms they provide. PlainThe plain file has the following format: # Plain password authentication file. # default name : passwd # Format <username>:<password> #e.g. martin:password As the contents of the file are plain text and the password is taken to be everything to the right of the ':'(colon). The password, therefore, cannot contain a ':' colon, but this can be used to delimit the password. Lines starting with a '#' are treated as comments. Where is the password file for my broker ?The location of the password file in use for your broker is as configured in your config.xml file. <principal-databases> <principal-database> <name>passwordfile</name> <class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class> <attributes> <attribute> <name>passwordFile</name> <value>${conf}/passwd</value> </attribute> </attributes> </principal-database> </principal-databases> So in the example config.xml file this password file lives in the directory specified as the conf directory (at the top of your config.xml file). If you wish to use Base64 encoding for your password file, then in the <class> element above you should specify org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase The default is: <conf>${prefix}/etc</conf> Base64MD5 Password File FormatThis format can be used to ensure that SAs cannot read the plain text password values from your password file on disk. The Base64MD5 file uses the following format: # Base64MD5 password authentication file # default name : qpid.passwd # Format <username>:<Base64 Encoded MD5 hash of the users password> #e.g. martin:X03MO1qnZdYdgyfeuILPmQ== As with the Plain format the line is delimited by a ':'(colon). The password field contains the MD5 Hash of the users password encoded in Base64. This file is read on broker start-up and is not re-read. How can I update a Base64MD5 password file ?To update the file there are two options:
Dynamic changes to password files.The Plain password file and the Base64MD5 format file are both only read once on start up. To make changes dynamically there are two options, both require administrator access via the Management Console (see Qpid JMX Management Console User Guide)
How password files and PrincipalDatabases relate to authentication mechanismsFor each type of password file a PrincipalDatabase exists that parses the contents. These PrincipalDatabases load various SASL mechanism based on their supportability. e.g. the Base64MD5 file format can't support Plain authentication as the plain password is not available. Any client connecting need only be concerned about the SASL module they support and not the type of PrincipalDatabase. So I client that understands CRAM-MD5 will work correctly with a Plain and Base64MD5 PrincipalDatabase.
For details of SASL support see Qpid Interoperability Documentation |
![]() |
Document generated by Confluence on May 26, 2010 10:33 |