Commit Graph

100 Commits

Author SHA1 Message Date
Tony Murray
473cbcc508 Handle ad/ldap authorizer search error (#16139)
* Handle ldap authorizer search error

* Update LdapAuthorizationAuthorizer.php

* More ldap failure checks
2024-06-24 19:49:34 -05:00
Tony Murray
34032723c4 Revert "Fix for AD Lookup in our environment (#16001)" (#16035)
This reverts commit 250c3e32c3.
2024-05-14 09:57:07 -05:00
sonic45132
250c3e32c3 Fix for AD Lookup in our environment (#16001) 2024-05-01 06:56:47 -05:00
Jellyfrog
071ca9bc2a Apply fixes from StyleCI (#15698)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-01-04 22:39:12 -06:00
Peter Childs
828be4bb52 add auth_ldap_cacertfile and auth_ldap_ignorecert options (#15526)
* add auth_ldap_cacertfile and auth_ldap_ignorecert options

* style-ci
2023-11-01 20:48:44 -05:00
Tony Murray
b5f12ee03f ADAuthorizer auth skip count entry (#15322)
fixes #15304
2023-09-14 09:27:16 -05:00
Tony Murray
b51ae39e71 Radius enforce roles (#15294)
Add new setting to specify if user roles will be set at login or not.
Without this setting enabled, roles are only set when the user is first created and never after that. If roles set via Filter-ID attribute or radius.default_roles change, they will never be reflected on existing users.
For that reason, the default is set to enabled.  Historically, radius did not enforce roles.
2023-09-07 11:28:35 -05:00
Tony Murray
9c6fc31113 Fix LDAP Authorization Authorizer (#15267)
https://community.librenms.org/t/8-28-sudden-ldap-authentication-issues/22176/10
2023-08-30 19:33:13 +02:00
Tony Murray
bbe835b5f9 Radius update roles correctly (#15261)
Needs a re-write so semantics line up with Laravel auth better, but this is the quick/safe fix.
2023-08-28 23:38:09 -05:00
Tony Murray
b889e218dc LDAP Authorizer hand count entry (#15259) 2023-08-28 14:06:33 -05:00
Tony Murray
f622a96c70 Fix mysql auth removing roles upon login (#15258) 2023-08-28 11:00:18 -05:00
Tony Murray
2cd207028a Implement RBAC (only built in roles) (#15212)
* Install bouncer

* Seeder and level migration

* Display and edit roles

* remove unused deluser page

* Update Radius and SSO to assign roles

* update AlertUtil direct level check to use roles instead

* rewrite ircbot auth handling

* Remove legacy auth getUserlist and getUserlevel methods, add getRoles
Set roles in LegacyUserProvider

* Small cleanups

* centralize role sync code
show roles on user preferences page

* VueSelect component WIP and a little docs

* WIP

* SelectControllers id and text fields.

* LibrenmsSelect component extracted from SettingSelectDynamic

* Handle multiple selections

* allow type coercion

* full width settings

* final style adjustments

* Final compiled assets update

* Style fixes

* Fix SSO tests

* Lint cleanups

* small style fix

* don't use json yet

* Update baseline for usptream package issues

* Change schema, not 100% sure it is correct
not sure why xor doesn't work
2023-08-28 00:13:40 -05:00
Jacob
a71ca98fac LDAP: remove user_id cast to int (#15205)
* Remove user_id cast to int

Unnecessary due to field being varchar.

* Change the strict comparisons to non-strict
2023-08-08 21:30:16 -05:00
Jellyfrog
b14e2d4609 Apply fixes from StyleCI (#15101)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-06-13 13:35:00 +02:00
Jellyfrog
2b3575a5e9 Laravel 10.x Shift (#14995)
* Apply code style

* Remove explicit call to register policies

* Shift core files

* Shift config files

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them and merged your true customizations -
where ENV variables may not be used.

* Bump Laravel dependencies

* Add type hints for Laravel 10

* Shift cleanup

* wip

* wip

* sync translation

* Sync back config

* Public Path Binding

* QueryException

* monolog

* db::raw

* monolog

* db::raw

* fix larastan collections

* fix phpstan bug looping forever

* larastan errors

* larastan: fix column type

* styleci

* initialize array

* fixes

* fixes

---------

Co-authored-by: Shift <shift@laravelshift.com>
2023-05-24 22:21:54 +02:00
Tony Murray
52f5f10231 Fix some lint issues (#14962) 2023-04-15 09:02:41 -05:00
Kim Håkonsen
524e0c097b Update Radius auth to accept permissions attributes (#14531)
* Update Radius-Auth to accept permission attribute

* Update Radius-Auth to accept permission attribute

* Fixed list of strings

* Swapped " with ' in switch statement

* Added whitespace to satisfy  styleCI bot

* Yet another whitespace...

* Removed two blank lines....

* Fixed missing "s"

* Try to satisfy linter - fixed a stupid mistake

Had put the code for mapping attributes inside the if statement that states that user exists in librenms. It has to be done before testing of user exists, and after radius auth is true.

* Comments was skewed

* Stylefix

* Update LibreNMS/Authentication/RadiusAuthorizer.php

Murrant's edit

Co-authored-by: Tony Murray <murraytony@gmail.com>

* Added 0 on line 54 to satisfy test.

* StyleFix

* Stylefix2

* Style test complained about whitespaces, i guess..

* Update Authentication.md

* Update Authentication.md

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-11-09 10:10:33 -06:00
Jellyfrog
be1a2cec50 Miscellaneous fixes, mostly undefined variables (#14432)
* Miscellaneous fixes, mostly undefined variables

* Update phpstan-baseline.neon
2022-10-11 11:30:00 +02:00
Martin22
3f5588b2c4 Revert "Update radius auth to accept permissions attribute (#14382)" (#14433)
This reverts commit 840c3210e6.
2022-10-10 12:26:44 +02:00
Kim Håkonsen
840c3210e6 Update radius auth to accept permissions attribute (#14382)
* Update radius auth to accept permissions attribute

* Apply fixes from StyleCI

* Stylefix

* Update Authentication.md

* Update RadiusAuthorizer.php

Co-authored-by: StyleCI Bot <bot@styleci.io>
2022-10-07 21:54:21 +02:00
Tony Murray
fbcaccdbd4 Update dependencies (#14319)
* Update dependencies
 hpdocumentor/reflection-docblock (5.3.0)
 hpspec/prophecy (v1.15.0)
 ymfony/debug (v4.4.41)
 barryvdh/laravel-debugbar (v3.6.7 => v3.7.0)
 composer/ca-bundle (1.3.2 => 1.3.3)
 composer/class-map-generator (1.0.0)
 composer/composer (2.3.7 => 2.4.1)
 doctrine/annotations (1.13.2 => 1.13.3)
 doctrine/event-manager (1.1.1 => 1.1.2)
 doctrine/inflector (2.0.4 => 2.0.5)
 fakerphp/faker (v1.19.0 => v1.20.0)
 graham-campbell/result-type (v1.0.4 => v1.1.0)
 guzzlehttp/guzzle (7.4.5 => 7.5.0)
 guzzlehttp/promises (1.5.1 => 1.5.2)
 guzzlehttp/psr7 (2.4.0 => 2.4.1)
 laravel/dusk (v6.24.0 => v6.25.1)
 laravel/framework (v8.83.16 => v8.83.23)
 laravel/serializable-closure (v1.2.0 => v1.2.1)
 laravel/socialite (v5.5.2 => v5.5.5)
 maximebf/debugbar (v1.18.0 => v1.18.1)
 mews/purifier (3.3.7 => 3.3.8)
 mockery/mockery (1.5.0 => 1.5.1)
 monolog/monolog (2.7.0 => 2.8.0)
 nesbot/carbon (2.58.0 => 2.62.1)
 nikic/php-parser (v4.14.0 => v4.15.1)
 paragonie/constant_time_encoding (v2.6.1 => v2.6.3)
 phpmailer/phpmailer (v6.6.0 => v6.6.4)
 phpoption/phpoption (1.8.1 => 1.9.0)
 phpseclib/phpseclib (3.0.14 => 3.0.16)
 phpstan/phpstan (1.7.12 => 1.8.5)
 phpunit/php-code-coverage (9.2.15 => 9.2.17)
 phpunit/phpunit (9.5.20 => 9.5.24)
 psy/psysh (v0.11.5 => v0.11.8)
 sebastian/type (3.0.0 => 3.1.0)
 seld/phar-utils (1.2.0 => 1.2.1)
 seld/signal-handler (2.0.1)
 symfony/console (v5.4.9 => v5.4.12)
 symfony/css-selector (v5.4.3 => v5.4.11)
 symfony/deprecation-contracts (v2.5.1 => v2.5.2)
 symfony/error-handler (v5.4.9 => v5.4.11)
 symfony/event-dispatcher-contracts (v2.5.1 => v2.5.2)
 symfony/filesystem (v5.4.9 => v5.4.12)
 symfony/finder (v5.4.8 => v5.4.11)
 symfony/http-foundation (v5.4.9 => v5.4.12)
 symfony/http-kernel (v5.4.9 => v5.4.12)
 symfony/mime (v5.4.9 => v5.4.12)
 symfony/options-resolver (v5.4.3 => v5.4.11)
 symfony/process (v5.4.8 => v5.4.11)
 symfony/routing (v5.4.8 => v5.4.11)
 symfony/service-contracts (v2.5.1 => v2.5.2)
 symfony/string (v5.4.9 => v5.4.12)
 symfony/translation (v5.4.9 => v5.4.12)
 symfony/translation-contracts (v2.5.1 => v2.5.2)
 symfony/var-dumper (v5.4.9 => v5.4.11)
 symfony/yaml (v4.4.37 => v4.4.45)
 tecnickcom/tcpdf (6.4.4 => 6.5.0)

* changes

* try again

* Fix some issues because the message is changing between versions, just avoids it.
2022-09-09 09:55:59 -05:00
Jellyfrog
152497a098 PHPStan: Enable more checks (#14318)
* PHPStan: Enable more checks

* Fixes

* Fixes

* Deprecation fixes
2022-09-09 07:08:06 -05:00
Jellyfrog
36e9c5e0b9 PHPStan: Remove PHP version constraint (#14314) 2022-09-06 23:43:51 +02:00
Tony Murray
6e8224565f AD Auth PHP8.1 fixes (#14215) 2022-08-18 21:47:14 -05:00
Jellyfrog
2ef1c3670b Fix error when ldap_search returns false (#14199) 2022-08-14 09:14:12 -05:00
Dag Bakke
24fc12722b Add option STARTTLS for authentication via AD (#14051)
* Add option STARTTLS for authentication via AD

* Fix dangling spaces

* Moved starttls code to the correct place

* tabs vs spaces...

* Update ActiveDirectoryAuthorizer.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-07-05 14:53:29 -05:00
Holger Hees
3b255edc37 Implement support for usernames coming from reverse proxies (#13894)
* implement support for usernames comming from reverse proxies

* add configurable auth header

* Move implementation to AuthorisationBase class

* refactored default value handling

* fixed external user check
2022-05-24 07:48:19 -05:00
nox-x
a998e9e2ee fix: inconsistency in ldap starttls config parameter (#13987) 2022-05-20 00:17:44 +02:00
micko
c3cf527301 Added: auth_ldap_skip_group_check when ldap_compare is not supported (#13926)
* Adding an option (auth_ldap_skip_group_check) to bypass ldap_compare if the server does not support the option

* add auth_ldap_skip_group_check to config_definitions.json

* update resources/lang/en/settings.php

* add missing comma

* rename auth_ldap_skip_group_check to auth_ldap_require_groupmembership and change logic

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-05-06 16:48:01 -05:00
Philipp Fromme
4a98dc69e3 Add LDAP bind and userlist filter support to ldap-authorization (#13788)
* Add userlist filter to ldap-authorization

* Add LDAP bind user to ldap-authorization

* Type hint getFullDn parameter of ldap-authorization

* docs: add missing options of ldap

* docs: add available options of ldap-authorization
2022-04-22 01:28:29 -05:00
Jellyfrog
09929bd686 Implement OAuth and SAML2 support (#13764)
* Implement OAuth and SAML2 support via Socialite

* Add socialite docs

* fixes

* Additional information added

* wip

* 22.3.0 targeted version

* Allow mysql auth as long as there is a password saved

Co-authored-by: laf <gh+n@laf.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-02-20 22:05:51 +01:00
Tony Murray
50cf1a49f1 Kick other sessions when changing password (#13194)
* Kick other session when changing password
Invalidate other sessions when a user password gets changed

* Don't logout admin users when they change passwords.
Cleanup phpstan exceptions

* only restore user if needed

* comment odd behavior

* $current_user typehint
2021-10-21 17:25:38 -05:00
Nash Kaminski
cb56ae5f46 Improvements to SSO Authorization and logout handling (#13311)
* Improvements to SSO Authorization and logout handling

Changes:
* Adds support for a default access level in the SSO authorization
  plugin when group mapping is enabled.
* Restore functionality of the auth_logout_handler configuration option,
  allowing the user to be redirected to a configured URL to complete
  logout from an external IdP.
* Documentation and test coverage updates

* Set sso.static_level to 0 in AuthSSOTest:testGroupParsing()

* Simplify implementation to use default values in Config::get()
2021-10-02 08:02:42 -05:00
Jellyfrog
0680dc8cd5 Use the same error message for different kind of authentiction errors (#13306)
This prevents usernames to be guess as the application confirms or denies their existence.
2021-10-01 14:12:48 +02:00
Jellyfrog
258505ed44 Apply fixes from StyleCI (#13224) 2021-09-10 20:09:53 +02:00
Jellyfrog
26b95c0ccc Apply fixes from StyleCI (#13208) 2021-09-08 23:35:56 +02:00
Jellyfrog
232b9a414c Apply fixes from StyleCI (#13201) 2021-09-07 20:33:54 -05:00
Patrik Forsberg
3cf039764e add number sign to to special character handling in ActiveDirectoryAuthorizer $group_dn (#12943) 2021-06-11 14:58:34 +02:00
Tony Murray
61c89794e4 Remove debug globals (#12811)
* Remove $debug global
and $vdebug global
makes these variables more accessible and protects from collisions.

* the on boot set sends application as the first parameter, just handle that

* Relocate other debug related functions

* Log debug to stdout

* Wrong output

* remove stupid constants

* Fix lint and style issues
2021-04-29 22:42:18 -05:00
Jellyfrog
edb36fd69d More cleanups (#12715)
* PHPDoc

* Replace Auth > Illuminate\Support\Facades\Auth

* Return inside when()

* use str_replace correct

* Misc

* dead code

* use int $port

* styleci
2021-04-08 08:14:49 -05:00
Jellyfrog
777b78cca1 Cleanup (#12695)
* Use true/false to return booleans

* Misc fixes
2021-04-01 17:35:18 +02:00
Jellyfrog
a0a3a1c8d8 PHPDoc fixes (#12693) 2021-04-01 00:35:19 +02:00
Jellyfrog
dc160c6813 PHPDoc fixes (#12687) 2021-03-31 17:18:43 +02:00
Jellyfrog
20b4215204 Swich links to https (#12511)
* Switch librenms links to https

* Convert librenms links in comments

* Switch gnu.org url to https

* switch php urls to https
2021-02-09 00:29:04 +01:00
Patrik Forsberg
89cbf152f6 Fixes issues with binding and authenticating users in nested groups (#12398)
* Fixes issues with binding and authenticating users in nested groups

Signed-off-by: Patrik Forsberg <git@paddyonline.net>

* re-instated the user group check for nested groups after identifying the real issue in ActiveDirectoryAuthorizer.php
added fix for special characters in group checker in ActiveDirectoryAuthorizer.php

Signed-off-by: Patrik Forsberg <git@paddyonline.net>

* fix for styleci/pr issues in ActiveDirectoryAuthorizer.php

Signed-off-by: Patrik Forsberg <git@paddyonline.net>

* further fixes for styleci/pr in ActiveDirectoryAuthorizer.php

Signed-off-by: Patrik Forsberg <git@paddyonline.net>

* fixed return value from userExists in ActiveDirectoryAuthorizer to return boolean instead of integer

Signed-off-by: Patrik Forsberg <git@paddyonline.net>

* fix for styleci/pr issues

Signed-off-by: Patrik Forsberg <git@paddyonline.net>

* cleanup

* don't use boolval on int...

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-02-02 00:13:48 -06:00
Tony Murray
fb600b4ca9 ldap auth handle no search more gracefully (#12424) 2021-01-25 23:07:51 -06:00
Jellyfrog
780e74b0e1 Remove legacy password algoritms and move to Laravel standard. (#12252) 2020-10-23 09:56:17 -05:00
Jellyfrog
29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog
0d56bbd946 Apply fixes from StyleCI (#12123) 2020-09-21 15:51:53 +02:00
Jellyfrog
77c531527c Apply fixes from StyleCI (#12117)
* Apply fixes from StyleCI

* Disable style check
2020-09-21 14:54:51 +02:00