---
title: "Identity \u0026 Auth"
canonical_url: https://www.janbrennenstuhl.eu/topics/identity-authentication/
author: Jan Brennenstuhl
---

# Identity & Auth

OpenID Connect, OAuth, passkeys and step-up: who is acting, on whose behalf, and how strongly that was proven.


Authentication is where usability and security meet most directly. These pieces cover OpenID Connect and OAuth in practice, step-up authentication, and an honest look at passkeys.


## Entries

- [How does authorization work for MCP servers?](https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/mcp-authorization/) (2026-10-13, guide): In MCP revision 2026-07-28, a protected MCP server over HTTP is an OAuth 2.1 resource server that accepts only tokens issued for itself. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/mcp-authorization/index.md
- [How should people grant and revoke an agent's access?](https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/consent-and-revocation/) (2026-10-13, guide): People should grant an agent access per service with chosen permissions and an expiry, and be able to revoke that grant at any time. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/consent-and-revocation/index.md
- [How does OAuth 2.0 Token Exchange keep provider tokens away from agents?](https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/token-exchange/) (2026-10-13, guide): OAuth 2.0 Token Exchange (RFC 8693) lets a gateway trade an agent's token for a provider token, so the provider token never has to reach the agent. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/token-exchange/index.md
- [What is inside a JWT?](https://www.janbrennenstuhl.eu/knowledge-base/oidc/jwt-anatomy/) (2026-10-13, guide): A signed JWT's claims are readable by anyone who holds it; trust comes only from verifying the signature with an allowed algorithm and a trusted key. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/oidc/jwt-anatomy/index.md
- [Should an agent use a robot account or delegated access?](https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/delegation-vs-robot-accounts/) (2026-10-13, guide): An agent that acts for a person should use delegated access that names both the person and the agent. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/agent-identity/delegation-vs-robot-accounts/index.md
- [Economies of Scale for MCP and Agents](https://www.janbrennenstuhl.eu/talks/economies-of-scale-for-mcp/) (2026-09-18, talk): Agents should not hold shared, long-lived provider credentials; an identity broker ties delegated access to both person and agent, and a gateway keeps provider tokens out of the agent. Markdown: https://www.janbrennenstuhl.eu/talks/economies-of-scale-for-mcp/index.md
- [Agentic Identity Broker](https://www.janbrennenstuhl.eu/projects/agentic-identity-broker/) (2026-09-15, project): Agentic Identity Broker gives agents scoped, revocable access to tools on behalf of people, keeping both user and agent in authorization decisions and provider tokens out of the agent's context. Markdown: https://www.janbrennenstuhl.eu/projects/agentic-identity-broker/index.md
- [Mastering JWKS: JSON Web Key Sets Explained](https://www.janbrennenstuhl.eu/jwks/) (2023-06-02, essay): A JSON Web Key Set lets an identity provider publish its public keys at one URL, so clients can verify JWT signatures locally and the issuer can rotate keys without redistributing them. Markdown: https://www.janbrennenstuhl.eu/jwks/index.md
- [JSON Web Encryption: Exploring JWE Token](https://www.janbrennenstuhl.eu/jwe/) (2023-05-29, essay): JWE keeps a JWT's payload confidential through authenticated encryption, but its security depends on careful algorithm choice, key management, token expiry and keeping sensitive data out of headers. Markdown: https://www.janbrennenstuhl.eu/jwe/index.md
- [JWT vs OAuth 2.0: Understanding the Key Differences](https://www.janbrennenstuhl.eu/jwt-vs-oauth/) (2023-05-24, essay): OAuth 2.0 is an authorization framework for delegated access and JWT is a token format, so the two complement each other, and OpenID Connect combines them. Markdown: https://www.janbrennenstuhl.eu/jwt-vs-oauth/index.md
- [Where do OpenID Connect implementations break?](https://www.janbrennenstuhl.eu/knowledge-base/oidc/openid-connect-security/) (2023-05-15, guide): Testing 6 certified OpenID providers and 8 relying parties against 18 known attacks uncovered 12 implementation flaws. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/oidc/openid-connect-security/index.md
- [Step-Up Authentication: Elevating Security with OpenID Connect (OIDC)](https://www.janbrennenstuhl.eu/step-up-authentication/) (2023-05-14, essay): Step-up authentication asks for extra factors only for sensitive actions, and OpenID Connect relying parties can request it from the identity provider with the max_age and acr_values parameters. Markdown: https://www.janbrennenstuhl.eu/step-up-authentication/index.md
- [Passwordless: Critical Notes on FIDO2 Passkeys](https://www.janbrennenstuhl.eu/fido-passkeys/) (2023-05-08, essay): Passkeys resist phishing but replace knowledge with possession and tie users to devices and Big Tech vendors, so most people should wait for the ecosystem to mature before going passkey-only. Markdown: https://www.janbrennenstuhl.eu/fido-passkeys/index.md
- [Passwordless Authentication: Future of Cybersecurity](https://www.janbrennenstuhl.eu/passwordless-authentication/) (2023-05-07, essay): Passwordless login through biometrics, security keys or passkeys is more secure and easier to use than passwords, though organizations must invest in infrastructure and win user acceptance. Markdown: https://www.janbrennenstuhl.eu/passwordless-authentication/index.md
- [Do login challenges and risk scoring stop account takeover?](https://www.janbrennenstuhl.eu/knowledge-base/account-security/reinforced-authentication/) (2023-04-27, guide): Device-based login challenges block far more account takeover attempts than knowledge-based ones. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/account-security/reinforced-authentication/index.md
- [How secure are email-based password resets?](https://www.janbrennenstuhl.eu/knowledge-base/account-security/account-recovery/) (2023-04-21, guide): 72% of the website account recovery mechanisms studied had at least one implementation weakness. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/account-security/account-recovery/index.md
- [How do attackers take over accounts?](https://www.janbrennenstuhl.eu/knowledge-base/account-security/account-takeover/) (2023-04-21, guide): At least 35 of 75 popular online services studied were vulnerable to account pre-hijacking attacks. Markdown: https://www.janbrennenstuhl.eu/knowledge-base/account-security/account-takeover/index.md
- [About Jan Brennenstuhl](https://www.janbrennenstuhl.eu/about/) (2021-04-08, profile): Jan Brennenstuhl is a principal engineer focused on application security, agentic engineering, and the intersection of security, usability, and automation. Markdown: https://www.janbrennenstuhl.eu/about/index.md
- [The Purpose of JWT: Stateless Authentication](https://www.janbrennenstuhl.eu/jwt-stateless-authentication/) (2017-04-28, essay): The purpose of JWT is stateless authentication: signed, self-contained tokens let services verify identity locally without a central session store, at the cost of hard revocation and token theft risk. Markdown: https://www.janbrennenstuhl.eu/jwt-stateless-authentication/index.md
- [On Making Spring Security OAuth RFC-compliant](https://www.janbrennenstuhl.eu/spring-security-oauth-rfc/) (2017-02-01, essay): Contributing a small fix to a long-lived library such as Spring Security OAuth means fitting its old Java version, minimal dependencies and backward compatibility, and it teaches you the underlying RFCs. Markdown: https://www.janbrennenstuhl.eu/spring-security-oauth-rfc/index.md
