Gordon Sim wrote:
Gordon Sim wrote:
Thanks to Matt Farrellee, the c++ broker now has initial support for PLAIN authentication (r647716). This is optional at compile time and runtime and is based on the cyrus sasl lib (see the docs for that library for info on configuring etc for your platform).

One further point: authentication is currently only performed when using the 0-10 'preview' specification. Authentication of connections using the final 0-10 spec will be coming shortly.
This (much needed) new feature means that the command-line utilities (qpid-config, qpid-route, etc.) now need to provide authentication credentials to the broker when establishing the AMQP connection for management. It is an easy matter to provide credentials in option switches or interactively through a prompt. However this is detrimental to scripting. It is unacceptable to require passwords to appear in script files and it is equally unacceptable for each line of a script to interactively prompt the user.

Three possible solutions come to mind:

1) Provide a qpid-shell utility that authenticates once and provides a shell-like prompt where the utilities can be invoked or scripts can be executed. One downside is that the shell would lack the flexibility and capability of a general-purpose shell. Furthermore, the scripting language might be limited to a linear set of commands. The upside is that a shared connection would make for efficient and fast script execution.

2) Provide a facility for a user to "log in" once by supplying plain credentials and storing them securely in the user's private directory. The qpid utilities could then check for stored credentials in lieu of supplied credentials. A Kerberos-5 implementation will eventually provide this kind of single-sign-on capability but for PLAIN authentication, explicit storage would be needed. Perhaps we should just hurry up and implement GSSAPI/Krb5.

3) Build the client in a two-tiered architecture where the first invocation of a utility (for a process) would spawn a detached client using supplied credentials. This detached process would then connect to the broker and linger for a period of time handling traffic from subsequent utilities from the same shell process. Once idle for a period of time (say 5 minutes), the connection process would disconnect from the broker and terminate.

All thoughts, ideas, preferences, suggestions, and criticism are more than welcome.

-Ted

Reply via email to