ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilAuthUtils.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5
6// define auth modes
7define("AUTH_LOCAL", 1);
8define("AUTH_LDAP", 2);
9define("AUTH_RADIUS", 3);
10define("AUTH_SCRIPT", 4);
11define("AUTH_SHIBBOLETH", 5);
12define("AUTH_CAS", 6);
13define("AUTH_SOAP", 7);
14// BEGIN WebDAV: Add support for HTTP authentication
15define("AUTH_HTTP", 8);
16// END WebDAV: Add support for HTTP authentication
17define("AUTH_ECS", 9);
18
19define("AUTH_APACHE", 11);
20define("AUTH_SAML", 12);
21
22define('AUTH_OPENID_CONNECT', 15);
23
24define("AUTH_INACTIVE", 18);
25
26define('AUTH_MULTIPLE', 20);
27
28define('AUTH_SESSION', 21);
29
30define('AUTH_PROVIDER_LTI', 22);
31
32define('AUTH_SOAP_NO_ILIAS_USER', -100);
33define('AUTH_LDAP_NO_ILIAS_USER', -200);
34define('AUTH_RADIUS_NO_ILIAS_USER', -300);
35
36// apache auhtentication failed...
37// maybe no (valid) certificate or
38// username could not be extracted
39define('AUTH_APACHE_FAILED', -500);
40define('AUTH_SAML_FAILED', -501);
41
42define('AUTH_MODE_INACTIVE', -1000);
43
44// an external user cannot be found in ilias, but his email address
45// matches one or more ILIAS users
46define('AUTH_SOAP_NO_ILIAS_USER_BUT_EMAIL', -101);
47define('AUTH_CAS_NO_ILIAS_USER', -90);
48
49// ilUser validation (no login)
50define('AUTH_USER_WRONG_IP', -600);
51define('AUTH_USER_INACTIVE', -601);
52define('AUTH_USER_TIME_LIMIT_EXCEEDED', -602);
53define('AUTH_USER_SIMULTANEOUS_LOGIN', -603);
54define('AUTH_CAPTCHA_INVALID', -604);
55
56
57include_once './Services/Authentication/classes/class.ilAuthFactory.php';
58require_once('Services/Authentication/classes/class.ilSessionControl.php');
59
60
69{
70 const LOCAL_PWV_FULL = 1;
71 const LOCAL_PWV_NO = 2;
72 const LOCAL_PWV_USER = 3;
73
77 public static function isAuthenticationForced()
78 {
79 if (isset($_GET['ecs_hash']) or isset($_GET['ecs_hash_url'])) {
80 return true;
81 }
82 return false;
83 }
84
85 public static function handleForcedAuthentication()
86 {
87 if (isset($_GET['ecs_hash']) or isset($_GET['ecs_hash_url'])) {
88 include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
89 $credentials = new ilAuthFrontendCredentials();
90 $credentials->setUsername($_GET['ecs_login']);
91 $credentials->setAuthMode(AUTH_ECS);
92
93 include_once './Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
94 $provider_factory = new ilAuthProviderFactory();
95 $providers = $provider_factory->getProviders($credentials);
96
97 include_once './Services/Authentication/classes/class.ilAuthStatus.php';
98 $status = ilAuthStatus::getInstance();
99
100 include_once './Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
101 $frontend_factory = new ilAuthFrontendFactory();
102 $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
103 $frontend = $frontend_factory->getFrontend(
104 $GLOBALS['DIC']['ilAuthSession'],
105 $status,
106 $credentials,
107 $providers
108 );
109
110 $frontend->authenticate();
111
112 switch ($status->getStatus()) {
114 return;
115
118 return;
119 }
120 }
121 }
122
123 public static function _getAuthMode($a_auth_mode, $a_db_handler = '')
124 {
125 global $DIC;
126
127 $ilDB = $DIC['ilDB'];
128 $ilSetting = $DIC['ilSetting'];
129
130 $db = &$ilDB;
131
132 if ($a_db_handler != '') {
133 $db = &$a_db_handler;
134 }
135
136 // begin-patch ldap_multiple
137 if (strpos($a_auth_mode, '_') !== false) {
138 $auth_arr = explode('_', $a_auth_mode);
139 $auth_switch = $auth_arr[0];
140 } else {
141 $auth_switch = $a_auth_mode;
142 }
143 switch ($auth_switch) {
144 case "local":
145 return AUTH_LOCAL;
146 break;
147
148 case "ldap":
149 // begin-patch ldap_multiple
150 include_once './Services/LDAP/classes/class.ilLDAPServer.php';
151 return ilLDAPServer::getKeyByAuthMode($a_auth_mode);
152 // end-patch ldap_multiple
153
154 case 'lti':
155 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
156 return ilAuthProviderLTI::getKeyByAuthMode($a_auth_mode);
157
158 case "radius":
159 return AUTH_RADIUS;
160 break;
161
162 case "script":
163 return AUTH_SCRIPT;
164 break;
165
166 case "shibboleth":
167 return AUTH_SHIBBOLETH;
168 break;
169
170 case 'oidc':
171 return AUTH_OPENID_CONNECT;
172 break;
173
174 case 'saml':
175 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
176 return ilSamlIdp::getKeyByAuthMode($a_auth_mode);
177
178 case "cas":
179 return AUTH_CAS;
180 break;
181
182 case "soap":
183 return AUTH_SOAP;
184 break;
185
186 case 'ecs':
187 return AUTH_ECS;
188
189 case 'apache':
190 return AUTH_APACHE;
191
192 default:
193 return $ilSetting->get("auth_mode");
194 break;
195 }
196 }
197
198 public static function _getAuthModeName($a_auth_key)
199 {
200 global $DIC;
201
202 $ilias = $DIC['ilias'];
203
204 // begin-patch ldap_multiple
205 switch ((int) $a_auth_key) {
206 case AUTH_LOCAL:
207 return "local";
208 break;
209
210 case AUTH_LDAP:
211 // begin-patch ldap_multiple
212 include_once './Services/LDAP/classes/class.ilLDAPServer.php';
213 return ilLDAPServer::getAuthModeByKey($a_auth_key);
214 // end-patch ldap_multiple
215
217 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
218 return ilAuthProviderLTI::getAuthModeByKey($a_auth_key);
219
220 case AUTH_RADIUS:
221 return "radius";
222 break;
223
224 case AUTH_CAS:
225 return "cas";
226 break;
227
228 case AUTH_SCRIPT:
229 return "script";
230 break;
231
232 case AUTH_SHIBBOLETH:
233 return "shibboleth";
234 break;
235
236 case AUTH_SAML:
237 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
238 return ilSamlIdp::getAuthModeByKey($a_auth_key);
239
240 case AUTH_SOAP:
241 return "soap";
242 break;
243
244 case AUTH_ECS:
245 return 'ecs';
246
247 case AUTH_APACHE:
248 return 'apache';
249
251 return 'oidc';
252 break;
253
254 default:
255 return "default";
256 break;
257 }
258 }
259
260 public static function _getActiveAuthModes()
261 {
262 global $DIC;
263
264 $ilias = $DIC['ilias'];
265 $ilSetting = $DIC['ilSetting'];
266
267 $modes = array(
268 'default' => $ilSetting->get("auth_mode"),
269 'local' => AUTH_LOCAL
270 );
271 include_once('Services/LDAP/classes/class.ilLDAPServer.php');
272 foreach (ilLDAPServer::_getActiveServerList() as $sid) {
273 $modes['ldap_' . $sid] = (AUTH_LDAP . '_' . $sid);
274 }
275
276 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
277 foreach (ilAuthProviderLTI::getAuthModes() as $sid) {
278 $modes['lti_' . $sid] = (AUTH_PROVIDER_LTI . '_' . $sid);
279 }
280
281 if (ilOpenIdConnectSettings::getInstance()->getActive()) {
282 $modes['oidc'] = AUTH_OPENID_CONNECT;
283 }
284
285 if ($ilSetting->get("radius_active")) {
286 $modes['radius'] = AUTH_RADIUS;
287 }
288 if ($ilSetting->get("shib_active")) {
289 $modes['shibboleth'] = AUTH_SHIBBOLETH;
290 }
291 if ($ilSetting->get("script_active")) {
292 $modes['script'] = AUTH_SCRIPT;
293 }
294 if ($ilSetting->get("cas_active")) {
295 $modes['cas'] = AUTH_CAS;
296 }
297 if ($ilSetting->get("soap_auth_active")) {
298 $modes['soap'] = AUTH_SOAP;
299 }
300 if ($ilSetting->get("apache_active")) {
301 $modes['apache'] = AUTH_APACHE;
302 }
303
304 include_once './Services/WebServices/ECS/classes/class.ilECSServerSettings.php';
305 if (ilECSServerSettings::getInstance()->activeServerExists()) {
306 $modes['ecs'] = AUTH_ECS;
307 }
308
309 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
310 foreach (ilSamlIdp::getActiveIdpList() as $idp) {
311 $modes['saml_' . $idp->getIdpId()] = AUTH_SAML . '_' . $idp->getIdpId();
312 }
313
314 // begin-path auth_plugin
315 foreach (self::getAuthPlugins() as $pl) {
316 foreach ($pl->getAuthIds() as $auth_id) {
317 if ($pl->isAuthActive($auth_id)) {
318 $modes[$pl->getAuthName($auth_id)] = $auth_id;
319 }
320 }
321 }
322 // end-path auth_plugin
323 return $modes;
324 }
325
326 public static function _getAllAuthModes()
327 {
328 $modes = array(
330 AUTH_LDAP,
332 AUTH_SAML,
333 AUTH_CAS,
334 AUTH_SOAP,
336 AUTH_ECS,
340 );
341 $ret = array();
342 foreach ($modes as $mode) {
343 if ($mode == AUTH_PROVIDER_LTI) {
344 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
345 foreach (ilAuthProviderLTI::getAuthModes() as $sid) {
346 $id = AUTH_PROVIDER_LTI . '_' . $sid;
348 }
349 continue;
350 }
351
352 // multi ldap implementation
353 if ($mode == AUTH_LDAP) {
354 foreach (ilLDAPServer::_getServerList() as $ldap_id) {
355 $id = AUTH_LDAP . '_' . $ldap_id;
357 }
358 continue;
359 } elseif ($mode == AUTH_SAML) {
360 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
361 foreach (ilSamlIdp::getAllIdps() as $idp) {
362 $id = AUTH_SAML . '_' . $idp->getIdpId();
364 }
365 continue;
366 }
367 $ret[$mode] = ilAuthUtils::_getAuthModeName($mode);
368 }
369 return $ret;
370 }
371
376 public static function _generateLogin($a_login)
377 {
378 global $DIC;
379
380 $ilDB = $DIC['ilDB'];
381
382 // Check if username already exists
383 $found = false;
384 $postfix = 0;
385 $c_login = $a_login;
386 while (!$found) {
387 $r = $ilDB->query("SELECT login FROM usr_data WHERE login = " .
388 $ilDB->quote($c_login));
389 if ($r->numRows() > 0) {
390 $postfix++;
391 $c_login = $a_login . $postfix;
392 } else {
393 $found = true;
394 }
395 }
396
397 return $c_login;
398 }
399
400 public static function _hasMultipleAuthenticationMethods()
401 {
402 include_once('Services/Radius/classes/class.ilRadiusSettings.php');
403
404 $rad_settings = ilRadiusSettings::_getInstance();
405 if ($rad_settings->isActive()) {
406 return true;
407 }
408 include_once('Services/LDAP/classes/class.ilLDAPServer.php');
409
411 return true;
412 }
413
414 global $DIC;
415
416 $ilSetting = $DIC['ilSetting'];
417
418 if ($ilSetting->get('apache_active')) {
419 return true;
420 }
421
422 // begin-patch auth_plugin
423 foreach (ilAuthUtils::getAuthPlugins() as $pl) {
424 foreach ($pl->getAuthIds() as $auth_id) {
425 if ($pl->getMultipleAuthModeOptions($auth_id)) {
426 return true;
427 }
428 }
429 }
430 // end-patch auth_plugin
431
432
433 return false;
434 }
435
436 public static function _getMultipleAuthModeOptions($lng)
437 {
438 global $DIC;
439
440 $ilSetting = $DIC['ilSetting'];
441
442 // in the moment only ldap is activated as additional authentication method
443 include_once('Services/LDAP/classes/class.ilLDAPServer.php');
444
445 $options[AUTH_LOCAL]['txt'] = $lng->txt('authenticate_ilias');
446
447
448 // begin-patch ldap_multiple
449 foreach (ilLDAPServer::_getActiveServerList() as $sid) {
451 $options[AUTH_LDAP . '_' . $sid]['txt'] = $server->getName();
452 }
453 // end-patch ldap_multiple
454
455 include_once('Services/Radius/classes/class.ilRadiusSettings.php');
456 $rad_settings = ilRadiusSettings::_getInstance();
457 if ($rad_settings->isActive()) {
458 $options[AUTH_RADIUS]['txt'] = $rad_settings->getName();
459 }
460
461 if ($ilSetting->get('apache_active')) {
462 global $DIC;
463
464 $lng = $DIC['lng'];
465 $apache_settings = new ilSetting('apache_auth');
466 $options[AUTH_APACHE]['txt'] = $apache_settings->get('name', $lng->txt('apache_auth'));
467 $options[AUTH_APACHE]['hide_in_ui'] = true;
468 }
469
470 if ($ilSetting->get('auth_mode', AUTH_LOCAL) == AUTH_LDAP) {
471 $default = AUTH_LDAP;
472 } elseif ($ilSetting->get('auth_mode', AUTH_LOCAL) == AUTH_RADIUS) {
473 $default = AUTH_RADIUS;
474 } else {
475 $default = AUTH_LOCAL;
476 }
477
478 $default = $ilSetting->get('default_auth_mode', $default);
479 $default = (int) $_REQUEST['auth_mode'] ? (int) $_REQUEST['auth_mode'] : $default;
480
481
482 // begin-patch auth_plugin
484 foreach ($pls as $pl) {
485 $auths = $pl->getAuthIds();
486 foreach ($auths as $auth_id) {
487 $pl_auth_option = $pl->getMultipleAuthModeOptions($auth_id);
488 if ($pl_auth_option) {
489 $options = $options + $pl_auth_option;
490 }
491 }
492 }
493 // end-patch auth_plugins
494
495 if (array_key_exists($default, $options)) {
496 $options[$default]['checked'] = true;
497 }
498
499 return $options ? $options : array();
500 }
501
511 public static function _isExternalAccountEnabled()
512 {
513 global $DIC;
514
515 $ilSetting = $DIC['ilSetting'];
516
517 if ($ilSetting->get("cas_active")) {
518 return true;
519 }
520 if ($ilSetting->get("soap_auth_active")) {
521 return true;
522 }
523 if ($ilSetting->get("shib_active")) {
524 return true;
525 }
526 if ($ilSetting->get('radius_active')) {
527 return true;
528 }
529 include_once('Services/LDAP/classes/class.ilLDAPServer.php');
531 return true;
532 }
533
534 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
536 return true;
537 }
538
539 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
540 if (count(ilSamlIdp::getActiveIdpList()) > 0) {
541 return true;
542 }
543
544 if (ilOpenIdConnectSettings::getInstance()->getActive()) {
545 return true;
546 }
547
548 // begin-path auth_plugin
549 foreach (self::getAuthPlugins() as $pl) {
550 foreach ($pl->getAuthIds() as $auth_id) {
551 if ($pl->isAuthActive($auth_id) and $pl->isExternalAccountNameRequired($auth_id)) {
552 return true;
553 }
554 }
555 }
556 // end-path auth_plugin
557
558 return false;
559 }
560
569 public static function _allowPasswordModificationByAuthMode($a_auth_mode)
570 {
571 switch ((int) $a_auth_mode) {
572 case AUTH_LDAP:
573 case AUTH_RADIUS:
574 case AUTH_ECS:
577 return false;
578 default:
579 return true;
580 }
581 }
582
591 public static function _needsExternalAccountByAuthMode($a_auth_mode)
592 {
593 switch ($a_auth_mode) {
594 case AUTH_LOCAL:
595 case AUTH_APACHE:
596 return false;
597 default:
598 return true;
599 }
600 }
601
605 public static function isPasswordModificationHidden()
606 {
608 global $DIC;
609
610 $ilSetting = $DIC['ilSetting'];
611
612 if ($ilSetting->get('usr_settings_hide_password') || $ilSetting->get('usr_settings_disable_password')) {
613 return true;
614 }
615
616 return false;
617 }
618
624 public static function isLocalPasswordEnabledForAuthMode($a_authmode)
625 {
626 global $DIC;
627
628 $ilSetting = $DIC->settings();
629
630 switch ((int) $a_authmode) {
631 // always enabled
632 case AUTH_LOCAL:
633 case AUTH_APACHE:
634 return true;
635
636 // No local passwords for these auth modes
637 case AUTH_LDAP:
638 case AUTH_RADIUS:
639 case AUTH_ECS:
640 case AUTH_SCRIPT:
643 return false;
644
645 case AUTH_SAML:
646 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
648 return $idp->isActive() && $idp->allowLocalAuthentication();
649
650 case AUTH_SHIBBOLETH:
651 return $ilSetting->get("shib_auth_allow_local");
652 case AUTH_SOAP:
653 return $ilSetting->get("soap_auth_allow_local");
654 case AUTH_CAS:
655 return $ilSetting->get("cas_allow_local");
656
657 }
658 return false;
659 }
660
661
662
668 public static function isPasswordModificationEnabled($a_authmode)
669 {
670 global $DIC;
671
672 $ilSetting = $DIC['ilSetting'];
673
674 if (self::isPasswordModificationHidden()) {
675 return false;
676 }
677
678 // begin-patch ldap_multiple
679 // cast to int
680 switch ((int) $a_authmode) {
681 // No local passwords for these auth modes
682 case AUTH_LDAP:
683 case AUTH_RADIUS:
684 case AUTH_ECS:
685 case AUTH_SCRIPT:
688 return false;
689
690 case AUTH_SAML:
691 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
693 return $idp->isActive() && $idp->allowLocalAuthentication();
694
695 // Always for and local
696 case AUTH_LOCAL:
697 case AUTH_APACHE:
698 return true;
699
700 // Read setting:
701 case AUTH_SHIBBOLETH:
702 return $ilSetting->get("shib_auth_allow_local");
703 case AUTH_SOAP:
704 return $ilSetting->get("soap_auth_allow_local");
705 case AUTH_CAS:
706 return $ilSetting->get("cas_allow_local");
707 }
708 }
709
715 public static function supportsLocalPasswordValidation($a_authmode)
716 {
717 // begin-patch ldap_multiple
718 // cast to int
719 switch ((int) $a_authmode) {
720 case AUTH_LDAP:
721 case AUTH_LOCAL:
722 case AUTH_RADIUS:
724
725 case AUTH_SHIBBOLETH:
727 case AUTH_SAML:
728 case AUTH_SOAP:
729 case AUTH_CAS:
732 }
734
736 case AUTH_ECS:
737 case AUTH_SCRIPT:
738 case AUTH_APACHE:
739 default:
741 }
742 }
743
744 // begin-patch auth_plugin
749 public static function getAuthPlugins()
750 {
751 $pls = $GLOBALS['DIC']['ilPluginAdmin']->getActivePluginsForSlot(
753 'Authentication',
754 'authhk'
755 );
756 $pl_objs = array();
757 foreach ($pls as $pl) {
758 $pl_objs[] = $GLOBALS['DIC']['ilPluginAdmin']->getPluginObject(
760 'Authentication',
761 'authhk',
762 $pl
763 );
764 }
765 return $pl_objs;
766 }
767 // end-patch auth_plugins
768
773 public static function getAuthModeTranslation($a_auth_key, $auth_name = '')
774 {
775 global $DIC;
776
777 $lng = $DIC['lng'];
778
779 switch ((int) $a_auth_key) {
780 case AUTH_LDAP:
781 include_once './Services/LDAP/classes/class.ilLDAPServer.php';
782 $sid = ilLDAPServer::getServerIdByAuthMode($a_auth_key);
784 return $server->getName();
785
787 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
790
791
792 case AUTH_SAML:
793 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
794 $idp_id = ilSamlIdp::getIdpIdByAuthMode($a_auth_key);
795 $idp = ilSamlIdp::getInstanceByIdpId($idp_id);
796 return $idp->getEntityId();
797
798 default:
799 $lng->loadLanguageModule('auth');
800 if (!empty($auth_name)) {
801 return $lng->txt('auth_' . $auth_name);
802 } else {
803 return $lng->txt('auth_' . self::_getAuthModeName($a_auth_key));
804 }
805 }
806}
807}
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$_GET["client_id"]
An exception for terminatinating execution or to throw for unit testing.
const AUTH_SHIBBOLETH
const AUTH_APACHE
const AUTH_OPENID_CONNECT
const AUTH_ECS
const AUTH_SAML
const AUTH_LDAP
const AUTH_LOCAL
const AUTH_SCRIPT
const AUTH_RADIUS
const AUTH_CAS
const AUTH_PROVIDER_LTI
const AUTH_SOAP
const IL_COMP_SERVICE
Factory for auth frontend classes.
static getActiveAuthModes()
get all active authmode server ids
static getKeyByAuthMode($a_auth_mode)
Get auth id by auth mode.
static lookupConsumer($a_sid)
Lookup consumer title.
static getServerIdByAuthMode($a_auth_mode)
Get auth id by auth mode.
static getAuthModeByKey($a_auth_key)
Get auth mode by key.
static getInstance()
Get status instance.
const STATUS_AUTHENTICATION_FAILED
static utility functions used to manage authentication modes
static getAuthModeTranslation($a_auth_key, $auth_name='')
static _allowPasswordModificationByAuthMode($a_auth_mode)
Allow password modification.
static isAuthenticationForced()
Check if authentication is should be forced.
static _getAuthMode($a_auth_mode, $a_db_handler='')
static _getActiveAuthModes()
static supportsLocalPasswordValidation($a_authmode)
Check if local password validation is supported.
static isLocalPasswordEnabledForAuthMode($a_authmode)
Check if local password validation is enabled for a specific auth_mode.
static _getMultipleAuthModeOptions($lng)
static _isExternalAccountEnabled()
Check if an external account name is required.
static getAuthPlugins()
Get active enabled auth plugins.
static _hasMultipleAuthenticationMethods()
static isPasswordModificationEnabled($a_authmode)
Check if password modification is enabled.
static _generateLogin($a_login)
generate free login by starting with a default string and adding postfix numbers
static _needsExternalAccountByAuthMode($a_auth_mode)
Check if chosen auth mode needs an external account entry.
static handleForcedAuthentication()
static _getAllAuthModes()
static _getAuthModeName($a_auth_key)
static getInstance()
Get singleton instance.
static goToPublicSection()
go to public section
static getServerIdByAuthMode($a_auth_mode)
Get auth id by auth mode.
static _getServerList()
Get list of all configured servers.
static getInstanceByServerId($a_server_id)
Get instance by server id.
static _getActiveServerList()
Get active server list.
static getAuthModeByKey($a_auth_key)
get auth mode by key
static getKeyByAuthMode($a_auth_mode)
Get auth id by auth mode.
static getInstance()
Get singleton instance.
static _getInstance()
singleton get instance
static getActiveIdpList()
static getIdpIdByAuthMode(string $a_auth_mode)
static getAuthModeByKey(string $a_auth_key)
static getInstanceByIdpId(int $a_idp_id)
static getAllIdps()
static getKeyByAuthMode(string $a_auth_mode)
ILIAS Setting Class.
$server
$ret
Definition: parser.php:6
global $ilSetting
Definition: privfeed.php:17
$lng
global $ilDB
$DIC
Definition: xapitoken.php:46