Hi,

An example from the field may be helpful here.

The TeraGrid (www.teragrid.org) uses MDS4 to publish quite a lot of information about the HPC resources offered throughout the system. Each resource runs an index service that provides access to info about the local system, and a central index (implemented as a high- availability service) indexes data from each of the local index services. The data in the central indices is in turn used for many purposes: to populate user documentation web pages, to autoconfigure automated system tests, to support metascheduling/brokering services, and to populate system status web pages (e.g., current resource queue sizes, etc.).

This is similar to what you describe because TeraGrid's current policy is to restrict access to queue data to authenticated users; i.e., people who have logged in to the TeraGrid user portal using a personal ID/password. The rest of the data needs to be openly accessible. Not only do we not want the rest of the data to be restricted, but we don't even want clients to have to authenticate (present a certificate) *at all*.

To make this possible, TeraGrid runs two index services at each resource. These services run in the same Web services container (GT4 container), but they are configured differently: one has authentication enabled, the other has it disabled. The authenticated index service publishes the queue status information. The non- authenticated index service publishes everything else (including the list of queues that are available in the other index service). The central indices index the non-authenticated data (containing queue pointer info), and this allows users and automated tools to discover queues, but not get the queue status. To get the queue status, they follow the pointers to the authenticated index service and authenticate to get the status data.

We took this dual-service approach (rather than trying to restrict subtrees of the information space in a single service) for two reasons:

1) We didn't want to require authentication for the non-restricted data, and there isn't a way to configure a single index service to allow BOTH non-authenticated and authenticated access.

2) When you have a central index that indexes data from multiple local index services, it seems very complicated to not only index the data but also the access control information (which includes knowledge of the individuals and/or attributes used to make decisions). I don't think the MDS4 implementation supports this, though I suppose it may be possible using specialized authorization plugins.

In any case, we found it a lot easier and more straightforward to just use two index services. Keeping them in the same WS container minimizes the overhead of having more than one index service.

                -- Lee



On Apr 4, 2008, at 8:40 AM, Benjamin Henne wrote:

Hi.

To query a MDS, for example with
wsrf-query -x -s https://myhost.mydomain.tld:8443/wsrf/services/DefaultIndexService ,
I have to do this with an user who has a valid proxy certificate.
So far I have worked with MDS.

I have some (theoretical) questions about MDS and authorization.
Can I exactly specify which users may or may not access resource information at a MDS? Ok, but furthermore, is there a way to restrict access to resource information, so that one user can only see some parts while another can see all? I am thinking about something like LDAP's possibility to restrict access to attributes depending on user authorization.

I came to this question when thinking about usage of resource information with maybe different "security levels". Of course there could be a scenario where it would be very beneficial to have some resource information for e.g. a scheduler, but one doesn't want to announce (all) those information to all users having access to the MDS this theoretical scheduler uses to get resource information.

Maybe, someone of you may tell me his or her ideas about this.
It is nothing like a feature request, only some theoretical questions/thoughts.

Regards,
Benjamin


Reply via email to