liveBook · Manning

Authentication

As explained in Effective Platform Engineering

Authentication is the process of verifying the identity of a user, service, or automated process.

Authentication verifies who a developer is. In an engineering platform, it should give developers a consistent way to sign in across tools, infrastructure, and custom APIs. It does not, by itself, decide what they may access: that is authorization. Centralizing sign-in helps avoid separate access requests for every resource, but only if the integrations reach beyond SaaS tools. section 4.3.3 section 8.5

Separate the decisions that are easy to conflate:

  • Use corporate identity or single sign-on to authenticate an individual. Keep the platform’s customer identity separate from the identifiers of its underlying infrastructure. section 4.3.3 section 7.3.1
  • Choose where team membership is maintained, then use it to authorize access. One workable arrangement authenticates users through GitHub while maintaining teams in GitHub’s role-based access controls. section 7.3.1
  • Connect that team information to each access point. Some tools support the connection directly; others may need an API that synchronizes membership. Infrastructure and custom APIs need the same access model. section 7.3.1

One sign-in, team-scoped access

A developer authenticates with personal GitHub credentials through an OIDC integration. Their GitHub team supplies the authorization used to access the control plane. CircleCI can connect permissions directly to GitHub teams; other SaaS tools may require membership synchronization. When a team is onboarded, the goal is for its members to receive access to platform features within that team’s bounds, rather than requesting each resource separately. section 7.3.1 section 8.5

Figure 7.8 For Epetech, we would like our IDP service to have built-in or easily configurable means of integrating with GitHub, requiring authentication through whatever means we have set up in GitHub. As a result of (1) successful authentication, we want the IDP to (2) get the list of all teams the user is a member of in our GitHub organization. Finally, we want to (3) return to the user a secure means of accessing the platform infrastructure or custom API resources.
A diagram of a diagram

AI-generated content may be incorrect.

Follow the identity-provider flow: authenticate through GitHub, retrieve the user’s teams, then provide a secure way to access infrastructure or custom APIs. The steps show where identity verification ends and team-based access begins. section 7.3.1

Treat sign-in as a starting point, not the whole access experience. Decide which system owns team membership, identify integrations that cannot consume it directly, and automate the remaining connections. An identity provider can bridge systems without becoming the source of truth for every authorization decision. section 4.3.3 section 8.5

How Effective Platform Engineering covers it

How deep it goes
Works through an identity-provider and team-lookup flow, but defers detailed identity-provider configuration and implementation options.
Examples
Uses GitHub sign-in and teams, CircleCI permission integration, and an OIDC connection to a control plane.
What it assumes
Assumes familiarity with developer tools and platform infrastructure; leaves identity-provider configuration options beyond the worked arrangement.
What you can do after
Apply it via an OIDC integration and team-based authorization to reduce separate access requests across platform resources.
How it connects
Connects authentication to single sign-on, authorization, role-based access control, team membership, and platform identity.

Also explained in

Compare how 34 books explain authentication →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Effective Platform Engineering. The section links point to the parts of the book it draws on.