Commit Graph
59 Commits
Author SHA1 Message Date
linoman 6fdcc6ff18 Password Policy: Add validation labels to Update Password screen (#84052)
* add validation labels to update the password screen

* address rendering tests

* update changePassword for profile screen
2024-03-07 16:01:17 +01:00
linoman 8e827afb8c Password Policy: Validate strong password upon update (#83959)
* add drawer for auth settings

* add StrongPasswordField component

* Add style to different behaviours

* update style for component

* add componenet to ChangePasswordForm

* pass the event handlers to the child component

* add style for label container

* expose strong password policy config option to front end

* enforce password validation with config option
2024-03-07 01:56:48 -06:00
linoman 7bc8b27c33 Update README.md (#84011) 2024-03-07 01:54:53 -06:00
linoman 6287e1f8ed Auth: Auth Drawer (#83910)
* add drawer for auth settings

* add auth drawer component

* include AuthDrawer component in auth providers page

* protect the feature as enterprise only

* add unit test
2024-03-06 17:27:55 +01:00
linoman 67c062acc7 Adjust HD validation default value (#83818) 2024-03-04 12:45:07 +01:00
linomanandChristopher Moyer 824c26cd5e Password Policy: add documentation (#83208)
* add documentation

* Update docs/sources/setup-grafana/configure-security/configure-authentication/grafana/index.md

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2024-03-01 10:56:26 +01:00
linomanandJo 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
linoman a7fbe3c6dc Password Policy: Update frontend facing messages (#83227)
* update tests

* update error messages
2024-02-27 17:34:43 +01:00
linoman 7e8b679237 OAuth: Improve domain validation (#83110)
* enforce hd claim validation

* add tests
2024-02-21 15:40:18 +01:00
linomanandKarl Persson ac84069071 Password policy (#82268)
* add password service interface

* add password service implementation

* add tests for password service

* add password service wiring

* add feature toggle

* Rework from service interface to static function

* Replace previous password validations

* Add codeowners to password service

* add error logs

* update config files


---------

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2024-02-16 04:58:05 -06:00
linomanandGabriel MABILLE 824e0f9ce8 Plugins: Display plugin permissions required (#78355)
* Add definition of external service registration

* Add style and tables for permissions needed

* Add external service registration to local without counterpart

* Add feature toggle check

* Add feature flag check in the backend as well

* Add the disclaimer for permissions

---------

Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
2023-12-20 16:29:13 +01:00
408dab8c57 IAM: Protect managed service account frontend details page (#77839)
* Add `isManaged` property to frontend model

* Remove enabled and token buttons for managed SA

* Replace trash icon for lock icon for managed SA

* Block the role picker for managed SA

* Filter SA list usiong the managed filter

* Rename external for managed

* Add only managed filter

* Toggle the enable buttons for managed sa

* Disable add token and delete token buttons

* Remove the edit name button

* Disable the Role picker for managed sa

* Hide the permissions section

* Add managed by row

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-11-14 17:52:48 +01:00
linomanandGabriel MABILLE 5bc4f56c79 IAM: Protect external service accounts frontend list page (#77834)
* Add `isExternal` property to frontend model

* Remove enabled and token buttons for external SA

* Replace trash icon for lock icon for external SA

* Block the role picker for external SA

* Filter SA list using the external filter

* Add only external filter at backend

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-11-09 17:45:46 +01:00
linomanandMisi c50ada3a1a auth: wire service account proxy (#77215)
* Add interface verification compliance

* rework service account api to a provider

* wire the service accounts api

* rewire the implementation of sa srv for the proxy

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2023-11-03 10:27:43 +01:00
linomanandGabriel MABILLE dff7403b29 auth: implement feature flag for service account proxy (#77129)
* add FlagExternalServiceAccounts to proxy service

* add FlagExternalServiceAccounts value to tests

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-10-25 16:44:05 +02:00
linoman 1bc81b7bd1 auth: migrate api interface implementation (#77040)
* expand serviceaccount service interface

* implemet FakeServiceAccountService

* Replace SA service interface from api

* merge sa proxy tests with new fake service

* implement DeleteServiceAccountToken

* add test for DeleteServiceAccountToken
2023-10-25 12:40:30 +02:00
359d84799e auth: add serviceaccount proxy (#76815)
* Add proxy service template

* Replace SA srv with proxy for external SA srv

* Move service account prefix to a constant

* Prevent deletion from external service account

* Make SA validation a resusable function

* Add protection for creating service accounts

* Add protection when updating service accounts

* Add IsExternal field for service account

* Protect ext service account token generation

* Add verbose errors for form name or sa name

* add tests

* Add logs

* Adjusts tests

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-10-23 14:09:42 +02:00
linoman e06f7251d7 Add prefix for external service accounts (#76794)
* Add prefix for external service accounts
2023-10-19 13:06:09 +02:00
linomanandChristopher Moyer 5aacdd9f49 Docs: No basic role documentation updates (#75110)
* Add more scenarios to the documentation

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-09-20 15:23:16 +02:00
linoman c4bc90ff5b Chore: Add const variables for No Basic Role (#74868)
* Add const variables for No Basic Role
2023-09-14 11:42:07 +02:00
linoman 0e8f19ca6a Auth: Reduce restriction with non-user accounts (#74397)
* Reduce restrictions with non-user accounts

* Revert restrictions on anonymous accounts

* Change log level from warning to debug

* Change log messages to upper case
2023-09-06 13:37:54 +02:00
linoman 13f4382214 Auth: Implement requester interface in access control module (#74289)
* Implement requester interface in the access control module
2023-09-06 11:16:10 +02:00
linoman 1b8e9b51b2 Replace signed in user for identity.requester (#74048)
* Make identity.Requester available at Context

* Clean pkg/services/guardian/guardian.go

* Clean guardian provider and guardian AC

* Clean pkg/api/team.go

* Clean ctxhandler, datasources, plugin and live

* Clean dashboards and guardian

* Implement NewUserDisplayDTOFromRequester

* Change status code numbers for http constants

* Upgrade signature of ngalert services

* log parsing errors instead of throwing error
2023-08-30 16:51:18 +02:00
linoman 9b9c9e83dc Replace signed in user for identity.requester (#73750)
* Make identity.Requester available at Context

* Clean pkg/services/guardian/guardian.go

* Clean guardian provider and guardian AC

* Clean pkg/api/team.go

* Clean ctxhandler, datasources, plugin and live

* Question: what to do with the UserDisplayDTO?

* Clean dashboards and guardian

* Remove identity.Requester from ReqContext

* Implement NewUserDisplayDTOFromRequester

* Fix tests

* Change status code numbers for http constants

* Upgrade signature of ngalert services

* log parsing errors instead of throwing error

* Fix tests and add logs

* linting
2023-08-28 12:04:36 -05:00
linoman 2e050f25bf Auth: Allow to auto-assign empty role (#73326)
Allow to auto-assign empty role
2023-08-17 18:32:58 +02:00
linoman 1c7f89c41b Auth: Add empty role usage metrics for service and user accounts (#73108)
* Add tests for service accounts metrics usage

* Add service account store implementation

* Add service account service implementation

* Add tests for org metrics usage

* Add org implementation

* Add service implementation
2023-08-16 10:56:47 +02:00
linoman 01721d910e Auth: Add documentation references to No Basic role (#72880)
* Update the documentation

* Add references to the documentation

* Replace X with YES in roles table
2023-08-04 16:29:24 +02:00
linoman 64ed77ddce Auth: Add no role frontend feature flag (#72823)
* Add 'noBasicRole' feature flag

* Hide role options and tooltip with feature flag

* Add feature flag to registry
2023-08-04 11:08:14 +02:00
linoman f6e836302b Auth: Add No basic role UI (#72561)
* Render new No Basic Role

* Add Tooltip to dropdown menu
2023-08-03 16:02:14 +03:00
linoman 0ffa72877e Chore: Bump keycloak version (#72386)
* Bump keycloak version

* Remove troubleshooting

* Remove script for M1 machines
2023-07-27 09:56:31 +02:00
linoman 5ce3a7c6db Doc's: Add google support for team sync (#72316)
Add google support for team sync
2023-07-26 09:21:16 +02:00
63346674e6 AuthNZ documentation revamp (#62581)
* init for base branch

* Add authnz code ownership

* Fix docs ownsership path

* docs revamp: Plan IAM strategy (#62582)

* Add planning page

* Add teams definition

* Expand on planning and benefits

* Add reasons to organize users

* Add description of User Teams

* Add Grafana organizations info

* Add a section between Teams and Orgs

* Add a section for external systems

* planning your role strategy

* Add service account documentation

* Add Auth Setup to index sidebar

* Address PR comments

* Add planning for API keys

* Add team and org sync

* Docs: role and permission section for planning docs (#64702)

* docs revamp: Service accounts (#63710)

* docs revamp: Add new documentation to sidebar index (#66104)

* docs revamp: synchronisation planning (#66409)

* Docs: api keys (#64803)

* Remove personal access tokens section

* Move auth integration planning page

* Remove auth folder

* Restore codeowners file

* reword and update info on user management and grouping

* Rename iam strategy page

* extend the section on teams and organizations

* Rename planning your IAM section

* Move to administration section

* Add definition for role sync

* Relocate planning

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-07-19 18:53:49 +02:00
130f142c7f Rework Okta OAuth2 (#71349)
* Rework Okta OAuth2

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2023-07-18 13:28:35 +02:00
linoman 340f55fa15 Remove duplicated entry in properties table (#71388) 2023-07-11 21:48:40 +02:00
linomanandptz-xyt 676e5de3d2 Reword JWT config claim (#69356)
Co-authored-by: ptz-xyt <104002657+ptz-xyt@users.noreply.github.com>
2023-06-01 11:15:27 +02:00
linoman 15e34505e2 Render analytics identifiers (#67860)
* Append analytics identifier upon authenticate session

* Add id and module upon syncing user to identity

* Add authModule & id to `IdentityFromSignedInUser`

* Allow req calls in test to use basic auth

* Add `intercom_secret` to grafana config in tests

* Add test for analytics render in html view
2023-05-05 17:17:18 +02:00
linoman 4e10118c3a Add verbose settings (#65469)
* Add `settings.CurrentVerbose` function

* Add function to retrieve verbose settings

* Add `/settings-verbose` endpoint

* Restrict the verbose source types
2023-04-20 04:43:28 -04:00
4027254b87 Auth: Add SigningKeys Service (#64343)
* Add key service

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

* Wire the service

* Rename Service

* Implement GetJWKS

* Slipt interface and implementation

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

* Change implementation, add tests

* Align to the expected package hierarchy

* Update CODEOWNERS

* Align names and fix wire.go

* Update pkg/services/signingkeys/signingkeysimpl/service.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Update pkg/services/signingkeys/signingkeysimpl/service_test.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Update pkg/services/signingkeys/signingkeysimpl/service_test.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Update pkg/services/signingkeys/signingkeysimpl/service_test.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Add AddPrivateKey method to SigningKeysService

* Align tests to the guidelines

* Add test for GetJWKS() method

* Add comments to the interface

* Add FakeSigningKeysService

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-04-17 11:42:37 +02:00
linoman 3e85c90759 Restructure the org upsert method (#64763) 2023-04-06 16:48:31 +02:00
linoman b3243486e8 Fix empty value for expiry date (#64893) 2023-03-20 13:32:20 +01:00
linomanandJo 33de1926fc SupportBundle: Add count for each support bundle created (#63125)
* Export `StatsCount` function

* Add new statKV each time a bundle is created

* Export bundle count

---------

Co-authored-by: Jo <joao.guerreiro@grafana.com>
2023-02-09 14:54:21 +01:00
linoman bc67edbff8 Fix RolePicker component offset when it has too many roles (#62857)
Fix role picker offset with too many roles
2023-02-08 12:09:27 +01:00
linoman 56c2755b3b Fix JWT claims request (#61650)
* Fix JWT claims request

* Add test scenarios for missing config options
2023-01-19 16:03:09 +01:00
4d095547f8 Auth: Implement skip org role sync for jwt (#61647)
* Add new config option

* Add frontend control

* Condition new auth broker with config option

* Condition old auth broker with config option

Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-01-18 13:59:50 +01:00
linoman 8ba5f59fb7 Promote openldap-mac (#61332)
* Replace `openldap` with `openldap-mac`

* Rename all references for `openldap-mac`

* Rename prepopulated users with first names
2023-01-12 10:20:01 +01:00
linoman 7582e77d25 Add reference to Google OAuth docs (#61048) 2023-01-05 20:04:04 +01:00
linomanandAlexander Zobnin 25d7c591cf Auth: Add plugin roles to RolePicker (#59667)
* Add `RoleMenuGroupsSection` component

* Add plugin roles data structures

* Use `RoleMenuGroupsSection` for rendering roles

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2022-12-16 14:41:09 +01:00
6cc56311d9 Auth: Display id Provider label in orgs/users view (#58033)
* Add frontend test

* Add frontend label component

* Adjust backend tests

* Retrieve auth IDP labels for users at org/users.

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Kalle <kalleep@users.noreply.github.com>
Co-authored-by: Jo <Jguer@users.noreply.github.com>
2022-11-29 15:20:28 +01:00
linomanandGabriel MABILLE f8f61c1a69 Auth: Add expiry date for service accounts access tokens (#58885)
* Add new configuration option for SA tokens

* Add new expiry date option to frontend components

* Add backend validation


Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-11-22 10:08:40 +01:00
linoman 0324e9c60e Fix paths for auth/ build and volume paths (#54828) 2022-09-07 10:53:58 +02:00
linoman c915cb2d5c Update auth/jwt_proxy and auth/oauth reference (#54781) 2022-09-06 15:46:01 +02:00
linoman 638fb5dc6d Fix docker compose for openldap and oauth (#54745)
* Fix reference for `openldap` block

* Fix volume reference for `oauth` block
2022-09-06 14:22:03 +02:00
linomanandIeva d2bb72fb3c Login: Remove single admin team restriction (#54534)
* Remove single member team restriction

* Add label when permissions list is empty

* Fix unit tests

* Add co-author.

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-09-02 18:16:39 +02:00
linoman 3f0beee362 Update README build references (#54394) 2022-08-29 16:36:06 +02:00
linoman d2547bb832 Chore: Group auth docker blocks (#54274)
* Move auth docker images to parent folder

* Add README file for auth parent folder

* Add grafana-authnz-team as code owner

* Update `devenv` docs
2022-08-29 08:36:56 +02:00
linoman 52904151f1 Update open ldap for macos (#53819)
* Add new OpenLDAP Docker block for macOS

* Add preconfigured users, groups and modules

* Add README
2022-08-18 12:31:19 +02:00
linoman 9f749eead7 Fix cloak typo (#53474) 2022-08-09 17:38:49 +02:00
linoman ed5dac7a75 Fix groups and useres indentation (#53414) 2022-08-09 08:05:15 +02:00
linoman 82d35b7d72 Change LDAP configuration to secure connections (#53404) 2022-08-08 17:27:22 +02:00