Single Sign-On
Sign in to Bedrock GRC through your firm's identity provider: set up Microsoft Entra ID or Google Workspace, link accounts, require single sign-on, and fix common problems.
Each firm that signs in to Bedrock GRC (Foxx Cyber itself, or a partner assessment firm) can sign its people in through its own identity provider: Microsoft Entra ID, Google Workspace, or any other provider that speaks OpenID Connect, such as Okta or Keycloak.
Single sign-on changes how people sign in, not who has an account:
- Accounts still come from the Team page. Signing in through a provider never creates an account.
- Nobody is matched or linked by email address. Each person links their own account once, while signed in (below).
Who sets it up
Admins set single sign-on up on the Single sign-on page (under Practice in the sidebar), one firm at a time. When there are partner firms, pick the firm at the top of the page and choose Switch.
For a partner firm, the firm's own identity administrator registers Bedrock GRC with their provider and gives the resulting values to their Foxx Cyber contact, who enters them. Agree with Foxx Cyber on a safe way to pass the client secret; not plain email. Questions go to support@foxxcyber.com.
Before you start
You need the redirect URI. The Single sign-on page shows it at the top
with a Copy button: it is your Bedrock GRC address followed by
/login/sso/callback. Register it with the provider exactly as shown,
character for character.
Set up Microsoft Entra ID
In the Microsoft Entra admin center (as an Application Administrator or higher):
- Go to Entra ID → App registrations → New registration.
- Name it
Bedrock GRC. Under Supported account types, choose Accounts in this organizational directory only (single tenant). - Under Redirect URI, choose the Web platform and paste the redirect URI. Select Register.
- On the app's Overview, copy the Application (client) ID and the Directory (tenant) ID.
- Under Certificates & secrets → Client secrets → New client secret, add a secret with an expiry, and copy its Value straight away (not the Secret ID; the value is shown once). Put a reminder in your calendar before it expires.
- Recommended: under Enterprise applications → Bedrock GRC → Properties, set Assignment required? to Yes and assign the people or groups who may use it. Put multi-factor sign-in on it with a Conditional Access policy.
Then, on the Single sign-on page in Bedrock GRC:
| Field | Value |
|---|---|
| Issuer | https://login.microsoftonline.com/ followed by your Directory (tenant) ID and /v2.0. Use the tenant ID, never common or organizations: those would let any Microsoft tenant in, and the page refuses them. |
| Client ID | The Application (client) ID. |
| Client secret | The secret's value. |
| Email domains | The firm's email domains, separated by commas. |
Leave Trust the provider's multi-factor sign-in off for Entra ID: its sign-in tokens don't say whether multi-factor sign-in happened, so Bedrock GRC keeps asking for its own two-step code.
Set up Google Workspace
In the Google Cloud console, in a project that belongs to your Workspace organization:
- Open Google Auth Platform (called OAuth consent screen in older
consoles). Under Branding, enter the app name
Bedrock GRCand a support email. Under Audience, set the user type to Internal, so only your organization's accounts can sign in. - Under Clients, choose Create client, then Web application. Name it and add the redirect URI under Authorized redirect URIs. Choose Create and copy the Client ID and Client secret.
- Bedrock GRC asks only for the
openidandemailscopes, which need no review.
Then, on the Single sign-on page:
| Field | Value |
|---|---|
| Issuer | https://accounts.google.com |
| Client ID and Client secret | From step 2. |
| Email domains | Your Workspace domains. For Google, Bedrock GRC also checks that the account belongs to one of these domains, so a personal Gmail account or another company's account is refused. |
Leave Trust the provider's multi-factor sign-in off for Google; it does not report multi-factor sign-in reliably.
Other providers
Enter the issuer exactly as the provider's discovery document states it, with or without a trailing slash as it does. Register the redirect URI as a confidential web application that uses the authorization code flow.
Save and test
- Choose Save. The client secret is stored encrypted and is never shown again; leave the field blank later to keep it.
- Under Check the provider, choose Test the connection. It checks that the provider answers and publishes its signing keys. It cannot check the client ID and secret: the first real sign-in does that.
- Link your own account (below) to prove the whole setup.
An email domain belongs to one firm only. On the sign-in page, the domain of the email a person types decides which firm's provider they are sent to.
Link an account
Each person links their own account once:
- Sign in as usual, with your password (and two-step code, if it is on).
- Open Account → Single sign-on.
- Type your password again, and a two-step code if two-step sign-in is on. Choose Continue to your provider.
- Sign in at the provider with the account your firm gave you. You come back to Bedrock GRC with the account linked.
From then on, choose Sign in with single sign-on on the sign-in page, type your work email, choose Continue, then continue to your provider.
The People in firm table on the Single sign-on page shows who has linked, who has not, and who is still linked to a provider the firm no longer uses. Unlink removes someone's link and signs them out; they sign in with their password until they link again. People can also unlink themselves from Account → Single sign-on, unless the firm requires single sign-on.
Rules
Require single sign-on
With Require single sign-on on, people in the firm who have linked their account can no longer sign in with their password. When one of them types it, the password is refused and the sign-in page comes back with the message "Your firm signs in with single sign-on" and the Sign in with single sign-on button first, so there is no dead end.
- Admins keep their password, so a provider outage or a wrong setting never locks the practice out.
- People who have not linked yet keep using their password until they link.
- Only an admin can unlink someone. People cannot unlink themselves from Account while the rule is on.
Turn it on only after the people concerned have linked.
When single sign-on cannot run
Single sign-on needs the deployment's file encryption key (FILES_KEY),
which protects the client secret. Without it, nobody can sign in through the
provider, but the rule still holds: a missing key never turns Require
single sign-on off and never lets people unlink themselves.
- A linked person's password is refused with a message saying single sign-on is not available right now and that an admin can unlink their account. There is no single sign-on button to offer.
- An admin unlinks them from the People in firm table; they then sign in with their password. Admins keep their own password throughout.
- The Single sign-on page says the key is missing and cannot be saved until it is configured. When the key comes back, the rule applies again as before.
Trust the provider's multi-factor sign-in
By default, Bedrock GRC's own two-step sign-in still applies after single sign-on: people with a code are asked for it, and anyone the team policy covers who has none is sent to set it up.
With Trust the provider's multi-factor sign-in on, the code is skipped
when the provider reports that multi-factor sign-in happened (its token says
so). That session then counts as two-step for the team policy and for
assessors. It keeps counting only while the person stays linked to the
firm's current provider and the firm keeps trusting it. Assessors always
need either this or the app's own code. The audit log records these
sign-ins as mfa:idp, so it never claims the app's own code was used.
Use it only with a provider that reports multi-factor sign-in, such as Okta or Keycloak configured to. Microsoft Entra ID and Google do not.
Changes sign people out
- Changing the issuer, the client ID or either rule, or removing single sign-on, signs out everyone in that firm who has linked (except the session the change is made from), so the new setting applies at once. Changing only the email domains or the client secret signs nobody out.
- A new client ID also unlinks everyone in the firm, because some providers, Microsoft Entra ID among them, give each app registration its own user IDs. People sign in with their password and link again. Rotating only the client secret keeps every link.
- Remove single sign-on, at the foot of the Check the provider card, turns single sign-on off for the firm after a confirmation: everyone signs in with their password again.
Every setup change, link, unlink and single sign-on sign-in is written to the audit log, under Single sign-on (all): Single sign-on settings saved, Single sign-on removed, Account linked to single sign-on, Account unlinked from single sign-on and Signed in with single sign-on. So are refused sign-ins:
- Single sign-on sign-in failed (
sso.failed): the provider turned the sign-in down, the exchange with it did not complete, a Google account was outside the firm's Workspace domains, the provider account is not linked to anyone here, or single sign-on was removed while the person was at the provider. The person is not known yet, so the entry names the firm (firm:N) and shows System as who. - Single sign-on refused: account disabled or locked (
sso.refused): the linked account is disabled, or locked after failed sign-ins. It is recorded under the person (user:N).
A password refused because the firm requires single sign-on is recorded as Password refused: the firm requires single sign-on, and a two-step code refused while linking as Two-step code refused on Account. Linking spends the same password and code tries as the rest of Account. Attempts turned away as too many, and returns from the provider that carry no sign-in started here, are not recorded, so nobody can fill the log by sending them.
Locked accounts
A lockout after failed sign-ins holds here too. While an account is locked, single sign-on refuses it with "Too many failed attempts: this account is locked for a few minutes", unless the person is using a browser they have signed in from before. A refused single sign-on never ends the lock; it ends when it runs out, when an admin chooses Unlock now, or when the person signs in from that known browser. See Lockout after failed attempts.
Troubleshooting
| What you see | What to do |
|---|---|
| "Test failed": the provider calls itself something that does not match the issuer exactly | Copy the name the test shows into Issuer. For Entra ID it ends in /v2.0 and contains the tenant ID. |
Microsoft error AADSTS50011, or Google redirect_uri_mismatch | The redirect URI registered at the provider differs from the one on the Single sign-on page. They must match character for character. |
| "That sign-in took too long or was started in another window" | More than 10 minutes passed, or the sign-in was started in another window. Start again from the sign-in page. |
| "This … account is not linked to an account here" | You have not linked yet, or you linked a different provider account. Sign in with your password and link from Account. If your password is refused because your firm requires single sign-on, ask an admin to unlink your account first. |
| "Single sign-on with … did not complete" | Often a wrong or expired client secret. Enter a new secret on the Single sign-on page and save. |
| "Too many failed attempts: this account is locked for a few minutes" | The account is locked after failed sign-ins. Wait for the lock to run out, sign in from a browser you have used before, or ask an admin to choose Unlock now on the Team page. |
| "This account cannot sign in. Ask an admin." | The linked account is disabled. |
| "Single sign-on is not set up for domain" | The domain of the email you typed is not on any firm's list. Sign in with your password, or ask an admin to add the domain. |
| "That Google account is not in your organisation's Google Workspace" | You signed in at Google with an account outside the firm's Workspace domains. Sign in with your work account. |
| "Your firm signs in with single sign-on. Choose Sign in with single sign-on below" on the password form | Your firm requires single sign-on and you have linked. Choose Sign in with single sign-on. Your password works again only if an admin unlinks your account. |
| "Your firm signs in with single sign-on, which is not available on this deployment right now" | Single sign-on cannot run on this deployment at the moment (see When single sign-on cannot run). Ask an admin to unlink your account so you can sign in with your password. |
| A message under a field when you choose Save | The issuer, client ID, client secret or email domains need a fix, as the message says. Everything else you typed is kept, except the client secret, which you type again. |