-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design authentication and authorization #15
Comments
We need to be very clear and consistent using the 'labels' we create for roles. We should avoid using 'a user' references if we have defined roles. |
I question if we can actually specify a 'TRE Administrator' role, and if access to a workspace can be managed across organisations? It sounds like these are outside of our scope. I think our environment plugs in to the existing AAD, and there will typically be standard operating procedures and self-service tools in place to manage this. |
@iankelly-github , Yep, we will require an existing Azure AD and at this point we envision that cross organizational use will rely on AAD guest/b2b features where a researcher from another org needs to be invited to the AAD of the org owning the AzTRE instance. We are not planning to build any "user management" type of features at this moment. |
@christoferlof @Lybecker @askew based on #158 , putting some thoughts down. Role Definitions
Permissions
Resource assignment
For Azure AD in the initial iteration we use, claim = It's then down to the UI implementation (or could do within TF) to add the appropriate values when creating a workspace. Then if wanted to add another id provider down the line it shouldn't be too difficult. |
As noted previously, for roles/groups from Idp we have 2 options with Azure AD:
The immediate challenge with requesting ad groups is the potential number of groups a user can be a member of. There's a limit and AD will not create tokens containing > 200 groups. In those cases, an |
App Roles:
AD Groups:
|
@Lybecker agree, the demo I use uses app roles, also worth noting, Azure AD can be configured to only returned groups associated with the roles reducing the group count. I've not tested to see at what point need to query the userinfo endpoint for groups not returned in the token. Only the people needing to do the group assignments needs a premium license, so don't see it as a blocker. |
I've modified the ADDA code to use standard Azure AD rather than Azure AD B2C and that allows it to use an App Role for the global role. With the B2C solution we needed a User Admin role, but with normal AAD we now only need a single Resource Admin role. I've also added a Member role as you might want to restrict access to the TRE rather then allow the entire domain. These a are really simple to handle, you just get the names of the app roles in a For all other permissions on specific resources (workspaces and services) the app needs to manages these with resource assignments in the database. |
We will use a multi-app-registration approach with Azure AD, giving the flexibility of enforcing roles and features such as conditional access on a per workspace basis. Clients will have to handle multiple tokens for TRE vs Workspace operations Issue #236 to describe this in more detail. |
High level requirements
workspace owner
of the workspace or aresearcher
of the workspace.TRE administrator
to manage shared services and other aspects that spans workspaces.What we're not doing
The text was updated successfully, but these errors were encountered: