Commit Graph

77 Commits

Author SHA1 Message Date
Alexander Zobnin
87d86e81ce
Zanzana: Evaluate permissions alongside with RBAC engine (#90064)
* Zanzana: Evaluate permissions if feature flag enabled

* Fix tests

* adjust logs

* fix spelling

* remove unused

* only evaluate implemented resources

* refactor
2024-07-05 11:31:23 +02:00
Misi
b174c1310a
Auth: Add organization mapping configuration to the UI (#90003)
* Add org_mapping and org_attribute_path to the UI

* Add validators, allow setting org mapping to only Grafana Admins

* comment

* Address feedback, improve validation, fix FE test, lint
2024-07-04 16:00:56 +02:00
Jeff Levin
cfe8317d45
Add auth spans and remove deduplication code for scopes (#89804)
Adds more spans for timing in accesscontrol and remove permission deduplicating code after benchmarking

---------

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-07-02 22:08:57 -08:00
Mihai Doarna
4306d52353
SSO: Encrypt and decrypt secrets for LDAP settings (#89470)
encrypt/decrypt secrets for LDAP
2024-07-02 12:37:13 +03:00
linoman
ccb22e5b24
SAML: graph api follow up (#89389)
* add new graph api variables to saml strategy

* add  config variable
2024-06-25 12:19:47 +02:00
Mihai Doarna
d074cc7892
Auth: Implement reload function for LDAP (#89267)
* keep config in a separate struct in LDAP

* implement reload function for LDAP

* remove param from sso service constructor

* update unit tests

* add feature flag

* remove nil params

* address feedback

* add unit test for disabled config
2024-06-18 14:31:27 +03:00
Dave Henderson
6262c56132
chore(perf): Pre-allocate where possible (enable prealloc linter) (#88952)
* chore(perf): Pre-allocate where possible (enable prealloc linter)

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* fix TestAlertManagers_buildRedactedAMs

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* prealloc a slice that appeared after rebase

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

---------

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2024-06-14 14:16:36 -04:00
Ryan McKinley
99d8025829
Chore: Move identity and errutil to apimachinery module (#89116) 2024-06-13 07:11:35 +03:00
Mihai Doarna
3d40caf819
SSO: Add LDAP fallback strategy for SSO settings service (#88905)
* add root and client certificate value fields for LDAP

* update error messages for connection error

* add LDAP fallback strategy for SSO settings service

* fix params for sso service provider

* fix params for sso service provider

* sort imports

* sort imports

* replace json.Number with int64 in config map

* remove type assertions
2024-06-11 10:22:53 +03:00
Mihai Doarna
25c57f21cd
SSO: Add the new role value fields for SSO SAML strategy (#88561)
added the new role value fields for SSO SAML strategy
2024-06-04 15:47:27 +03:00
Mihai Doarna
e1aedb65b3
SSO: Add oldSettings param to the Validate function from SSO settings (#88245)
* add oldSettings param to the Validate function from SSO settings

* update unit tests adding the missing param to Validate
2024-05-31 11:08:52 +03:00
Mihai Doarna
12e4a94d63
SSO: Use removeSecrets() instead of setting.RedactedValue() (#88180)
* use removeSecrets() instead of setting.RedactedValue()

* replace with redacted value only if secret is not empty
2024-05-28 17:03:54 +03:00
Mathieu Parent
b8c9ae0eb7
OIDC: Support Generic OAuth org to role mappings (#87394)
* Social: link to OrgRoleMapper

* OIDC: support Generic Oauth org to role mappings

Fixes: #73448
Signed-off-by: Mathieu Parent <math.parent@gmail.com>

* Handle when getAllOrgs fails in the org_role_mapper

* Add more tests

* OIDC: ensure orgs are evaluated from API when not from token

Signed-off-by: Mathieu Parent <math.parent@gmail.com>

* OIDC: ensure AutoAssignOrg is applied with OrgMapping without RoleAttributeStrict

Signed-off-by: Mathieu Parent <math.parent@gmail.com>

* Extend docs

* Fix test, lint

---------

Signed-off-by: Mathieu Parent <math.parent@gmail.com>
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
2024-05-23 09:55:45 +02:00
Ieva
167151b211
Chore: Remove use of deprecated method in AC code (#87541)
* switch from using cfg to using featuremgmt for checking a feature toggle in AC code

* merge test fixes
2024-05-10 11:56:52 +01:00
Mihai Doarna
76d94b35c9
SSO: fix settings merge for SAML fields (#86970)
* fix sso settings merge for saml fields

* change func name
2024-04-30 15:10:27 +03:00
Mihai Doarna
4bf9405ce4
SSO: add SSO settings to secrets migrator (#86913)
* add sso settings to secrets migrator

* unify SSO settings in all log lines
2024-04-25 18:30:23 +03:00
Kristin Laemmert
9553923eb7
Chore: Fix failing ssosettingimpl test (#86792)
Chore: Fix failing ssosetting test
2024-04-23 11:36:34 -04:00
Mihai Doarna
bf15329492
SSO: run the validation on upsert with all secrets in settings (#86579)
* run the validation on upsert with all secrets in settings

* rename social to reloadable
2024-04-23 16:50:16 +03:00
Mihai Doarna
4d9e35ba57
SSO: add configurableProviders list to SSO service (#86622)
* add configurableProviders list to sso service

* address feedback
2024-04-23 10:00:43 +03:00
Mihai Doarna
57848bbe23
Auth: encrypt/decrypt SAML secrets in SSO settings service (#85253)
encrypt/decrypt saml secrets in sso settings service
2024-04-18 15:16:59 +03:00
Dave Henderson
5687243d0b
Feature Flags: use FeatureToggles interface where possible (#85131)
* Feature Flags: use FeatureToggles interface where possible

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* Replace TestFeatureToggles with existing WithFeatures

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

---------

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2024-04-04 12:22:31 -04:00
Serge Zaitsev
faa1244518
Chore: Replace sqlstore with db interface (#85366)
* replace sqlstore with db interface in a few packages

* remove from stats

* remove sqlstore in admin test

* remove sqlstore from api plugin tests

* fix another createUser

* remove sqlstore in publicdashboards

* remove sqlstore from orgs

* clean up orguser test

* more clean up in sso

* clean up service accounts

* further cleanup

* more cleanup in accesscontrol

* last cleanup in accesscontrol

* clean up teams

* more removals

* split cfg from db in testenv

* few remaining fixes

* fix test with bus

* pass cfg for testing inside db as an option

* set query retries when no opts provided

* revert golden test data

* rebase and rollback
2024-04-04 15:04:47 +02:00
Mihai Doarna
fad6dc4db1
SSO: fix reloading settings when a provider contains empty settings (#85102)
* fix reloading settings when a provider contains empty settings

* do not increment reloadFailures if settings are empty
2024-03-25 19:12:19 +02:00
linoman
fc205db466
samlsettings: api integration (#84300)
* add strategy and tests

* use settings provider service and remove multiple providers strategy

* Move SAML strategy to ssosettings service

* Update codeowners file

* reload from settings provider

* add saml as configurable provider

* Add new SAML strategy

* rename old saml settings interface

* update saml string references

* use OSS license

* validate saml provider depends on license for List

* add tests for list rendering including saml

* change the licensing validation to service init

* replace service struct for provider
2024-03-25 10:54:45 +01:00
Mihai Doarna
2acd48d1c2
SSO: fix mergeSettings() in case the DB contains empty URLs (#84290)
* fix mergeSettings() in case the db contains empty strings

* use correct github urls in test

* overwrite only urls

* update comment for mergeSettings()
2024-03-13 10:31:17 +02:00
linoman
66fa310fba
SAMLSettings: implement settings strategy (#84191)
* add strategy and tests

* use settings provider service and remove multiple providers strategy

* update codeowners file

* reload from settings provider
2024-03-13 09:14:42 +01:00
Misi
07e26226b7
Auth: Add all settings to Azure AD SSO config UI (#83618)
* Add all settings to AzureAD UI

* prettify

* Fixes

* Load extra keys with type assertion
2024-03-04 11:55:59 +01:00
linoman
b02ae375ba
Chore: Query oauth info from a new instance (#83229)
* query OAuth info from a new instance

* add `hd` validation flag

* add `disable_hd_validation` to settings map

* update documentation

---------

Co-authored-by: Jo <joao.guerreiro@grafana.com>
2024-02-29 16:48:32 +01:00
Misi
3b7e7483c8
Auth: Align loading the legacy auth.grafananet section to the current behaviour in OAuthStrategy (#83479)
* Align oauth_strategy to the current behaviour

* lint

* Address feedback
2024-02-28 13:45:59 +01:00
Misi
9709ac8b84
Auth: Revert provider list change (#83435)
* Load auth.grafananet as the last provider

* skip test
2024-02-26 20:59:49 +01:00
Misi
617adb137c
Auth: OAuth strategy load extra fields separately (#83408)
Load extra fields separately
2024-02-26 15:33:29 +01:00
Misi
12b1170631
Auth: Validation fixes for SSO Settings (#82252)
* Validation fixes

* Add URL validations + tests

* Add ApiUrl validation

* Refactor validators

* lint

* Clean up

* Improvements
2024-02-14 16:06:52 +01:00
Dan Cech
790e1feb93
Chore: Update test database initialization (#81673)
* streamline initialization of test databases, support on-disk sqlite test db

* clean up test databases

* introduce testsuite helper

* use testsuite everywhere we use a test db

* update documentation

* improve error handling

* disable entity integration test until we can figure out locking error
2024-02-09 09:35:39 -05:00
Misi
b1dc505a2b
Auth: Validate admin assignment in SSO Settings (#82233)
* Add validation for allowAssignGrafanaAdmin

* Update default values

* Do not render hidden fields

* Change error message

* Improve tests

---------

Co-authored-by: Clarity-89 <homes89@ukr.net>
2024-02-09 13:10:23 +01:00
Diego Augusto Molina
a6342fa576
Chore: Fix data race within tests and enable a few parallel tests in ssosettingsimpl (#81837)
* Chore: Fix data race within tests of SSO Setting implementation

* Chore: fix data race within tests to allow parallel testing

* Chore: rollback changes runtime code to test a different approach

* Chore: Fix data race in SSO Setting implementation Upsert method

* Chore: fix typo in comment
2024-02-05 16:41:38 -03:00
Mihai Doarna
395a06ab86
Auth: fix swagger responses for the SSO settings API (#81639)
fix swagger responses for the sso settings API
2024-01-31 18:06:22 +02:00
Misi
bcc2409564
Auth: Add validation to Generic OAuth API and UI (#81345)
* wip

* Update validation

* Chore: Remove InputControl usage

* Fixes, validation

* Remove empty option

* Validation changes

* Add tests, rename

* lint

---------

Co-authored-by: Clarity-89 <homes89@ukr.net>
2024-01-29 12:04:22 +01:00
Misi
7e96a2be56
Auth: Reload OAuth provider after deletion of the current settings (#81374)
* Reload after deletion of the current settings

* Add grafana_ssosettings_setting_reload_failure_total counter

* Returns successfully if data reload failed
2024-01-29 12:02:04 +01:00
Misi
c47b55ae10
Auth: Add SSO settings usage stats (#81143)
* Add usage stats

* UsageStats test + svc rename

* Fix test
2024-01-24 15:39:50 +01:00
Misi
8246d97587
Auth: Introduce configurable_providers config option for SSO settings (#80911)
* Add SSOSettingsConfigurableProviders config option

* Add check to Delete and ListWithRedactedSecrets

* Add check to GET, small improvements
2024-01-23 15:48:06 +01:00
Misi
20bb0a3ab1
AuthN: Support reloading SSO config after the sso settings have changed (#80734)
* Add AuthNSvc reload handling

* Working, need to add test

* Remove commented out code

* Add Reload implementation to connectors

* Align and add tests, refactor

* Add more tests, linting

* Add extra checks + tests to oauth client

* Clean up based on reviews

* Move config instantiation into newSocialBase

* Use specific error
2024-01-22 14:54:48 +01:00
colin-stuart
e241188f00
Auth: Implement the SSO Settings List endpoint (#80769)
* add list endpoint & initial tests

* add tests and ETag

* format service_test.go

* add list swagger param, generate openAPI, remove ETag, use RedactedPassword

* correct swagger param name

* Align tests to latest changes

* use setting.RedactedValue()

* add string assertion

* lint & require no error on res.Body.Close()

* add custom response type

---------

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
2024-01-19 14:39:09 -05:00
Mihai Doarna
b8cf8ec8d7
Auth: fix swagger response for get SSO settings endpoint (#80817)
fix swagger response for get SSO settings endpoint
2024-01-18 18:27:44 +02:00
Misi
da6926f6f7
Auth: SSOSettings handle secret update (#80591)
* first touches

* Merge missing SSO settings to support Advanced Auth pages

* fix

* Update secrets correctly

* Add test for upsert with redactedsecret

* Verify decryption in the List tests
2024-01-17 15:55:55 +02:00
Misi
c196bde2e0
Auth: Include missing SSO settings from system settings on read paths (#80421)
* first touches

* Merge missing SSO settings to support Advanced Auth pages

* fix
2024-01-12 15:20:50 +01:00
Mihai Doarna
39e4f8ec1b
Auth: configure SSO settings reload interval from the ini file (#80290)
* configure sso reload interval from ini file

* change section name to sso_settings
2024-01-12 10:24:16 +02:00
Mihai Doarna
4bf5c63657
Auth: tidy up the database layer from the SSO Settings Service (#80341)
tidy up the database layer
2024-01-11 14:45:01 +02:00
Mihai Doarna
772e5993b6
Auth: reload SSO settings for HA setups (#80231)
* reload SSO settings for HA setups

* remove check for grafana HA

* add unit tests

* fetch all sso settings with one sql query

* register background service
2024-01-10 16:01:37 +02:00
Ryan McKinley
1caaa56de0
FeatureFlags: Use interface rather than manager (#80000) 2024-01-09 10:38:06 -08:00
Mihai Doarna
3332562900
Auth: use Empty() for sending empty http responses in SSO Settings API (#80200)
use Empty() for sending empty http response
2024-01-09 15:27:55 +02:00