Attesto

Tenant-authenticatie

Tenant SSO en identity discovery

Dashboard tenant users loggen in met één rustige eerste stap: een e-mailadres invoeren. Attesto kiest daarna het juiste password-, community identity-, organisatie-SSO-, invite- of signup-pad zonder een enterprise provider wall te tonen. Geconfigureerde community providers kunnen ook als convenience buttons onder het email-first formulier verschijnen, nooit erboven, en nooit gemengd met tenant enterprise SSO-keuzes.

Scope

Deze pagina behandelt main platform users op dashboard.attesto.eu. Marketplace developer accounts, auditor access en interne staff access zijn aparte identity-surfaces. Een marketplace developer account geeft geen toegang tot het tenant dashboard, tenzij dezelfde persoon ook als tenant user is uitgenodigd.

Email discovery

De loginpagina start met het e-mailveld. De backend geeft de aanbevolen volgende stap terug en kan voor een nieuwe community signup ook veilige availableProviders-opties teruggeven:

User flow

Enterprise SSO-gebruikers kunnen ook starten op auth.attesto.eu. Die pagina ontdekt alleen tenant Entra/OIDC/SAML-routes en stuurt niet-SSO-gebruikers terug naar de reguliere dashboardlogin.

Een tenant user hoeft niet tussen zeven providers te kiezen. De user voert het werk-e-mailadres in, ziet het ontdekte pad en gaat verder met de methode die voor dat adres is geconfigureerd. Als het tenantdomein door organisatie-SSO wordt beheerd, toont de knop “Continue with your organization” of de ingestelde providernaam. Als password fallback nog is toegestaan, kunnen bestaande password users met password doorgaan.

  1. Open dashboard.attesto.eu/login.
  2. Voer het tenant e-mailadres in.
  3. Ga verder met het ontdekte password-, community identity-, invite-, signup- of organisatie-SSO-pad.
  4. Keer terug naar het dashboard met de bestaande Attesto tenant session, CSRF-bescherming en role checks intact.

Tenant owner setup

Tenant owners configureren enterprise identity providers in Settings → Identity Providers. De wizard bewaart secrets server-side, toont alleen masked status terug aan de browser en genereert callback- of metadatawaarden voor de externe provider. Provider setup moet met een uitgenodigde user worden getest voordat SSO voor een tenantdomein wordt afgedwongen.

ProviderGebruik wanneerAttesto heeft nodigProvider heeft nodig
Microsoft Entra IDEnterprise workforce loginDomain, issuer, client id, encrypted client secretRedirect URI en toegestane users/groups
Generic OIDCOkta, Keycloak, Ping, Auth0, ForgeRock of custom OIDCDomain, issuer URL, client id, encrypted client secret, scopesRedirect URI en verified email claim
Generic SAMLLegacy enterprise SSO of SAML-only IdPsDomain, IdP entity id, SSO URL, signing certificateSP Entity ID, ACS URL, signed response of assertion

Providers

Community providers ondersteunen Google, GitHub, GitLab en LinkedIn. Enterprise providers ondersteunen Microsoft Entra ID, generieke OIDC en generieke SAML. Enterprise providerkeuzes worden niet als publieke button wall getoond; discovery beveelt het passende tenantpad aan. Geconfigureerde community providers kunnen onder het e-mailformulier als self-service shortcut worden getoond. De catalogus bevat een configured-flag, zodat niet-geconfigureerde providers zichtbaar maar inert zijn totdat echte OAuth-credentials bestaan.

Community providers zijn nuttig voor evaluators, developers, investeerders en consultants. Enterprise providers zijn tenant scoped: de domeinmatch bepaalt of een user naar organization SSO wordt gestuurd. Marketplace developer accounts blijven gescheiden van tenant dashboard identities.

Microsoft Entra ID

Gebruik Microsoft Entra ID wanneer een klant Attesto dashboard access wil laten volgen uit Microsoft workforce identity, Conditional Access, MFA en account lifecycle policies. Maak in Entra een web application registration voor Attesto, voeg de Attesto redirect URI uit de dashboard wizard toe en maak een client secret. Kies in Attesto Entra en vul tenant domain, issuer/authority URL, client id en client secret in.

Generic OIDC

Generic OIDC dekt Okta, Keycloak, Ping, Auth0, ForgeRock en andere standards-compliant identity providers. De provider moet issuer discovery metadata en signing keys aanbieden, en een stabiele subject plus verified email claim teruggeven. Attesto ontdekt authorization, token, userinfo en JWKS endpoints uit de issuer waar dat ondersteund wordt.

Generic SAML

Generic SAML ondersteunt enterprise omgevingen die op SAML 2.0 leunen in plaats van OIDC. Attesto toont SP metadata en ACS URLs vanuit de tenant settings wizard. De externe IdP moet de response of assertion signen en een stabiele subject plus email attribute voor de uitgenodigde tenant user meesturen.

Enterprise SSO

Enterprise SSO is tenant scoped. Een providerconfiguratie bindt één tenantdomein aan één ingeschakelde Entra-, OIDC- of SAML-provider. Tijdens discovery worden invite token en bestaande identity links eerst geëvalueerd, daarna tenant domain provider rules, daarna password of signup fallback. Zo wordt willekeurige providerkeuze voorkomen en blijft de login rustig.

Tenant owners configureren enterprise SSO in dashboard settings onder Identity Providers. OIDC- en Entra-providers gebruiken issuer metadata, client id, versleutelde client secret, strikte redirect allowlists, PKCE, state, nonce, issuer, audience en verified-email checks. SAML-providers gebruiken signed responses of assertions, audience- en recipient-validatie, InResponseTo replay protection en korte clock skew.

Het dashboard toont gegenereerde callbackwaarden zodat tenant owners ze in de externe identity provider kunnen kopiëren:

OAuth/OIDC callback:
https://auth.attesto.eu/v1/auth/external/callback/{provider_id}

SAML ACS:
https://auth.attesto.eu/v1/auth/saml/acs/{provider_id}

SAML metadata:
https://auth.attesto.eu/v1/auth/saml/metadata/{provider_id}

Publieke docs documenteren bewust geen interne staff admin procedures. Deze pagina is bedoeld voor tenant-owned identity configuration en developer integration met de tenant authentication endpoints.

Invites

Invite acceptance gebruikt hetzelfde discovery-model. Als het invite e-mailadres hoort bij een tenantdomein met verplichte organisatie-SSO, kan de invite via die provider verdergaan. Als geen provider vereist is, kan de user nog steeds via het bestaande invitepad een password instellen.

API contract

Deze endpoints zijn dashboard tenant-auth endpoints. Frontend clients ontvangen nooit provider secrets.

POST /v1/auth/discover
GET /v1/auth/providers
POST /v1/auth/external/start
GET /v1/auth/external/callback/{provider_id}
POST /v1/auth/saml/acs/{provider_id}
GET /v1/auth/saml/metadata/{provider_id}
{
  "email": "user@company.com",
  "returnTo": "/"
}

Een discovery response vertelt de frontend welke ene volgende stap moet worden gerenderd. Provider secrets, client secrets, SAML certificates, tokens en assertions worden nooit aan de browser teruggegeven.

{
  "email": "user@company.com",
  "action": "organization_sso",
  "buttonLabel": "Continue with your organization",
  "providerId": "idp_...",
  "providerType": "oidc",
  "allowPassword": false,
  "allowSignup": false,
  "availableProviders": []
}

GET /v1/auth/providers retourneert alleen non-secret community provider labels en configuratiestatus voor de knoppen onder het e-mailformulier. POST /v1/auth/external/start mag met alleen providerId worden aangeroepen voor global community signup, maar tenant enterprise providers vereisen altijd een e-mail- of invite-backed discovery result.

Security

External login is alleen toegestaan wanneer de provider een verified email teruggeeft en de identity gekoppeld kan worden aan een bestaande tenant user, geaccepteerde invite of expliciete signup/trial creation. Provider secrets, SAML private settings, tokens, assertions en raw callbacks blijven server-side. Audit events registreren discovery, provider start, success, failure, provider changes en identity linking zonder raw secrets te loggen.

ControlWat Attesto afdwingt
OAuth/OIDC stateShort-lived state, nonce en PKCE records zijn single-use.
OIDC token validationIssuer, audience, JWKS signature, nonce en verified email worden gecontroleerd.
SAML replay protectionInResponseTo, audience, recipient, signature en clock skew worden gevalideerd.
Identity linkingAlleen verified emails mogen linken aan bestaande users, geaccepteerde invites of expliciete signup/trial creation.
Secret handlingProvider secrets worden server-side versleuteld en masked in tenant settings.
Surface separationTenant dashboard users, marketplace developer accounts, auditors en internal staff auth blijven gescheiden surfaces.

Troubleshooting

SymptoomWaarschijnlijke oorzaakOplossing
User wordt naar password gestuurd in plaats van SSODomain provider is disabled, domain mismatch of bestaande password identity heeft precedence.Controleer tenant domain, provider enabled state en spelling van invite email.
OIDC callback faaltRedirect URI, issuer, audience, nonce of verified email claim matcht niet.Kopieer de generated callback exact en controleer issuer/client configuration.
SAML assertion wordt geweigerdUnsigned, expired, replayed, wrong audience, wrong recipient of ontbrekend email attribute.Zet signed responses/assertions aan en vergelijk Entity ID, ACS URL en attributes.
Community provider button is disabledDe provider staat in de catalogus, maar configured is false.Voeg de echte OAuth client id/secret toe voordat je dat pad voor users inschakelt.
User authenticeert maar komt tenant niet binnenDe external identity is niet gekoppeld aan een uitgenodigde of bestaande tenant user.Nodig de user eerst uit of gebruik het expliciete signup/trial path voor een nieuwe tenant.

Rollout checklist