LCMAPS_JOBREP.MOD(8)

๐Ÿ‘‘ LCMAPS_JOBREP.MOD(8) ๐Ÿ‘‘

okay so bestie, welcome to the lcmaps_jobrep.mod page ๐Ÿ’… this is manual section 8, part of the plugins crew, and it's literally about the jobrepository LCMAPS plug-in. buckle up, it's giving database โœจ


๐ŸŽ€ NAME ๐ŸŽ€

lcmaps_jobrep.mod โ€” the jobrepository LCMAPS plug-in ๐Ÿซถ


๐ŸŒธ SYNOPSIS ๐ŸŒธ

lcmaps_jobrep.mod [--test] --dsn <Database Service Name> --username
<database user> --password <database password>

๐Ÿ’– DESCRIPTION ๐Ÿ’–

So the LCMAPS Jobrepository plug-in stores credentials and the resulting account mappings into a relational database. It links up all the known in-process information from LCMAPS core memory and stores it in a database. And how does it talk to the database? Through ODBC (http://en.wikipedia.org/wiki/ODBC) โ€” that's the whole connection pipeline, iykyk.

Real talk about why this exists. The current state of the mappings between various credentials and Unix accounts is stored in an open database on disk, but this info can change over time through (regular) system administrative interventions ๐Ÿ‘€. This state is now preserved in a relational database, with the added benefit of being accessible by other systems, e.g. GridSAFE, and being able to build up an easy to backup historic view on the mapping state. obsessed.

Also? Quite some systems seem to dig up data by trawling log files, e.g. to construct accounting data records ๐Ÿ™ˆ. This method is subjected to the settings of the sub-systems which control the format of the log file output. And here's the thing: log trawling tools are interacting with the log files as a glorified API. That lowers the ability for tools, e.g. LCMAPS, to alter their log output ๐Ÿ˜ญ. By offering the LCMAPS Jobrepository plug-in as an alternative โ€” with the added benefit of offering the data in a structured fine-grained database with the ability of an historic view โ€” the intend is to avoid the need and/or requirement for log file trawling. periodt.


๐Ÿฆ‹ DATABASE SCHEMA EXTENSIONS ๐Ÿฆ‹

The schema can be used to link up account mapping and/or credential mapping results originating from other credential types, and link up more fine grained details from the specific work environment. i.e. a Gatekeeper and GridFTPd will be able to add service specific information together with the mapping results. it's giving extensible โœจ


๐Ÿ”ฎ FUTURE ๐Ÿ”ฎ

Lowkey a heads up: the LCMAPS Jobrepository plug-in is currently limited to MySQL and MariaDB despite its usage of the ODBC database interface ๐Ÿ˜”. The intend is to remove this limitation and make the plug-in work with other databases, e.g. PostgreSQL, Oracle and SQLite. manifesting that for us fr fr ๐ŸŒˆ


โœจ OPTIONS โœจ

  • --test โ€” turn this on and the plug-in will only test if the connection to the database can be established through the ODBC coupling. The test verifies the correctness of the DSN, Username and Password combination. It'll announce an LCMAPS SUCCESS when the connection was established, and a FAILURE when it was not able to establish the connection. bestie is checking the vibes of your credentials ๐Ÿ’…
  • --dsn <Database Service Name> โ€” this selects the Data Source Name (DSN) that has been set in an odbc.ini file. Use the odbc.ini file to configure the database driver, server/host, port number and database name. There's an example odbc.ini below, go look ๐Ÿ‘€
  • --username <database username> โ€” specifies the database username that the LCMAPS module must use to authorize itself with the database.
  • --password <database password> โ€” specifies the database password that the LCMAPS module must use to authorize itself with. You can omit the setting if you set the password in the odbc.ini file.
โš ๏ธ WARNING: Be careful to assess the read permissions on the lcmaps.db file to be exclusive to the service using this file, i.e. it's probably best to make the file exclusive to root:root. no cap, protect that password like it's your main character moment ๐Ÿ”

๐ŸŒŸ RETURN VALUES ๐ŸŒŸ

  • LCMAPS_MOD_SUCCESS โ€” Success ๐ŸŽ‰
  • LCMAPS_MOD_FAIL โ€” Failure ๐Ÿ’€

๐ŸŒˆ EXAMPLES ๐ŸŒˆ

Notice the --dsn <value> matches the DSN shown in the .ini section header. Also notice that the posix_enf plug-in is executed after the jobrep plug-in. The motivation is to be able to use privilege separation and with that protect the database password. iconic behavior honestly ๐Ÿซถ

Example lcmaps.db

jobrep      = "lcmaps_jobrep.mod"
              "--dsn MySQL-test"
              "--username root"
              "--password worteltjes"

example_plugin_policy:
verifyproxy -> vomslocalgroup
vomslocalgroup -> vomspoolaccount
vomspoolaccount -> tracking_groupid
tracking_groupid -> jobrep
jobrep -> posix_enf

Example /etc/odbc.ini file:

[MySQL-test]
Description = MySQL test database
Driver      = MySQL
SERVER      = 127.0.0.1
PORT        = 3306
DATABASE    = jobrepository

๐Ÿงš SUPPORTED INSTALLATIONS ๐Ÿงš

๐Ÿ’œ Tested front-end tools and services

  • gLExec
  • globus-gridftp-server
  • globus-gatekeeper

๐Ÿ“ Likely to work

  • SCAS
  • lcmaps-rest (only the Full-SSL interface)
  • gsi-openssh-server

๐Ÿ’€ Front-ends that will likely NOT work

  • WMProxy
  • StoRM backend

๐Ÿฅบ LIMITATIONS ๐Ÿฅบ

The front-ends which do not use an LCMAPS interface that provides certificates can currently not be supported. It is a requirement for the 1.5 version to be able to work from a certificate chain. so close, yet so far ๐Ÿ˜ญ


๐Ÿ› BUGS ๐Ÿ›

Please report any errors to the Nikhef Grid Middleware Security Team <grid-mw-security-support@nikhef.nl>. don't be shy, they wanna know ๐Ÿซถ


๐Ÿ“š SEE ALSO ๐Ÿ“š

lcmaps(8), lcmaps_jobrep.mod(8), mysql(1).

More information can be found on-line at the Nikhef Wiki on Site Access Control and the Nikhef Wiki on LCMAPS and other plug-ins. ๐Ÿฆ‹


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

The Jobrepository and the LCMAPS plug-ins were written by the Nikhef Grid Middleware Security Team <grid-mw-security@nikhef.nl>. absolute icons, we love them โœจ


and that's the whole page bestie ๐Ÿ’… this one's from the LCMAPS manual, dated August 31, 2012, and it lives at LCMAPS_JOBREP.MOD(8). go map those accounts, slay ๐ŸŽ€

๐Ÿ“ฆ where this page comes from