Subversion Repositories oidplus

Rev

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