1LCMAPS(3) Library Functions Manual LCMAPS(3)
2
3
4
6 lcmaps - The Local Credential MAPping Service
7
9 lcmaps
10
11
13 The LCMAPS framework is designed to take various credentials as input,
14 e.g. a certificate and/or VOMS credentials, and map them to Unix cre‐
15 dentials as output. Unix credentials are the basic POSIX credentials,
16 i.e. User ID, Group ID and Secondary Group IDs. LCMAPS is a framework
17 that can load and run one or more 'credential mapping' plugins. The
18 framework will load and run plugins to perform the identity mapping.
19 Site and organizations can create their own new functionality by creat‐
20 ing new plugins. The LCMAPS framework exposes various APIs to push cre‐
21 dentials into the framework and to get the account mapping results in
22 return. The lcmaps.db configuration file configures the LCMAPS plugins
23 and configures the order in which the plugins are launch. Some practi‐
24 cal examples are shown below.
25
26 LCMAPS is used by gLExec, the lcas-lcmaps-gt(4)-interface to interface
27 with a Globus GT4 and GT5 Gatekeeper, GridFTP daemon and GSI-OpenSSHd,
28 in StoRM and somewhere in XRootD.
29
30
31
33 When an application initializes LCMAPS the plugins will be loaded based
34 on the lcmaps.db configuration file. The application can use one of
35 the APIs to provide credentials as input. The loaded plugins will be
36 executed in the sequence described in the same lcmaps.db configuration
37 file.
38
39 During a plugin's execution it has access to the credential data in the
40 LCMAPS core memory. The plugin is also capable of writing credential
41 mapping results in LCMAPS. The plugins can each resolve a part of the
42 mapping and they can also perform actions based on these (intermediate)
43 results, e.g. run setuid, setgid and setgroup calls or interact with an
44 LDAP service.
45
46 The plugins are executed in a state machine. When a plugin finishes
47 successfully it can execute a different next plugin then when it
48 failed. This allows LCMAPS to pass different plugins to resolve a cre‐
49 dential mapping.
50
51
52
54 GATEKEEPER_JM_ID
55 Extra Gatekeeper log message to be able to more easily track a
56 Job Manager ID.
57
58 GLOBUSID
59 See $GATEKEEPER_JM_ID.
60
61 JOB_REPOSITORY_ID
62 See $GATEKEEPER_JM_ID, but explicitly for the purpose of the
63 LCMAPS Job Repository plugin.
64
65 LCMAPS_DB_FILE
66 Override the build-in default filename for the lcmaps.db config‐
67 uration file with the value of this environment variable.
68
69 LCMAPS_DEBUG_LEVEL
70 Tune the logging output cut off level. The numbers resemble the
71 numbers as used in previous released in the range [1-5]. Howev‐
72 er, since LCMAPS version 1.5.0 these numbers resemble a numeri‐
73 cally shifted Syslog number.
74
75 0 Silent logging, no messages will be written to file or
76 Syslog.
77
78 1 All messages with a priority of LOG_ERR are written to
79 file or Syslog. More severe error messages are squashed
80 down to the LOG_ERR priority. This is to prevent Syslog
81 from blocking on default configurations and to prevent
82 Syslog from broadcasting LCMAPS related messages on the
83 connected TTYs when old plug-ins are used.
84
85 2 All messages with a priority of LOG_WARNING or more se‐
86 vere, i.e. LOG_ERR, are written to file and/or Syslog.
87
88 3 All messages with a priority of LOG_NOTICE or more se‐
89 vere, i.e. LOG_ERR or LOG_WARNING, are written to file
90 and/or Syslog. This is the default advertised setting for
91 the lcas-lcmaps-gt-interface and glexec. The "FINAL CRED"
92 messages are written on LOG_NOTICE and indicate the re‐
93 sulting LCMAPS mapping from an X.509 and/or VOMS creden‐
94 tial to a Unix/POSIX credential.
95
96 4 All messages with a priority of LOG_INFO or more severe,
97 i.e. all messages between (and including) LOG_ERR and
98 LOG_INFO, are written to file and/or Syslog. This value
99 is the build-in default. The success or failures of plug-
100 ins are written on LOG_INFO. To see the flow of plug-ins
101 this log level is the advised log level to set.
102
103 5 All messages with a priority of LOG_DEBUG or more severe,
104 i.e. all messages between (and including) LOG_ERR and
105 LOG_DEBUG, are written to file and/or Syslog. This is the
106 most verbose mode and should be used carefully as the
107 amount of information flowing from here might hinder nor‐
108 mal operation performance if the syslogd isn't able to
109 keep up.
110
111
112 LCMAPS_DIR
113 The base directory of the $LCMAPS_DB_FILE parameter. This vari‐
114 able is concatenated with the $LCMAPS_DB_FILE
115
116 LCMAPS_ETC_DIR
117 See $LCMAPS_DIR
118
119 LCMAPS_LOG_FILE
120 Overrides the build-in default file path to log the output to.
121 When set, the logging will not go to Syslog.
122
123 LCMAPS_LOG_STRING
124 Prepend all log output messages with value of this environment
125 variable
126
127 LCMAPS_MODULES_DIR
128 Directory to search for the LCMAPS plugins (or modules). Same as
129 the path option in the lcmaps.db file..
130
131 LCMAPS_POLICY_NAME
132 A colon separated list of LCMAPS plugin execution policies. When
133 this environment variable is present, only the listed execution
134 policies will be executed. They will be executed in the order as
135 written in the lcmaps.db file (from top to bottom).
136
137 LCMAPS_VERIFY_TYPE
138 Deprecated
139
140 LCMAPS_VOMS_EXTRACT
141 Deprecated
142
143 LCMAPS_X509_CERT_DIR
144 Specific setting equal to the $X509_CERT_DIR environment vari‐
145 able
146
147 LCMAPS_X509_VOMS_DIR
148 Specific setting equal to the $X509_VOMS_DIR environment vari‐
149 able
150
151 X509_CERT_DIR
152 The directory where all the CA files, e.g. CA certificate and
153 CRL files, are located. The default location is: /etc/grid-secu‐
154 rity/certificates/.
155
156 X509_VOMS_DIR
157 This VOMS directory will hold the VOMS .lsc files and/or PEM
158 files to authenticate the VOMS Attributes Certificates. Subdi‐
159 rectories are named by the VO name and scope the .lsc and PEM
160 files in their authentication to one particular VO. The default
161 location is: /etc/grid-security/vomsdir/.
162
163
164
166 LCMAPS_SUCCESS
167 Success.
168
169 LCMAPS_FAIL
170 Failure.
171
172
174 For an API specification, please use make doc to make the apidoc.
175
176
178 The apidoc is not complete. It has most interfaces, but needs to be
179 checked for completeness.
180
181 Please report any errors to the Nikhef Grid Middleware Security Team
182 <grid-mw-security-support@nikhef.nl>.
183
185 lcmaps.db(5), lcas_lcmaps_gt4_interface(8), lcas_lcmaps_gt_inter‐
186 face(8), lcmaps_dummy_bad.mod(8), lcmaps_dummy_good.mod(8),
187 lcmaps_ldap_enf.mod(8), lcmaps_localaccount.mod(8), lcmaps-plugins-c-
188 pep(8), lcmaps_plugins_scas_client(8), lcmaps_poolaccount.mod(8),
189 lcmaps_posix_enf.mod(8), lcmaps_tracking_groupid.mod(8), lcmaps_veri‐
190 fy_proxy.mod(8), scas(8), scas.conf(5), glexec(1), glexec.conf(5),
191 ees(1), ees.conf(5)
192
193
194
196 LCMAPS and the LCMAPS plug-ins were written by the Grid Middleware Se‐
197 curity Team <grid-mw-security@nikhef.nl>.
198
199
200
201 December 22, 2011 LCMAPS(3)