Commit Graph
138 Commits
Author SHA1 Message Date
Jeff Mitchell ce52acb968 Update strutil import 2021-07-14 17:37:40 -07:00
Jeff Mitchell 2cbcf9a563 Update usage of shared-secure-libs (#1393) 2021-07-12 21:06:22 -04:00
Jeff Mitchell 4d27b58d2d Add managed groups test (#1289) 2021-06-07 20:35:45 -04:00
Jeff Mitchell b513f21153 Add test for GrantsForUser (#1287)
* Start of test

* Add a test for existing GrantsForUser functionality.

The test has randomization built in to allocate users across groups and
both users and groups across roles. It tracks which users and groups
have been assigned to which roles, then ensures that GrantsForUser
returns the correct set of roles for a given user.

This required modifying the CTE in GrantsForUser to return role_id as
well.

This doesn't test managed groups yet, that will come in a follow-on PR.
2021-06-07 10:19:21 -04:00
Jeff Mitchell 9ecc384007 Add managed group support to role principals (#1270) 2021-06-04 10:44:57 -04:00
Michael Gaffney 094bdcdd2b protobuf: remove unused imports (#1267)
This removes unused imports in the protobuf files which are reported as
warnings by the protoc compiler.
2021-06-02 14:59:36 -04:00
Jeff Mitchell e6af51943d Add read:self and delete:self to auth tokens and add logout command (#1162) 2021-04-23 13:45:08 -04:00
Michael Gaffney 3fe94335d4 Run make fmt 2021-04-23 13:19:28 -04:00
Jeff Mitchell 727d1c7085 Add "no-op" action and use it as default for scope permissions (#1138)
Because of listing visibility, if no actions are assigned to a user for
an individual resource, it's excluded from the list. This is fine and
good. However, when we made a change in 0.2.0 to restrict the
information returned from listing for the anonymous user for scopes and
auth methods, it exposed the fact that because of the way this
visibility works we had to add `read` to scopes by default -- thereby
rather defeating the purpose of restricting what goes back to `u_anon`
requests.

The purpose of "no-op" is to never be used for real actions within the
API, but as something that can be granted to specifically enable
visibility for the targeted user. This makes the controls over list
visibility much more granular.
2021-04-23 10:13:37 -04:00
Jim 3ee651deab fix primary account data returned for users when a passwd auth method is the primary auth method (#1154) 2021-04-21 19:10:54 -04:00
Jim 75108cbc8b Ongoing OIDC: return the primary account info along with the user. (#1145) 2021-04-20 20:33:56 -04:00
Jim 358f5a61fb bump protoc to v3.15.8 (#1147) 2021-04-18 21:34:25 -04:00
Jeff Mitchell be10cc4b42 Update grpc/proto deps (#1136)
* Update grpc/proto deps

* Make gen
2021-04-15 14:11:23 -04:00
Jeff Mitchell c57841fa2e Update wording for user not found to indicate the auth method isn't primary for the scope 2021-04-14 13:27:03 -04:00
dd0f34bc35 Add new OIDC auth method. (#1090)
Co-authored-by: Todd Knight <T.Alan.Knight@gmail.com>
Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com>
2021-04-08 20:54:32 -04:00
Michael Gaffney aafbada3ae Remove calls to t.Helper() from test methods (not helpers) (#1063) 2021-04-02 19:40:51 -04:00
Louis Ruch 93bad3cb83 400 if account already assocaited (#1048) 2021-03-30 13:00:48 -07:00
Jeff Mitchell 3c430678ae Fix test scope errors (#1029)
When using a disabled verifier context we were faking scope information. Due to other recent changes, this was now causing test errors. This adjusts that flow to actually query the DB, fixing tests and making them more like real code.
2021-03-25 03:15:43 -04:00
Jeff Mitchell aa570f4e48 Honor child scope list permissions when recursing (#1016)
Current behavior is that you need list grant on the parent scope when
recursively listing, and this is sufficient. This is good for
administrative workflows but can be unintuitive for resources that only
exist at a project level. This change allows permissions on the child
scope to also be taken into account, so that you can start a recursive
list from a parent scope without direct list support on that scope but
still get back child scopes for which list access is granted.

This also fixes a bug where visibility of a scope for recursive listing
would be based on whether the user had list resources for roles within
that scope instead of for the resource type in question.
2021-03-24 15:33:04 -04:00
Jeff Mitchell fcbf372881 Bump proto/grpc deps (#1017)
* Bump proto/grpc deps

* Back out buf change

* Run make gen
2021-03-20 16:12:01 -04:00
Jeff Mitchell 22462cdd84 Add read:self and cancel:self to sessions; add dev unpriv user (#923)
* Sessions support for read:self and cancel:self permissions. This is automatic with fallback; no API change is needed.

* Strips out values from listing if only self actions are allowed on the resource and the user ID is different. This prevents a default ACL of id=*;type=session;actions=read:self,cancel:self from causing all values to be visible when listing.

* Adds an unprivileged user to development/testing instances. This user has only default permissions plus the ability to authorize sessions in the default target.
2021-02-11 13:14:18 -05:00
Louis Ruch ff1293b983 Don't leak user ids in error messages (#916) 2021-02-05 13:17:13 -08:00
Jeff Mitchell cb3980cb8c Remove list:self from main (#915)
* Remove list:self from main

As per futher discussions, we won't be supporting this, in favor of
simply read:self and cancel:self (since listing now already filters out
items on which you have no permissions).

This doesn't remove list:self entirely from the code base as much of
that will simply be converted to read:self and cancel:self -- that will
be in a later PR. However, with this removed if we want to release we
won't expose an API publicly that isn't going to stick around.
2021-02-05 14:01:03 -05:00
Louis RuchandJeff Mitchell 628a02ad15 Scope role grants (#913)
* Add scope read grant to default roles

* Update CHANGELOG.md

Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
2021-02-05 09:41:48 -08:00
Jeff Mitchell 1afa3a4b6c Disallow an invalid grant format (#914) 2021-02-05 12:39:55 -05:00
Louis Ruch 178d4efa64 ICU-745/Refactor internal/session to new domain errors (#877)
* Refactor internal/sessions to use domain errors
2021-02-03 16:25:56 -08:00
Todd Knight 02cd972043 Create Sessions List Self Action (#888) 2021-02-02 13:37:32 -07:00
Jeff Mitchell 6cd97a4a6e Add support for recursive listing (#885) 2021-01-25 19:37:40 -05:00
Jeff Mitchell 6b58a3317d Add recursive listing to roles (#881)
This also lays the framework for adding recursive listing to the rest of the resources.
2021-01-23 13:39:04 -05:00
Jeff Mitchell ee33a18caa Add scope repo function to recursively list (#879)
A simple function that returns an appropriate set of scopes based on the
incoming scope ID. Includes a test.
2021-01-21 21:03:30 -05:00
Louis Ruch 8151b30ce9 ICU-743/Domain errors internal/kms refactor (#848)
* Domain errors internal/kms refactor

* Update changelog

* Update internal/host error op

* Incorrect error returned in read_writer
2021-01-12 08:50:19 -08:00
Jeff Mitchell 84c617dc49 Run make gen after the gofumpt update 2021-01-08 10:32:02 -05:00
Michael GaffneyandJeff Mitchell 94cb79bbdd See how Boundary would look with gofumpt applied (#853)
* See how Boundary would look with https://github.com/mvdan/gofumpt applied

Results of running `gofumpt -w -s .`

* Update tools file and Makefile for gofumpt

Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
2021-01-07 10:02:32 -05:00
Louis Ruch 70a5899e99 ICU-739/iam domain error refactor (#841)
* Refactor iam errors

* Update db and host doTx error ops

* Changelog
2020-12-23 11:00:00 -08:00
Louis Ruch bfbb179741 ICU-738/Refactor internal/db to domain errors (#815)
* Refactor internal/db to domain errors
2020-12-21 10:07:34 -08:00
Jeff Mitchell 11b821a200 Bump deps (#818) 2020-12-15 14:56:41 -05:00
Jim af6ef1b687 Refactor existing sentinel errors (#774) 2020-11-05 16:54:03 -05:00
Jeff Mitchell 13631064fc Don't create a default role when the scope being created is a project (#658)
* Don't create a default role when the scope being created is a project

* Fix up some more tests
2020-10-13 13:56:21 -04:00
Jeff Mitchell fa700dc002 Add account ID templating (#518)
* Remove default role and create via the same mechanism as other initial resources
2020-10-01 10:51:54 -04:00
Jeff Mitchell 6ddfe407a3 Update allowed formats of ACL strings (#508) 2020-10-01 01:49:20 -04:00
Jim 1e71c55920 deprecate access to underlying *sql.DB via internal/db.DB() (#506) 2020-09-30 18:11:59 -04:00
Jeff Mitchell cefea936c3 Update ACLs to allow type=*. (#504) 2020-09-29 22:55:22 -04:00
Jeff Mitchell a38f40606e Create default roles in scopes to allow authentication and listing scopes/auth methods (#502) 2020-09-29 20:38:16 -04:00
Todd Knight 0eb35f49d5 Correcting a bunch of incorrect documentation for the different API services and resources. (#494) 2020-09-29 13:17:59 -07:00
Jim fde96924af refactor user account repo function names (#476) 2020-09-28 15:39:10 -04:00
Jim acd28e5372 use CTE within transaction to calc SetGroupMembers changes (#454) 2020-09-26 17:46:21 -04:00
Todd Knight 0e5a849402 Adding Add|Set|Remove Accounts on the user resource (#461) 2020-09-25 20:44:55 -07:00
Jim 21ca0b6388 SetAssociatedAccounts, DisassociateAccounts, AssociateAccounts with support for multiple accounts. (#439) 2020-09-25 13:35:32 -04:00
Jeff Mitchell 31fe9292b3 Instantiate default resources (#425) 2020-09-24 03:31:26 -04:00
Todd Knight 2f8d7f0a32 API Errors: Hide and log internal errors (#411) 2020-09-23 08:10:27 -07:00