Skip to content

Product · Extend

Identity Gateway

One registration for each product. One product grant for each customer account.

Live now · Platform operator onlyBuilding now

A platform operator, who is RealmSSO staff, registers a product once. The platform operator then gives a customer account a product grant for that product. RealmSSO creates a SAML or OIDC client for the product in that account’s realm. A realm is the separate sign-in space RealmSSO keeps for each account. Default deny: an account with no product grant has no client for the product. You ask RealmSSO staff to do this, because only a platform operator can, and no API key can. No screen exists for customers or product teams. No login has yet been carried end to end through the gateway.

Live now

What a platform operator can do today

A platform operator, who is RealmSSO staff, makes every call in this group but one: a product-team role can read one account’s handout. Only a platform operator can make these calls, and no API key can. To have a product granted to your account, ask RealmSSO staff. The API reaches all of it. The connector board in the dashboard reaches part of it. No login has yet been carried end to end through the gateway, and the ADFS cmdlets have never been run against an ADFS farm. Until a pilot closes both gaps, treat the gateway as untested end to end.

A platform operator registers a product once

Registration records a product’s name, its slug and its protocol: OIDC, SAML or both. Registering provisions nothing. A platform operator registers a product through the API or on the connector board. An API key cannot.

A product grant gives one account one product, default deny

A product grant pairs a registered product with one account. The product’s client exists only in the realms of accounts that hold a product grant. An account with no product grant has no client for that product. A new realm copies only its own account’s product grants. Creating a product grant provisions nothing by itself: a separate provision call does that, and the connector board does both in one step. Revoking a product grant removes the client at once.

A SAML or OIDC client of its own in each realm

For each product grant, RealmSSO provisions a SAML or an OIDC client for the product in that account’s realm, as the product grant’s protocol requires. A realm is the separate sign-in space RealmSSO keeps for each account. Each realm holds its own client, so no client is shared across customers. An integration test shows that the SAML assertion names the requesting product as its only audience.

A handout of per-customer values, with no secret in it

A handout lists, for each account that holds a product grant, the values one product team copies: the OIDC discovery URL and client ID, or the SAML descriptor URL, and the registered URLs. It also reports whether each client is provisioned, absent or unreachable. That status is read live, not stored. Every read is audited per account, including a read for one named account that found nothing. A platform operator reads a handout through the API, and the connector board shows the values of one product grant.

Client secrets are read by a platform operator only

A platform operator reads a product’s client secret with a POST call, never a GET, and RealmSSO audits each read. RealmSSO’s database stores no product secret. The sign-in service holds it. The connector board cannot show a secret. API only.

Rotation is per product grant, with an immediate cutover

A platform operator rotates the OIDC client secret of one product grant. The call needs a note that coordinates the change with the product team. The rotation is designed as an immediate cutover, with no overlap between the old secret and the new one, and there is no rollback. That the old secret stops at cutover comes from the sign-in service’s documentation, and we have not measured it. A SAML product grant has no client secret, so rotation is refused. There is no product-wide rotation, by design. API only.

A product-team role reads one customer’s handout and nothing else

A platform operator can give a product team a role that reads the handout of one named account for one product. The role reads nothing else. Someone who is a member of any account cannot hold it, and RealmSSO checks this on every request. An API key cannot hold it. Removing the role takes effect on the next request. A platform operator gives and removes the role through the API, and no screen exists for it.

The connector board is for platform operators only

The connector board is a dashboard page that shows accounts against products. On it, a platform operator registers, renames, deactivates or deletes a product, creates a product grant, provisions it, revokes it, and shows the handout values of one product grant. The board does not edit a product grant, rotate or reveal a secret, or manage the product-team role: those stay API calls. A platform operator can also read the whole customer-by-product matrix through the API. Each read of that matrix writes an audit row. No screen exists for customers or product teams.

Building now

Designed, not built

We are building each item below now. None of it is available yet, so each row says what would happen and not what happens.

Signed SAML requests from products

Requests from a product’s SAML service would have to be signed before any SAML pilot runs. The sign-in service accepts an unsigned request from a product that holds a product grant today. Signing is not built.

The authenticator_spi binding

Each product grant carries a binding. The API accepts the redirect binding only. A binding named authenticator_spi is designed and is not built, so the API refuses it.

A device credential for mesh devices

A product placed on a mesh of devices would receive a device credential that RealmSSO would issue. This is designed and is not built. Today, mesh is only a placement label in the API.

Talk to the people who build it.

We run RealmSSO for you. Tell us which identity providers your customers use and how many customers you have, and we will tell you what fits today.