SecureFlag supports both SAML 2.0. SCIM 2.0 is also supported for the auto-provisioning of users and teams in ThreatCanvas On-premises. Work with your Customer Success Manager to ensure the SSO configuration's correctness before diving into the training program. This guide will walk you through following Platform setup aspects:
Note: This will not affect users who are on password-based authentication.SecureFlag supports the SCIM 2.0 protocol for auto provisioning and deprovisioning users and teams. Work with your Customer Success Manager to ensure the SSO integration's correctness before diving into the SCIM configuration.

IMPORTANT!!!
SCIM integration must be tested before deployment to all accounts.
To test, create a small group of 1-2 accounts to be provisioned to SecureFlag. Once your Customer Success Manager confirms the integration, you may proceed to onboard the rest of the users.
If you are the integration engineer, request an email confirmation from a SecureFlag customer success engineer before pushing a group for testing or onboarding for the first time. You can reach them at success@secureflag.com.
Pushing to a large group of users may result in all accounts within the group receiving an email invite before the onboarding date, which will affect the program.
When a user is removed from a group or app assignment in your identity management platform (e.g., Okta, Azure, etc.), the identity management platform automatically marks the user as inactive in SecureFlag.
This is the default behavior of the identity management system and cannot be modified or customized. Inactive users continue to count toward your active license quota, and their data remains stored unless manually deleted.
To permanently remove inactive users, refer to the platform-specific guides linked below.
SSO and SCIM are supported across various platforms, including Azure, Okta, and OneLogin.
When enabling Single Sign-On (SSO), work with your organization’s Integrations Engineer to ensure a smooth onboarding process before commencing the training program.
SecureFlag supports SAML 2.0 or OAuth 2.0 / OIDC protocols.
For the auto-provisioning of users and teams, SecureFlag also supports SCIM 2.0.
This guide provides instructions for setting up Single Sign-On on Azure via SAML using the Create your own application functionality.
Note: If setting up multiple SecureFlag applications, speak with your Customer Success Manager; this requires an additional step.Once you have the required Federation Metadata XML file from Azure, navigate to the SAML Setup menu on the SecureFlag platform and upload it there. Refer to this article for more info.
For additional support please contact support at: https://www.secureflag.com/support.html
SecureFlag supports the SCIM 2.0 protocol for auto-provisioning and deprovisioning users and teams. Before implementing the SCIM configuration, work with your CSM to ensure the SSO integration's correctness.
This following guide provides instructions for setting up provisioning using SCIM 2.0.

IMPORTANT!!!
SCIM integration must be tested before deployment to all accounts.
To test, create a small group of 1-2 accounts to be provisioned to SecureFlag. Once your Customer Success Manager confirms the integration, you may proceed to onboard the rest of the users.
If you are the integration engineer, request an email confirmation from a SecureFlag customer success engineer before pushing a group for testing or onboarding for the first time. You can reach them at success@secureflag.com.
Pushing to a large group of users may result in all accounts within the group receiving an email invite before the onboarding date, which will affect the program.
Note: When a user is deactivated on Azure, the user's status is set to "Inactive" on SecureFlag. An inactive user still counts against the total number of active licenses, and their data is retained in the platform.To delete users, set up a workflow in Azure to issue a request to the SCIM's DELETE endpoint.
When a user is removed from a group or app assignment, Azure marks them as “Inactive” in SecureFlag.
If a user is deleted from the Directory, Azure first marks them as “Inactive” in SecureFlag and, after 30 days, automatically sends a delete request to remove them permanently. This is standard Azure behavior and cannot be customized or configured.
Inactive users still count against your active license quota, and their data is retained unless deleted.
To remove inactive users sooner, you can either:
When enabling Single Sign-On (SSO), work with your organization’s Integrations Engineer to ensure a smooth onboarding process before commencing the training program.
SecureFlag supports SAML 2.0 or OAuth 2.0 / OIDC protocols.
For the auto-provisioning of users and teams, SecureFlag also supports SCIM 2.0.
This guide provides instructions for setting up Single Sign-On on OKTA via SAML using a custom Okta App.
For additional support please contact support from here.
SecureFlag supports the SCIM 2.0 protocol for auto-provisioning and deprovisioning users and teams. Work with your CSM to ensure the SSO integration's correctness before diving into the SCIM configuration.
The following guide provides instructions for setting up provisioning.

IMPORTANT!!!
SCIM integration must be tested before deployment to all accounts.
To test, create a small group of 1-2 accounts to be provisioned to SecureFlag. Once your Customer Success Manager confirms the integration, you may proceed to onboard the rest of the users.
If you are the integration engineer, request an email confirmation from a SecureFlag customer success engineer before pushing a group for testing or onboarding for the first time. You can reach them at success@secureflag.com.
Pushing to a large group of users may result in all accounts within the group receiving an email invite before the onboarding date, which will affect the program.
When a user is removed from a group, app assignment, or the Directory, Okta marks them as “Inactive” in SecureFlag. This is standard Okta behavior and cannot be customized or configured.
Inactive users still count toward your active license total, and their data remains stored on the platform.
To permanently delete these users, you can either:
To delete users, set up a workflow in Okta to issue a request to the SCIM’s DELETE endpoint, To do so, follow the below steps:
Generate a SCIM token using the instructions here. Then, create a connection as follows:
Removes a SecureFlag license corresponding to the given user email. Returns nothing unless an error occurs.
Inputs:
| Label | Definition | Type | Required |
| User Email | User Email of the SecureFlag license to remove | Text | Yes |
Outputs:
| Label | Definition | Type |
| User Email | User Email of the SecureFlag license to remove | Number |
You can find the example flow in Delete SCIM API Endpoint section.
SecureFlag supports parsing custom SAML attributes to configure user access, including roles, teams, managers, tags, and ThreatCanvas project permissions.
Important Considerations:
To enable SAML Custom Claims provisioning:
Specifies which organization to create the user in when multiple orgs share the same SAML configuration. If omitted, the first matching org is used.
| Attribute | Type | Example |
sf_org | integer | 42 |
Defines the user’s role on the SecureFlag platform.
| Attribute | Type | Example |
sf_role | integer | 3 |
The following roles are available:
| Integer | Role Name |
| 0 | Organization Admin |
| 3 | Team Manager |
| 4 | Stats |
| 5 | Creator |
| 6 | ThreatCanvas Reviewer |
| 7 | User |
Tip: Assign the role with the least privilege necessary. Setting sf_role also controls eligibility for sf_managed_teams (only valid for Team Manager and Organization Admin roles).Assigns the user to a team.
| Attribute | Type | Example |
sf_team | string (team name) | Blue Team |
Grants the user manager permissions over specific teams. Only applied if the user’s role is Team Manager or Organization Admin.
| Attribute | Type | Example |
sf_managed_teams | comma-separated list of strings | Blue Team, Red Team |
Specifies the email address of the user’s manager.
| Attribute | Type | Example |
sf_manager | string | manager@example.com |
Adds a list of tags to the user.
| Attribute | Type | Example |
sf_tags | comma-separated list of strings | Security, EMEA, Contractor |
Defines project permissions for ThreatCanvas.
| Attribute | Type | Example |
sf_projects | map | {"Project Alpha" : "RW", "Project Beta": "RO"} |
Permission Values:
RO = Read OnlyRW = Read/Write<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<saml2:Issuer>https://idp.example.com/12345</saml2:Issuer>
<saml2:Subject>
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
jane.doe@example.com
</saml2:NameID>
</saml2:Subject>
<!-- First name -->
<saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">
<saml2:AttributeValue>Jane</saml2:AttributeValue>
</saml2:Attribute>
<!-- Last name -->
<saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
<saml2:AttributeValue>Doe</saml2:AttributeValue>
</saml2:Attribute>
<!-- Optional org selector -->
<saml2:Attribute Name="sf_org">
<saml2:AttributeValue>42</saml2:AttributeValue>
</saml2:Attribute>
<!-- Role -->
<saml2:Attribute Name="sf_role">
<saml2:AttributeValue>3</saml2:AttributeValue>
</saml2:Attribute>
<!-- Team Membership -->
<saml2:Attribute Name="sf_team">
<saml2:AttributeValue>Blue Team</saml2:AttributeValue>
</saml2:Attribute>
<!-- Managed Teams -->
<saml2:Attribute Name="sf_managed_teams">
<saml2:AttributeValue>Blue Team,Red Team</saml2:AttributeValue>
</saml2:Attribute>
<!-- Manager -->
<saml2:Attribute Name="sf_manager">
<saml2:AttributeValue>lead.manager@example.com</saml2:AttributeValue>
</saml2:Attribute>
<!-- Tags -->
<saml2:Attribute Name="sf_tags">
<saml2:AttributeValue>Security,EMEA,Contractor</saml2:AttributeValue>
</saml2:Attribute>
<!-- ThreatCanvas Projects -->
<saml2:Attribute Name="sf_projects">
<saml2:AttributeValue>{ "Project Alpha": "RW", "Project Beta": "RO" }</saml2:AttributeValue>
</saml2:Attribute>
</saml2:Assertion>
Please follow configuration instruction to setup custom SAML attributes for your Identity Provider.
This guide explains how to configure SecureFlag Single Sign-On to enable Just-in-Time (JIT) user provisioning.
With JIT provisioning enabled, a user can automatically create an account in SecureFlag upon their first successful authentication. SecureFlag redirects the user to the organization’s Identity Provider (IdP), and after validating both the authentication and the user’s access rights, creates the account.
Note: Advanced User provisioning and lifecycle management can also be handled via SCIM. JIT Provisioning Use Cases
To Enable JIT Provisioning
Authorization Note: Ensure that users are assigned to the SecureFlag application in your IdP. Assignment can be done either directly to individual users or through group membership.The sections below describe the JIT provisioning flow for SAML 2.0 and OAuth 2.0, along with setup details depending on your organization’s SSO configuration.
When a user authenticates via SAML 2.0, authentication may be IdP-initiated (e.g. Identity Provider Dashboard) or SP-initiated (SecureFlag’s login page).
Configuration Scenarios:
Configuration Scenarios
SAML assertions must include first name and last name. SecureFlag recognizes several attribute names (case-insensitive):
| Property | Recognized Attribute Name |
| First Name | FirstName, firstName, givenName, user.givenname, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname |
| Last Name | LastName, lastName, sn, surname, user.surname, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname |