User management in Sigrid

When managing user access to Sigrid we need to consider both Authentication (can you enter?) and Authorization (what can you see?).

Sigrid offers two ways of managing Authentication and one type of Authorization.

This page describes the options and the technical setup.

Authentication mechanisms

1. Using the Sigrid user management module

With this module, a Sigrid administrator can perform all the basic authentication tasks out of the box.

Note

Sigrid administrator tasks

Setup customer side

2. Using Single Sign On (SSO) with an Identity Provider (IdP)

When Sigrid is linked to your organization’s SSO Identity Provider, the user provisioning in Sigrid is done automatically upon login. By default, new users don’t see any systems and analysis results yet. Sigrid supports both SAML or OpenID Connect protocols via a service-provider initiated authentication flow.

Notes

Sigrid administrator tasks

Setup on client side

SAML Configuration

Create an Enterprise application ‘app’ in your IdP with the following details:

Attributes & Claims:

Your user Sigrid expects the long url as SAML attribute name
user email http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
user last name http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
user first name http://schemas.xmlsoap.org/ws/2005/05/identity/claims/given_name

Note: if your IdP requires to set an unique user identifier, please choose emailaddress

Other Settings:

Assign groups of users to your Authentication app.

OpenID Connect Configuration

Create an Enterprise application ‘app’ in your IdP with the following details:

Attributes & Claims:

Claim Description Token Type
email The addressable email for this user, if the user has one ID
family_name Provides the last name, surname, or family name of the user as defined in the user object ID
given_name Provides the first or “given” name of the user, as set on the user object ID

Note: For Azure/Entra ID, please check the box “Turn on the Microsoft Graph email, profile permission (required for claims to appear in token)”

Certificates & Secrets:

Other Settings:

Assign groups of users to your Authentication app.

Info to provide to SIG

Please Provide SIG with the following.

SAML Configuration

The ‘App federation MetadataURL’ of your authentication app. The information will include your app’s identifier, redirectURL etc.

OpenID Connect Configuration

The Application’s client_id, client_secret and the issuer. How the issuer URL looks depends on your IdP.

IdP Issuer URL
Azure/Entra ID https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/authorize
Okta https://<myOktaOrg>.okta.com

SAML Examples

Please see the separate pages for SAML examples.

OIDC Examples

Please see the separate pages for OIDC examples.

Deliverables

SIG will set up Single Sign-On (SSO) for you, providing you with a unique, customer-specific URL for Sigrid. https://customername.sigrid-says.com

Authorization in Sigrid

While Sigrid requires minimal adminstration to gather insights in your software’s quality, there are a number of tasks that must be performed to ensure your organization gets the most out of their Sigrid experience. Most important of which is the management of other user’s access to system details, findings and source code within Sigrid. The following section describes the functions in place to provide this control to users.

Types of users

Sigrid utilizes role-based authorization with three roles assignable to users:

While normal users have the typical rights to access 1 to all systems in the Sigrid portfolio, Administrator and Maintainer users have additional edit capabilities over other users within the portfolio and are considered admin-level users in Sigrid. Only Administrator users have access to the entirety of the systems within their portfolio by default.

Often organizations require a degree of control to prevent improper disclosure of sensitive information between users and teams. In order to achieve this control, Sigrid offers several admin-level roles that can be assigned to normal users, granting them access to new actions within the platform.

Tasks unique to Admin-level users beyond User Management include:

Administrators vs Maintainers

Once portfolios hit a certain size, it can become difficult for a single admin of a large organization to perform user management effectively by themsleves. When faced with multiple systems and multiple development teams, often it is the case a single administrator user is unaware of who exactly should be granted access to which systems. Likewise, having multiple Administrators within a single Sigrid instance is typically not advised as these are permitted to access every system, finding and source code for all systems in the portfolio, which can be a point of concern for organizations that wish to restrict access based on their own internal organizational structure.

In order to mitigate this pain and allow for some delegation of this work, we have introduced a new user type that behaves as a localized administrator to handle administrative tasks for only those systems relevant to their scope of the portfolio. These local administrators, which we refer to as Maintainers, are able to partially take over the tasks of authorizing users access to systems in the portfolio, as well as configuring system-related details that enhance the ability to track quality improvements and/or setting quality goals to achieve.

Maintainer users have the very similar rights as Administrators in performing administrative tasks, but only on the subset of systems the Maintainer has been granted explicit access to by the Administrator. Naturally this means if no system has been made accessible to the Maintainer, this user effectively can not perform any administrative tasks in Sigrid - their ability to perform tasks such as setting of metadata, defining system level objectives, or authorizing users to systems is tied directly to their own authorized access.

Similarly, while Maintainers enjoy additional admin-level permissions on those systems that are accessible to them, there are still limitations on specific actions that are reserved for Administrator users only. This includes the following:

Authorized Actions based on User Type

For a full breakdown of tasks able to be performed by each user type, please refer to the following authorized actions table. Note: These actions refer to both manual actions within the Sigrid web interface as well as actions allowed via the Sigrid API:

Action Normal User Maintainer Administrator
Portfolio Overview      
View Dashboard ✅✅
View Systems ✅✅
Capability Specific Overviews      
View Dashboards ✅✅
View Ratings ✅✅
Favorite Systems ✅✅
Findings and Refactoring Candidates      
View Findings ✅✅
Edit Findings ✅✅
View Finding Audit Trails ✅✅
Create Manual Findings   ✅✅
Source Code      
View Source Code ✅✅
Meta-data      
View metadata ✅✅
Configure metadata   ✅✅
Objectives      
View objectives ✅✅
Configure system-level objectives   ✅✅
Configure portfolio-level objectives     ✅✅
User Management      
View Users ✅✅
Create / Delete Users     ✅✅
Edit User Permissions   ✅✅
Edit User Details (other than self)     ✅✅
View User Status Details     ✅✅
Edit User Role     ✅✅
Reset User Password / MFA     ✅✅
Create / Delete Authorization Groups     ✅✅
Edit Authorization Group Permissions   ✅✅
Edit Authorization Group Members   ✅(1) ✅✅
Edit Authorization Group Details   ✅(1) ✅✅

Limited Scope: User is only able to perform this action on systems that are explicitly accessible to the user
✅✅ Global Scope: User is able to perform this action across any system in the portfolio
(1) Only for Groups the Maintainer is a member of

System level access

Generally speaking, users are authorized to perform actions based on the scope of systems they have been granted access to via Sigrid’s User Management module. Administrators always have access to every system within their portfolio, so naturally they can perform all actions specified in the above table across every system present within their portfolio. Conversely, Normal and Maintainer users can only perform authorized actions on systems they have been explicitly granted access to and are granted no system access by default.

Administrator and Maintainer users can specify on system level the access any user in the portfolio has - Maintainers are able to authorize users based on their own system access while administrators are able to grant access for any system within the portfolio. Once access has been granted to a user, they will be able to view all Sigrid content for the selected system.

Bulk assigning system access

When creating or editing a user, it is possible to assign system access in bulk via several new system access controls. These system access controls are based on the metadata supplied for systems, allowing a user to receive access to all systems labeled with Division, Team or Supplier metadata.

Upon selection of one of the filters, the user will be presented with a list of system groups based on the assigned metadata. From here you have the ability to add a group as a whole, or expand the group to add specific systems to the user’s access. Important to note is that these bulk assignments are not currently “sticky” for the user, in the sense that if you assign access to a system group to a user, only those systems currently present in the system group will be accessible to the user. If a new system is then added to this group, the user will need to reassign the group as a whole to the user.

This is helpful when trying to assign a logical grouping of systems for a new user, without having to identify and add the systems one by one.

For more information on assigning metadata to systems, please see the separate Metadata page

Note: Bulk assignment of system access can be done both when assigning permissions to a single user, as well as when defining permissions for authorization groups.

Authorization groups

Administrators and maintainers also have the ability to specify system access in bulk for groups of users, by creating an authorization group entity by which users can be added to this group along with a permission set. All users added to a defined authorization group will inherit access rights to systems authorized for the group.

Creating groups in User Management

You can find the user group table on the User Management page by switching to the “Groups” tab above the User Permissions table.

Creating a new user group is simple and follows a very similar process for assigning permissions to users. From the “Groups” tab, simply click the “Add user group” button and this will trigger a new dialog to appear.

From here you can input a descriptive name for the new authorization group as well as a description of the responsibility of this group.

Upon saving of the group details, the authorization group is created. At this state the group will have no users or system access, but the group entity does exist and will populate the User Groups table.

At this point the user is free to delete the group (done via clicking the red “X” icon to the right of the entry in the table) edit the group (via clicking on the pencil icon to the right of the entry in the table).

Switching to the Members section in the edit group dialog, the user can freely allocate group membership to other users within the portfolio. Important to note is that users will only be added to the group when clicking “save”, closing the dialog without saving will result in users not being added to the group.

The final step for the group is to grant system access, which is done via the Permissions section in the Edit User Group dialog. Here you’ll find a very familiar process as adding system access for users, the main controls are the same.

System assignment can be done one-by-one, or in bulk using the metadata based bulk assignments. Any system added to the group will be accessible by all group members for the lifetime of the group or until the user is removed from the group.

Naturally, any change in the permissions of a group will be reflected in the permissions of all users present in the group. Some key things to keep in mind when assigning permissions via authorization groups are the following:

User Management via Sigrid API

Apart from the web-based user interface of Sigrid, users and authorization groups can be managed via several endpoints available in the Sigrid API. Please see how to manage user permission via API for more information.

Passwords

The administrator can help users by resending a forgotten password or the initial temporary password. When a user has confirmed their password, they can request a new password themselves.

Contact and support

Feel free to contact SIG’s support department for any questions or issues you may have after reading this document, or when using Sigrid or Sigrid CI. Users in Europe can also contact us by phone at +31 20 314 0953.