Subversion Repositories oidplus

Rev

Rev 844 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
261 daniel-mar 1
 
2
OVERVIEW OF ALL CONFIG.INC.PHP SETTINGS
3
=======================================
4
 
294 daniel-mar 5
The file userdata/baseconfig/config.inc.php contains various settings
261 daniel-mar 6
which are essential to connect to your database and other
7
things that should be known before the database connection
8
is opened.
294 daniel-mar 9
Other settings are stored in the database (table "config")
261 daniel-mar 10
and can be accessed using the admin login area.
11
 
294 daniel-mar 12
The setup assistant (/setup/) will lead you through
13
the creation of the most important settings of config.inc.php.
261 daniel-mar 14
 
294 daniel-mar 15
Below you will find a list of all possible config settings
16
of the default OIDplus installation/plugins.
17
Please note that a plugin can define any key.
18
 
19
 
261 daniel-mar 20
-------------------------------------
21
(1) CONFIG SETTINGS PROVIDED BY SETUP
22
-------------------------------------
23
 
24
OIDplus::baseConfig()->setValue('CONFIG_VERSION',           2.1);
25
 
471 daniel-mar 26
OIDplus::baseConfig()->setValue('ADMIN_PASSWORD',           '<BCrypt hash, or base64 encoded SHA3-512 hash>');
609 daniel-mar 27
                         If you want to have multiple valid administrator passwords
28
                         (e.g. if you want multiple users), then this value can
29
                         also be an array containing hashes.
261 daniel-mar 30
 
31
OIDplus::baseConfig()->setValue('DATABASE_PLUGIN',          '');
786 daniel-mar 32
                         Valid values: see plugins (setup/)
261 daniel-mar 33
 
786 daniel-mar 34
OIDplus::baseConfig()->setValue('OCI_CONN_STR',             'localhost/orcl');
35
                         Can be a Oracle connection string/TNS or a hostname like
36
 
37
OIDplus::baseConfig()->setValue('OCI_USERNAME',             'hr');
38
 
39
OIDplus::baseConfig()->setValue('OCI_PASSWORD',             'oracle');
40
 
261 daniel-mar 41
OIDplus::baseConfig()->setValue('ODBC_DSN',                 'DRIVER={SQL Server};SERVER=localhost;DATABASE=oidplus;CHARSET=UTF8');
42
 
43
OIDplus::baseConfig()->setValue('ODBC_USERNAME',            'sa');
44
 
45
OIDplus::baseConfig()->setValue('ODBC_PASSWORD',            base64_decode('<base64_encoded_password>')); // alternatively as plaintext
844 daniel-mar 46
                         The base64 encoding protects your password from being read if someone
47
                         "looks over your shoulder" at your display while you have the configuration file opened.
48
                         (Obviously, it doesn't protect you if they can make a photo or screenshot)
261 daniel-mar 49
 
50
OIDplus::baseConfig()->setValue('PDO_DSN',                  'pgsql:host=localhost;dbname=oidplus');
51
 
52
OIDplus::baseConfig()->setValue('PDO_USERNAME',             'postgres');
53
 
54
OIDplus::baseConfig()->setValue('PDO_PASSWORD',             base64_decode('<base64_encoded_password>')); // alternatively as plaintext
844 daniel-mar 55
                         The base64 encoding protects your password from being read if someone
56
                         "looks over your shoulder" at your display while you have the configuration file opened.
57
                         (Obviously, it doesn't protect you if they can make a photo or screenshot)
261 daniel-mar 58
 
59
OIDplus::baseConfig()->setValue('MYSQL_HOST',               'localhost:3306');
814 daniel-mar 60
                         The hostname to connect to. Port (:3306) is optional.
261 daniel-mar 61
 
813 daniel-mar 62
OIDplus::baseConfig()->setValue('MYSQL_SOCKET',             '');
63
                         In case you connect via MySQL through a socket, use this setting.
64
                         (It is currently not included in setup/ and needs to be set manually).
65
 
261 daniel-mar 66
OIDplus::baseConfig()->setValue('MYSQL_USERNAME',           'root');
67
 
68
OIDplus::baseConfig()->setValue('MYSQL_PASSWORD',           base64_decode('<base64_encoded_password>')); // alternatively as plaintext
844 daniel-mar 69
                         The base64 encoding protects your password from being read if someone
70
                         "looks over your shoulder" at your display while you have the configuration file opened.
71
                         (Obviously, it doesn't protect you if they can make a photo or screenshot)
261 daniel-mar 72
 
73
OIDplus::baseConfig()->setValue('MYSQL_DATABASE',           'oidplus');
74
 
75
OIDplus::baseConfig()->setValue('PGSQL_HOST',               'localhost:5432');
814 daniel-mar 76
                         The hostname to connect to. Port (:5432) is optional.
261 daniel-mar 77
 
814 daniel-mar 78
OIDplus::baseConfig()->setValue('PGSQL_SOCKET',             '');
79
                         In case you connect via PostgreSQL through a socket, use this setting.
80
                         (It is currently not included in setup/ and needs to be set manually).
81
 
261 daniel-mar 82
OIDplus::baseConfig()->setValue('PGSQL_USERNAME',           'postgres');
83
 
84
OIDplus::baseConfig()->setValue('PGSQL_PASSWORD',           base64_decode('<base64_encoded_password>')); // alternatively as plaintext
844 daniel-mar 85
                         The base64 encoding protects your password from being read if someone
86
                         "looks over your shoulder" at your display while you have the configuration file opened.
87
                         (Obviously, it doesn't protect you if they can make a photo or screenshot)
261 daniel-mar 88
 
89
OIDplus::baseConfig()->setValue('PGSQL_DATABASE',           'oidplus');
90
 
264 daniel-mar 91
 
713 daniel-mar 92
OIDplus::baseConfig()->setValue('SQLITE3_FILE',             'userdata/database/oidplus.db');
93
                         Attention: This file must be located in a location that is not world-readable/downloadable!
264 daniel-mar 94
 
713 daniel-mar 95
OIDplus::baseConfig()->setValue('SQLITE3_ENCRYPTION',       '');
96
                         Optional encryption
264 daniel-mar 97
 
261 daniel-mar 98
OIDplus::baseConfig()->setValue('TABLENAME_PREFIX',         'oidplus_');
99
 
100
OIDplus::baseConfig()->setValue('SERVER_SECRET',            'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
713 daniel-mar 101
                         It is very very important that you choose a long sequence of
261 daniel-mar 102
                         random characters. OIDplus uses this secret for various
103
                         security related purposes. If someone accidently received this secret,
104
                         please change the sequence.
105
 
713 daniel-mar 106
OIDplus::baseConfig()->setValue('CAPTCHA_PLUGIN',           'None');
107
 
261 daniel-mar 108
OIDplus::baseConfig()->setValue('RECAPTCHA_ENABLED',        true);
702 daniel-mar 109
                         Deprecated!
110
                         RECAPTCHA_ENABLED=true  becomes CAPTCHA_PLUGIN=ReCAPTCHA
111
                         RECAPTCHA_ENABLED=false becomes CAPTCHA_PLUGIN=None
261 daniel-mar 112
 
113
OIDplus::baseConfig()->setValue('RECAPTCHA_PUBLIC',         '');
713 daniel-mar 114
                         Only used if CAPTCHA_PLUGIN=ReCAPTCHA
261 daniel-mar 115
 
116
OIDplus::baseConfig()->setValue('RECAPTCHA_PRIVATE',        '');
713 daniel-mar 117
                         Only used if CAPTCHA_PLUGIN=ReCAPTCHA
261 daniel-mar 118
 
974 daniel-mar 119
OIDplus::baseConfig()->setValue('ENFORCE_SSL',              OIDplus::ENFORCE_SSL_AUTO);
120
                         Values OIDplus::ENFORCE_SSL_NO (0) = (off)
121
                                OIDplus::ENFORCE_SSL_YES (1) = (on)
122
                                OIDplus::ENFORCE_SSL_AUTO (2) = (auto detect SSL)
261 daniel-mar 123
 
124
 
125
----------------------
374 daniel-mar 126
(2) SYSTEM LIMITATIONS (defined and documented in includes/oidplus_limits.inc.php , can be overwritten by config.inc.php)
261 daniel-mar 127
----------------------
128
 
129
OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_DEPTH',  30);
713 daniel-mar 130
                         Please read the documentation in the file includes/oidplus_limits.inc.php
261 daniel-mar 131
 
132
OIDplus::baseConfig()->setValue('LIMITS_MAX_ID_LENGTH',     255);
713 daniel-mar 133
                         Please read the documentation in the file includes/oidplus_limits.inc.php
261 daniel-mar 134
 
135
OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_ARC_SIZE',  50);
713 daniel-mar 136
                         Please read the documentation in the file includes/oidplus_limits.inc.php
261 daniel-mar 137
 
138
OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_ASN1_ID_LEN',  255);
713 daniel-mar 139
                         Please read the documentation in the file includes/oidplus_limits.inc.php
261 daniel-mar 140
 
141
OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_UNICODE_LABEL_LEN',  255);
713 daniel-mar 142
                         Please read the documentation in the file includes/oidplus_limits.inc.php
261 daniel-mar 143
 
144
 
145
-----------------------------------------
146
(3) "HIDDEN"/UNDOCUMENTED CONFIG SETTINGS
147
-----------------------------------------
148
 
149
OIDplus::baseConfig()->setValue('OIDINFO_API_URL', '<url>');
713 daniel-mar 150
                         Currently only internal use for development utilities (dev/).
502 daniel-mar 151
                         The API to oid-info.com is currently not public.
261 daniel-mar 152
 
153
OIDplus::baseConfig()->setValue('REGISTRATION_HIDE_SYSTEM', true);
713 daniel-mar 154
                         Set this if you have a clone of a productive system and you want
261 daniel-mar 155
                         to avoid that the clone registers at the ViaThinkSoft directory
156
                         (which would overwrite the URL of the productive system and reveal
157
                         the URL of your testing system)
158
 
159
OIDplus::baseConfig()->setValue('MYSQL_FORCE_MYSQLND_SUPPLEMENT',         false);
713 daniel-mar 160
                         The MySQLi plugin contains a supplement code to handle
261 daniel-mar 161
                         prepared statements on servers which do not have the MySQLnd extension
162
                         installed. Set this flag to force the supplement to be used,
163
                         even if MySQLnd is available. (For testing purposes only)
164
 
165
OIDplus::baseConfig()->setValue('QUERY_LOGFILE',          '');
713 daniel-mar 166
                         Set this setting to a filename where all queries including timestamps would be written.
261 daniel-mar 167
                         This is used for performance analysis.
168
                         Please choose a directory that cannot be accessed by world-wide.
169
 
170
OIDplus::baseConfig()->setValue('SESSION_LIFETIME', 30*60);
713 daniel-mar 171
                         Session lifetime in seconds.
261 daniel-mar 172
 
173
OIDplus::baseConfig()->setValue('OBJECT_CACHING',         true);
174
 
175
OIDplus::baseConfig()->setValue('FORCE_DBMS_SLANG', '');
713 daniel-mar 176
                         Currently valid values: mysql, mssql, pgsql, sqlite
261 daniel-mar 177
 
502 daniel-mar 178
OIDplus::baseConfig()->setValue('PREPARED_STATEMENTS_EMULATION', 'auto');
713 daniel-mar 179
                         Currently only for ODBC database plugin.
502 daniel-mar 180
                         'auto' = Auto detect if prepared statements should be emulated
181
                         'on' = Always emulate prepared statements
182
                         'off' = Never emulate prepared statements
183
 
261 daniel-mar 184
OIDplus::baseConfig()->setValue('MINIFY_CSS', true);
417 daniel-mar 185
                         This enables the compression of CSS definitions.
186
                         Compressed approx:   220 KB
187
                         Uncompressed approx: 224 KB
261 daniel-mar 188
 
189
OIDplus::baseConfig()->setValue('MINIFY_JS',  true);
417 daniel-mar 190
                         This enables the compression of JavaScript code.
191
                         Please only disable this, if you want to debug
192
                         the code! You should not disable it on a productive
193
                         system, because otherwise the JavaScript code
194
                         would be several Megabytes large.
195
                         Compressed approx:  1133 KB
196
                         Unompressed approx: 2761 KB
261 daniel-mar 197
 
297 daniel-mar 198
OIDplus::baseConfig()->setValue('DISABLE_PLUGIN_...', true);
713 daniel-mar 199
                         This gives you the possibility to disable a plugin without
297 daniel-mar 200
                         requiring it to be removed from the file system.
201
                         (Removing a plugin from the file system can result in various
202
                         problems, e.g. they can be re-added during a SVN/software update.)
203
                         Replace "..." with the main PHP class of the plugin you want to disable
204
                         Example:
205
                         "DISABLE_PLUGIN_OIDplusLoggerPluginUserdataLogfile"
206
                         disables the plugin "logger/300_userdata_logfile".
316 daniel-mar 207
 
208
OIDplus::baseConfig()->setValue('DISABLE_AJAX_TRANSACTIONS', false);
209
                         This will disable the usage of database transactions in ajax.php
210
                         Do only use this if you have severe problems with the system running.
211
                         It might result in inconsistent data e.g. if you update an OID
212
                         and an error occurs in the middle of that process.
326 daniel-mar 213
 
806 daniel-mar 214
OIDplus::baseConfig()->setValue('CANONICAL_SYSTEM_URL', '');
215
                         Setting this value to a system URL will override the absolute system URL detection.
216
                         It has the following effects:
217
                         1. The "canonical" metatag will use this explicit system URL
218
                            instead of the one the PHP script is detecting.
219
                            (This is important to avoid duplicate content at search indexes)
220
                         2. CLI WHOIS and other CLI (Command-line-interface) tools
221
                            will use this address when they need to output an URL.
222
                            Otherwise, the CLI tools would need to use the last known
223
                            URL that was detected when a webpage visitor has last visited the
224
                            page.
225
                         3. While most resources (images, CSS files, scripts, etc.) are loaded
226
                            via relative URLs, sometimes an absolute URL is required
227
                            (e.g., if an email is sent with an activation link).
228
                            The explicit absolute system URL will then be used rather
229
                            than the automatically detected one.
230
                         Note that setting an absolute system URL can be very useful if
231
                         OIDplus runs on a system (which detects itself as "X"),
807 daniel-mar 232
                         while the canonical URL "Y" is a reverse-proxy.
778 daniel-mar 233
 
456 daniel-mar 234
OIDplus::baseConfig()->setValue('DEBUG', false);
235
                         Enables some special checks for plugins (e.g. a self-test for auth plugins).
236
                         It is highly recommended that you enable DEBUG if you are developing
237
                         plugins!
470 daniel-mar 238
                         It is recommended to disable this switch in productive systems,
239
                         because the self-tests decrease the performance.
240
                         However, after installing a new plugin, you might want to enable
241
                         it for a few minutes, to make sure the plugin is working correctly.
430 daniel-mar 242
 
557 daniel-mar 243
OIDplus::baseConfig()->setValue('COOKIE_SAMESITE_POLICY', 'Strict');
244
                         Defined which "SameSite" policy should be used for the cookies OIDplus uses.
245
                         Can be "None", "Lax" or "Strict".
246
                         "Strict" is the most secure setting.
247
                         "Lax" allows that people stay logged in if they follow a link pointing
248
                         to your OIDplus installation.
249
                         "None" is not recommended and is deprecated by modern web browsers.
250
                         However, OIDplus itself provides an Anti-CSRF mechanism, so you should be
251
                         still safe.
456 daniel-mar 252
 
812 daniel-mar 253
OIDplus::baseConfig()->setValue('COOKIE_DOMAIN', '');
254
                         Can be used to increase security by setting an explicit domain-name in the cookies.
255
                         Set to '' (empty string) to allow all (sub)domains.
256
                         Set to '(auto)' to automatically detect the domain based on the absolute canonical path.
257
 
258
OIDplus::baseConfig()->setValue('COOKIE_PATH', '/');
259
                         Can be used to increase security by setting an explicit pathname in the cookies.
260
                         Set to '/' to allow all paths.
261
                         Set to '(auto)' to automatically detect the path based on the absolute canonical path.
262
                         Note: If supported, you can use Apache's "ProxyPassReverseCookiePath" to translate
263
                         the cookie path in a reverse-proxy setting.
264
 
713 daniel-mar 265
OIDplus::baseConfig()->getValue('RA_PASSWORD_PEPPER', '');
617 daniel-mar 266
                         The pepper is stored inside the base configuration file
267
                         It prevents that an attacker with SQL write rights can
268
                         create accounts.
269
                         ATTENTION!!! If a pepper is used, then the
270
                         hashes are bound to that pepper. If you change the pepper,
271
                         then ALL passwords of RAs become INVALID!
557 daniel-mar 272
 
713 daniel-mar 273
OIDplus::baseConfig()->getValue('RA_PASSWORD_PEPPER_ALGO', 'sha512');
711 daniel-mar 274
                         The pepper is stored inside the base configuration file
275
                         It prevents that an attacker with SQL write rights can
276
                         create accounts.
277
                         ATTENTION!!! If a pepper is used, then the
278
                         hashes are bound to that pepper. If you change the pepper,
279
                         then ALL passwords of RAs become INVALID!
617 daniel-mar 280
 
711 daniel-mar 281
 
430 daniel-mar 282
----------------------------------------------------
283
(4) LDAP FIELDS (see document ldap_installation.txt)
284
----------------------------------------------------
285
 
620 daniel-mar 286
OIDplus::baseConfig()->setValue('LDAP_ENABLED',                true);
287
                         Set to true if you want to enable that users can log-in using LDAP / ActiveDirectory.
432 daniel-mar 288
 
625 daniel-mar 289
OIDplus::baseConfig()->setValue('LDAP_NUM_DOMAINS',            1);
290
                         Contains the number of domains/servers which are used.
291
                         For 2nd, 3rd, 4th, ... domain use the fields LDAP_xxx__2, LDAP_xxx__3, ...
292
                         e.g.   LDAP_SERVER__2
293
                                LDAP_PORT__2
294
                                LDAP_BASE_DN__2
295
                                ...
296
 
620 daniel-mar 297
OIDplus::baseConfig()->setValue('LDAP_SERVER',                 'ldap://server1.contoso.local');
298
                         The LDAP server of your company.
432 daniel-mar 299
 
620 daniel-mar 300
OIDplus::baseConfig()->setValue('LDAP_PORT',                   389);
301
                         The port of the LDAP server
302
 
303
OIDplus::baseConfig()->setValue('LDAP_BASE_DN',                'DC=CONTOSO,DC=local');
304
                         The base Distinguished Name (DN) of your directory.
305
 
625 daniel-mar 306
OIDplus::baseConfig()->setValue('LDAP_UPN_SUFFIX',             '@contoso.local');
307
                         The UPN suffix of this domain.
308
 
309
OIDplus::baseConfig()->setValue('LDAP_AUTHENTICATE_UPN',       true);
620 daniel-mar 310
                         In the login mask, the users will log in using the UPN ("principal name") e.g. username@contoso.local,
311
                         and in OIDplus, a RA account with an email equal to the UPN will be created.
312
 
313
OIDplus::baseConfig()->setValue('LDAP_AUTHENTICATE_EMAIL',     false);
314
                         In the login mask, the users will log in using the UPN ("principal name") e.g. username@contoso.local,
315
                         and in OIDplus, a RA account with an email equal to the "E-Mail-Address" field of the user in the directory will be created.
316
                         Note: If you did not set an email address to the user in the LDAP/ActiveDirectory, then the login will not be possible,
317
                         except if LDAP_AUTHENTICATE_UPN is additionally enabled.
318
                         Attention: Depending on your domain configuration, users might be able to change their own data,
319
                         e.g. email address. If this is the case, you must not enable this setting, otherwise,
320
                         users could authenticate with any address!
321
 
623 daniel-mar 322
OIDplus::baseConfig()->setValue('LDAP_ADMIN_GROUP',            '');
323
                         If set to an empty string, the OIDplus administrator account cannot be accessed using LDAP authentication.
324
                         Otherwise, the user will be authenticated as administrator, if the LDAP user is a
624 daniel-mar 325
                         member of the group specified in this setting.
623 daniel-mar 326
                         Example values: CN=Administrators,CN=Builtin,DC=CONTOSO,DC=local
327
                                         makes every domain administrator also an OIDplus administrator
328
                                         CN=OIDplus Administrators,CN=Users,DC=CONTOSO,DC=local
329
                                         makes every user of the group (OIDplus Administrators) to OIDplus administrators
330
 
331
OIDplus::baseConfig()->setValue('LDAP_RA_GROUP',               '');
332
                         If set to an empty string, every LDAP user can authenticate as RA, depending
333
                         on whether LDAP_AUTHENTICATE_UPN and/or LDAP_AUTHENTICATE_EMAIL is set.
624 daniel-mar 334
                         Otherwise, the LDAP users must be a member of the group specified in this setting.
620 daniel-mar 335
 
336
 
432 daniel-mar 337
----------------------------------------------------------------------
338
(5) GOOGLE OAUTH2 FIELDS (see document google_oauth2_installation.txt)
339
----------------------------------------------------------------------
340
 
341
OIDplus::baseConfig()->setValue('GOOGLE_OAUTH2_ENABLED',       true);
342
OIDplus::baseConfig()->setValue('GOOGLE_OAUTH2_CLIENT_ID',     '..............apps.googleusercontent.com');
343
OIDplus::baseConfig()->setValue('GOOGLE_OAUTH2_CLIENT_SECRET', '.............');
436 daniel-mar 344
 
345
 
346
-------------------------------------------------------------------------
347
(6) FACEBOOK OAUTH2 FIELDS (see document facebook_oauth2_installation.txt)
348
-------------------------------------------------------------------------
349
 
350
OIDplus::baseConfig()->setValue('FACEBOOK_OAUTH2_ENABLED',       true);
351
OIDplus::baseConfig()->setValue('FACEBOOK_OAUTH2_CLIENT_ID',     '.............'); // Your App ID
352
OIDplus::baseConfig()->setValue('FACEBOOK_OAUTH2_CLIENT_SECRET', '.............'); // Your App Secret
572 daniel-mar 353
 
354
 
355
----------------------------------------------------
356
(7) JWT AUTHENTICATION FIELDS
357
----------------------------------------------------
358
 
359
If a web request contains the field "OIDPLUS_AUTH_JWT" containing a signed JWT token,
360
an automatic one-time login is performed in order to execute commands.
361
This feature is used in the plugins "Automated AJAX calls" for admins and RAs.
362
With these switches you can disable this feature.
363
 
364
OIDplus::baseConfig()->setValue('JWT_ALLOW_AJAX_ADMIN', true);
365
                         Allow JWT tokens that were created using the admin-plugin
366
                         "Automated AJAX calls".
367
 
368
OIDplus::baseConfig()->setValue('JWT_ALLOW_AJAX_USER', true);
369
                         Allow JWT tokens that were created using the RA-plugin
370
                         "Automated AJAX calls".
371
 
372
OIDplus::baseConfig()->setValue('JWT_ALLOW_LOGIN_ADMIN', true);
579 daniel-mar 373
                         Allow "Remember me" logins for the administrator account.
572 daniel-mar 374
 
375
OIDplus::baseConfig()->setValue('JWT_ALLOW_LOGIN_USER', true);
579 daniel-mar 376
                         Allow "Remember me" logins for a RA.
572 daniel-mar 377
 
585 daniel-mar 378
OIDplus::baseConfig()->setValue('JWT_ALLOW_MANUAL', false);
572 daniel-mar 379
                         Allow JWT tokens which were manually created "by hand".
380
                         These can have any content you like, but they must
381
                         contain the claim "oidplus_generator" with value "2".
583 daniel-mar 382
 
383
OIDplus::baseConfig()->setValue('JWT_TTL_LOGIN_USER', 10*365*24*60*60);
384
                         How many seconds will a "remember me" login JWT token be valid?
385
                         (RA login)
386
 
387
OIDplus::baseConfig()->setValue('JWT_TTL_LOGIN_ADMIN', 10*365*24*60*60);
388
                         How many seconds will a "remember me" login JWT token be valid?
389
                         (Administrator login)