Keystone: identity and access across platform and cloud
Architecture and implementation contribution with FAO colleagues; presentation co-author
In 2023–2024, we developed Keystone with Keycloak and Open Policy Agent alongside GCP IAM, integrating a Google Cloud Workforce Identity Pool with Keycloak. My contribution combined identity integration, access-policy architecture and implementation with FAO colleagues.
A platform identity and a cloud identity do not automatically grant the same access. Applications, service accounts and administrators need a consistent way to express permissions for platform resources and the associated cloud services.
The inspected twelve-slide presentation frames Keystone around unified identity management, centralized authorization and GCP resource access. It supports this architectural scope; it does not establish a start date, a population served or measured security outcomes.
Architecture: identity provider, gateway and client
We developed Keystone in 2023–2024 with Keycloak and Open Policy Agent (OPA), integrating Keycloak with Google Cloud Workforce Identity Federation and IAM. The twelve-slide presentation also describes OpenID Connect authentication, a FastAPI gateway and a Python client for gateway interactions.
Workforce federation lets externally authenticated users access Google Cloud under IAM permissions. It is user identity federation, distinct from workload identity federation for software workloads. OPA supplies a policy-decision responsibility for application access; gateway/platform enforcement and Google IAM resource permissions are separate scopes.
The diagrams combine the confirmed implemented integration with Google’s documented federation model. The product flow exchanges an external credential through Security Token Service for short-lived access; the particular provider claims, token caches and revocation behavior of this deployment have not been inspected.
Federated user identity and two authorization scopes
Keycloak authenticates users. A workforce identity pool/provider trusts that identity for access governed by Google Cloud IAM. A separate platform policy/gateway lane supports FAO Maps access. These scopes remain distinct; the view does not invent deployment replicas or provider attribute mappings.
Decisions: central policy with explicit enforcement boundaries
Authentication answers who is requesting access. Authorization answers whether that identity can perform an operation on a resource. The presentation connects both, while naming policy enforcement for buckets and BigQuery and access rules for FAO Maps.
The presentation describes RBAC and ReBAC for platform users and service accounts. The implemented stack also uses OPA. Policy decisions and enforcement should be distinguished: naming OPA does not mean it replaces Google IAM or prove particular Rego rules, decision caching or resource attribute mappings.
A retrospective alternative is to let each application maintain its own identity-to-cloud mapping. That reduces central dependencies, but multiplies permission administration and makes alignment harder. I would evaluate the central gateway against that administrative cost, while measuring its own availability and policy-propagation requirements.
Three security responsibilities
Authentication establishes the user in Keycloak. Workforce federation represents the external identity in Google Cloud; its documented token exchange uses STS. IAM grants resource permissions, while platform RBAC/ReBAC has its own scope. Google product mechanics are distinguished from uninspected deployment settings.
We implemented Keystone using Keycloak and OPA alongside GCP IAM, with Workforce Identity Pool integration, in 2023–2024. The architecture presentation documents the FastAPI gateway, Python client, authentication and role/group/policy administration, including an authentication demo section.
This is FAO institutional work delivered with colleagues. The public case describes the evidenced components and my contribution, without asserting user counts, token-lifetime guarantees, particular deployment infrastructure or independent security certification.
Learning: follow the permission all the way to the resource
An identity integration is only as clear as the enforcement boundaries around it. A design review should trace user identity, service-account identity, the policy decision and the final resource operation separately.
The next evidence I would request for an operational review is a resource-specific access trace, including denied access, token revocation and service failure. These are review criteria, not a statement that a particular caching or recovery mechanism was implemented.
Questions & discussion
How do authentication, federation and IAM differ?
Keycloak authenticates the user. Workforce federation lets Google Cloud trust an external user identity. IAM determines allowed cloud operations; the platform’s access policy remains a separate authorization scope.
The inspected presentation does not establish revocation timing or token caching. A defensible answer requires the implemented token lifetimes, policy refresh behavior and final resource enforcement path.
The slides explicitly describe a library that simplifies interaction with the FastAPI gateway. It creates an integration surface for applications; the deck does not prove retries, caching or token exchange internals.
No such replacement is claimed. OPA is the application policy-decision component; IAM permissions govern Google Cloud resources. The exact gateway decision inputs and enforcement sequence require implementation evidence.
Implemented Keycloak + OPA over GCP IAM with Workforce Identity Pool integration; 2023–2024 development confirmed October 2026; Contribution account, not an independently audited deployment record
Complete 12-slide source presentation on identity integration, the FastAPI gateway, permissions, Google Cloud access and Keycloak. Colleague credit and an institutional role identifier are redacted.
Joint presentation by Carlo Cancellieri and a colleague; contributor names omitted from this public copy. Edition dated from source metadata; this does not establish the project start date.