[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Handle-info] Distributed handle administrators



Hi Sean,

Thanks heaps for the feedback. I did some "whiteboarding" yesterday and came to pretty much the same (option 2b) conclusion as it reduces options for attacks on the handle system but also provides some level of flexibility in authentication mechanisms at the web service level.

Thanks again!

Scott.

Sean Reilly wrote:

On Sep 1, 2008, at 2:16 AM, Scott Yeadon wrote:


Hi,

We want to provide a handle service that may be used by various applications and individual users to mint and update handles. These services will be simple HTTP services. For all handles minted a system-level admin is assigned across all handles to support admin functions performed by the handle service (housekeeping, etc). In addition to this, the individuals (or applications) are also required to be administrators of the handles they mint meaning each handle record has at least two HS_ADMIN entries.

Two simple scenarios these HTTP services might support are as follows:

1) a user wanting to acquire an identifier for a paper on his/her website would log onto a user interface. This UI would authenticate them against the system and if successful also determine whether they have access to the handle service for minting identifiers. Assuming the user has access to the minting service they are able to get themselves an identifier and map it to the URL of the paper on their site.

In order to cope with updates to this handle, I assume the user would need to also be assigned a handle in order that they are able to (via UI or whatever) update the handle record if they need to.

2) A similar situation is the case where the mint/update services are being utilised by an external application. For example an repository application at an institution might make use of our handle mint/update services using service calls within the software. The application or the scope which it serves (dept, institution) would be assigned a handle and the handle added to the list of admins when the mint service was called.

I am unsure of what information should be stored against the admin handle records in these instances. The answer would appear to be whatever is needed to satisfy the handle service the agent (person or app) is allowed to undertake administration, be it a user id, a role (for role-based access), a key (for cert-based access). Have others implemented similar systems and have advice?

Applications such as DSpace and Fedora appear to deal with this at the application layer, i.e. their handle system is (tightly?) coupled with the application meaning the application authentication and authorisation process wraps handle minting/update operations within some higher-level object operation (e.g. create object, update object, modify object properties, etc). In our case the identifier service is somewhat disembodied from the context in which they are being created/updated which creates more complexity in the logistics for authorisation and authentication.

Any comments by those who have tackled this before would be welcome, really just to ascertain that I'm not making things more complex than they need to be.

Hi Scott,


We've had plenty of experience with similar setups. Part of the issue has been that the handle protocol eliminates man-in-the-middle attacks which means that clients (whether individuals, organizations or applications) would need to send their actual authentication credentials (secret key or private key) to your service. Applications such as DSpace address this by being very tightly integrated with their handle services. In fact, DSpace handle servers are really just front-ends to the repository. With DSpace there isn't any handle database, just the repository database in which some other process creates/modifies/deletes records.

I can think of two ways to approach this. You might have already considered these, but here they are:
1) Use your own authentication/admin model for the web service and setup a handle service that is a resolution-only front-end for your database of handles. A variation on this would be to have your web interface update a specialized database and then create a second "synchronizer" that pushed any changes to the database to a separate handle server (or vice versa). The advantage to this model is that your administrative model (groups, individuals, permissions, etc) can be as flexible as you need.


2) Run a standard handle service and set up a web-based administrative interface. There are two variations on this choice:
a) clients send their authentication details to your web service which would then authenticate using those credentials to the handle service
b) clients authenticate with your web service using a (non-handle) method you select and your web service then authenticates with the handle service using your service's (public-key based) authentication



I think 2b is the preferred option as it leaves you free to let both individuals (or external groups) be administrators for handles that you can also update using your service.


Thanks,
Sean





_______________________________________________
Handle-Info mailing list
Handle-Info@cnri.reston.va.us
http://www.handle.net/mailman/listinfo/handle-info