header

User Management

The standalone AMGA server comes with a powerful system to manage users as well as to control access to entries and metadata. If AMGA is run as an add on to a file catalogue, however, these features are not available and the access controls of the file catalogue is used instead.

To understand the user management of the AMGA server it is necessary to know that the server does not really manage users but only their authentication and authorization. When changing the owner of an entry for example, the server does not check that this owner exists. Users are only relevant for logging in. This allows to manage users outside of the server, e.g. in a VOMS.

IMPORTANT NOTE: When you use sessions or connections, then changes to the way a user is authenticated or how the authorization is done through the mapping to an AMGA user, will not affect active sessions or connections. You must restart the server to propagate changes to the user managment to active sessions or connections.

Configuration

To use the metadata service, a user must be authenticated and authorized. Authentication can be done via a certificate or a password, see Configuring the AMGA Server and the Replicatin Daemon . After the authenticity of a user is established in the handshaking of the client with the server, the client needs to be authorized to use the role of a certain user. Authorization is optional, if authorization is not enabled for the server, any authenticated user can assume any role he wishes. Authorization is controlled via the mdserver.config configuration file:

  # Authorization options, choose 0 or more
  # MapFile = /etc/grid-map-file       # Authorization based on certs
  # Authorization based on certifictes, put a list of VOMS URL and assigned users, here:
  VOMSGroups = https://lcg-voms.cern.ch:8443/voms/lhcb/services/VOMSAdmin?method^=listMembers, lhcb, \
               https://kuiken.nikhef.nl:8443/voms/picard/services/VOMSAdmin?method^=listMembers, picard
  UserDB = 1 # Authorization based on certs & passwords

Authorization can be done via certificates or passwords (password authentication actually includes authorization), both must be explicitely enabled. For authentication via certificates to work, both the server and the client must have SSL enabled (UseSSL). Four ways are foreseen to accessing the necessary information to match user names with their credentials, one or more must be enabled for the RequireUserAuthorization to work:

Management via a Grid Map file

You can give a location of a grid map file using the MapFile option for user authorization. This file contains pairs of distinguished names and user names. The DN must be enclosed in double quotes and must be in the form where its fields are seperated by commas on one line (output of openssl x509 -subject -in usercert.pem -nameopt oneline -noout):
    $ cat mapfile
  "/C=CH/O=CERN/OU=GRID/CN=Birger Koblitz 9904" koblitz
There are no wild cards currently allowed. The map file will be read only once at server startup. It is not possible to add or change users using the command line tool.

Management of Users using the database backend

To enable user management using your database backend, you need to enable this feature by setting UserDB = 1. If you have run the createInitial.sql script, to set up you database, the necessary tables have already been created. You can now manage users via the mdclient command line tool:

Management via a VOMS

Giving pairs of VOMS member list URLs and user names in the VOMSGroups option, you can assign all members of a VO to a user (role would be the better word here).

Management via VO-Certificates

You can allow users to log in with VO-enabled certificates by using the VirtualOrganizations option and assigning it a list of VO(default_user) definitions. By enabling MyProxyHack this works also with certificates issued by a MyProxy server. The VOGroupMap and VOUserMap options allow to map VO groups to AMGA groups and special VO roles to AMGA users with the syntax used by VirtualOrganizations. You can also manage mapping between a user/group & a VOMS Role/group in the command line tools.


Generated on Mon Apr 16 13:59:18 2012 for AMGA by  doxygen 1.4.7