Commit Graph
29 Commits
Author SHA1 Message Date
colin-stuart 5156177079 SCIM: show error if SCIM-provisioned user attempts login with non-SAML auth module (#115271) 2025-12-12 13:51:37 -06:00
colin-stuart 612a0d1c7f Revert "SCIM: Update UIDs for provisioned users (#113423)" (#113474)
This reverts commit daa28773d6.
2025-11-05 15:49:05 -06:00
colin-stuartandlinoman 00fb2e9537 SCIM: update docs to mention SCIM UI (#110906)
* SCIM: update docs to mention SCIM UI

* simplify

* fix typo

* expand UI section, add UI references to IdP docs

* fix vale warning

* Update docs/sources/setup-grafana/configure-security/configure-scim-provisioning/_index.md

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>

---------

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2025-09-26 09:20:27 -05:00
colin-stuart 1ef27e9749 Auth: Add SCIM settings permission to auth config writer role (#111326)
* Auth: add SCIM settings permission to authentication config writer role

* make update-workspace
2025-09-19 09:55:18 -05:00
colin-stuart 28d1af0aa9 SCIM: Use SCIM logo in SCIM provider card (#110903) 2025-09-10 14:00:13 -05:00
colin-stuart 0f54622db7 SCIM: Add logo (#110621)
* SCIM: add logo

* remove accidentally committed logo
2025-09-05 11:53:30 -05:00
colin-stuart b81395976f Remove SCIM banner (#110315)
* Remove SCIM banner

* yarn i18n-extract
2025-09-02 11:07:05 -05:00
colin-stuart 08afd73c0c SCIM: Add successful SCIM-provisioned user login usage stat (#108273)
* SCIM: add usage stat boolean for successful login

* revert unrelated change

* rename scimSuccessfulLogins

* clean up
2025-07-17 13:43:30 -05:00
colin-stuart ac7a411c53 SCIM: Update allow non-provisioned users dynamic config field (#107912)
SCIM: add dynamic non-provisioned users allowed setting
2025-07-10 09:18:30 -05:00
colin-stuart b6eacc929a Auth: Check SCIM dynamic settings when syncing users (#107487)
* Auth: Check SCIM dynamic settings when syncing users

* remove enterprise package import

* add CODEOWNERS

* lint

* use default namespace & update tests

* add optional dynamic AllowNonProvisionedUsers setting

* update test case with allowNonProvisionedUsers
2025-07-02 15:23:06 -05:00
colin-stuart 34b6d51016 SCIM: Update Provisioned User's Role using SAML Assertion (#106374)
* SCIM: fix provisioned user role assignment from SAML assertion

* revert org_sync_test changes

* clean up tests

* skip user lookup during org sync

* sanitize log output

* only log non-sensitive fields
2025-06-06 10:09:51 -04:00
colin-stuart a5708105df SCIM: validate external UID (#105046)
* SCIM: validate externalUID

* better tests

* add additional test cases

* add externalID as field in fromUserToUserSchema

* fix test case
2025-05-08 13:59:55 -04:00
colin-stuartandVardan Torosyan d05b2862b6 SCIM: update docs with externalId field & correct endpoint (#105026)
* SCIM: update docs with externalId field

* better phrasing

* vale warning fix

* explain where mapping is configured

* clarify assertion_attribute_login

* better phrasing

* even better explanation

* remove confusing step

* remove confusing line

* linter fixes

* improve Integrating with SCIM Provisioning section

* bigger warning about scim/saml unique identifier mismatch

* lint

* vale fixes

* Add Integrating with SCIM Provisioning part

---------

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2025-05-07 09:45:11 -04:00
colin-stuart 7b8b88adad SCIM: Add group sync config option to test infra (#104007)
SCIM: Add group sync flag to test infra
2025-04-14 17:22:36 -04:00
colin-stuart 9ca1d8bca7 Tests: Add delete user mock field to fake auth info service (#102947) 2025-03-27 09:45:31 +01:00
colin-stuart ff10186db7 Docs: Group Attribute Sync feature in private preview (#101822)
* Docs: Group Attribute Sync feature in private preview

* add link & support note

* update GAS API docs
2025-03-07 14:28:26 -05:00
colin-stuart 32624b3251 Tests: skip failing test TestMigrateToSpannerDialect (#101730)
skip failing test TestMigrateToSpannerDialect
2025-03-06 20:47:37 +02:00
colin-stuart da2c382d80 Tests: Add SearchOrgUsersFn to FakeOrgService (#101589)
add SearchOrgUsersFn to FakeOrgService
2025-03-05 09:02:01 -05:00
colin-stuartandMisi 6200361f36 Auth: Add IP address login attempt validation (#98123)
* Auth: Add IP address login attempt validation

* LoginAttempt struct IpAddress field must be camelCase to match db ip_address column

* add setting DisableIPAddressLoginProtection

* lint

* add DisableIPAddressLoginProtection setting to tests

* add request object to authenticate password test

* nit suggestions & rename tests

* add login attempt on failed password authentication

* dont need to reset login attempts if successful

* don't change error message

* revert go.work.sum

* Update pkg/services/authn/clients/password.go

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

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-02-05 20:16:36 +02:00
d58dec7951 Docs: Add docs for Passwordless Authentication Using Magic Links (#96877)
* Docs: Add docs for Passwordless Authentication Using Magic Links

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

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

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

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

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

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

* match Writer's Toolkit style

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-02-05 17:58:14 +00:00
4581a82ac4 Auth: disable passwordless auth if any SAML/OAuth is enabled (#98227)
* Auth: disable passwordless auth if any SAML/OAuth is enabled

* Update pkg/services/authn/authnimpl/registration.go

Co-authored-by: Victor Cinaglia <victor@grafana.com>

* simplify check if any auth providers are enabled

* add accidentally removed break statement, use IsEnabled with empty context to check if PasswordlessMagicLinkAuth enabled

* use IsClientEnabled

* Update pkg/api/frontendsettings.go

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

---------

Co-authored-by: Victor Cinaglia <victor@grafana.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-01-09 11:44:16 -05:00
colin-stuartandMisi f9ac3301d3 Docs: add note that support for Auth0 "audience" feature is not available (#96507)
* add note that support for Auth0 audience feature is not available

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

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

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2024-11-15 11:43:29 -05:00
6abe99efd6 Auth: Passwordless Login Option Using Magic Links (#95436)
* initial passwordless client

* passwordless login page

* Working basic e2e flow

* Add todo comments

* Improve the passwordless login flow

* improved passwordless login, backend for passwordless signup

* add expiration to emails

* update email templates & render username & name fields on signup

* improve email templates

* change login page text while awaiting passwordless code

* fix merge conflicts

* use claims.TypeUser

* add initial passwordless tests

* better error messages

* simplified error name

* remove completed TODOs

* linting & minor test improvements & rename passwordless routes

* more linting fixes

* move code generation to its own func, use locationService to get query params

* fix ampersand in email templates & use passwordless api routes in LoginCtrl

* txt emails more closely match html email copy

* move passwordless auth behind experimental feature toggle

* fix PasswordlessLogin property failing typecheck

* make update-workspace

* user correct placeholder

* Update emails/templates/passwordless_verify_existing_user.txt

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update emails/templates/passwordless_verify_existing_user.mjml

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update emails/templates/passwordless_verify_new_user.txt

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update emails/templates/passwordless_verify_new_user.txt

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update emails/templates/passwordless_verify_new_user.mjml

Co-authored-by: Dan Cech <dcech@grafana.com>

* use &amp; in email templates

* Update emails/templates/passwordless_verify_existing_user.txt

Co-authored-by: Dan Cech <dcech@grafana.com>

* remove IP address validation

* struct for passwordless settings

* revert go.work.sum changes

* mock locationService.getSearch in failing test

---------

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Dan Cech <dcech@grafana.com>
2024-11-14 08:50:55 -05:00
colin-stuart 04d9fa04a7 Auth: Prevent scheduled token rotation jobs with large delay from rolling back to 1 ms (#93242)
Auth: prevent scheduled token rotation jobs with large delay from rolling back to 1 ms
2024-09-12 09:21:30 -04:00
colin-stuart 057c04ed9d IDToken: Add current user's DisplayName to the ID token (#90992)
Set claims.Rest.DisplayName from the IDService
2024-07-31 09:11:37 -04:00
colin-stuartandMisi 6e8e4a8b77 Auth: Add docs for the SSO Settings List endpoint (#80927)
* add docs for SSO Settings List endpoint

* Update docs/sources/developers/http_api/sso-settings.md

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

* Update docs/sources/developers/http_api/sso-settings.md

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

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2024-01-22 12:20:16 -05:00
colin-stuartandMihaly Gyongyosi 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
colin-stuartandMisi 097f3c7e06 Auth: Add docs for the SSO Settings get endpoint (#80240)
* add docs for sso-settings get endpoint

* Update docs/sources/developers/http_api/sso-settings.md

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

* Update docs/sources/developers/http_api/sso-settings.md

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

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2024-01-16 13:27:28 -05:00
062e772bb2 Auth: Implement the SSO Settings GET endpoint (#79144)
* Return data in camelCase from the OAuth fb strategy

* changes

* wip

* Add defaults for oauth fb strategy

* revert other changes

* basic includeDefaults query param implementation

* basic secret removal and etag implementation

* correct imports

* rebase

* move default settings filter to models

* only replace ClientSecret value if set

* first GetForProvider test & use FNV for ETag to avoid Blocklisted import error

* add tests

* add annotation for the openapi spec & generate spec

* remove TODO

* use IsSecret, improve tests, remove DefaultOAuthSettings

* add comment explaining generateFNVETag

* add error handling for generateFNVETag

* run go generate

* Update pkg/services/ssosettings/api/api.go

Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>

* move isSecret to service, create GetForProviderWithRedactedSecrets func

* add unit test for GetForProviderWithRedactedSecrets & remove duplicated code

* regen openapi/swagger

* revert dependency bumps

---------

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
2024-01-08 09:35:14 -05:00