neilberkman

neilberkman

Attesto - OpenID-certified OAuth 2.1 / OpenID Connect for Elixir (Phoenix provider, client, and MCP auth)

Hi all - I’ve been building Attesto, a set of libraries that brings certified OAuth 2.1 and OpenID Connect to Elixir, whether you want to be an identity provider, talk to one, or put OAuth in front of an MCP server.

It’s OpenID Certified, including FAPI 2.0 (Security Profile and Message Signing), the bank-grade profile behind open banking. As far as I can tell from the OpenID Foundation’s directory, that makes it the first Elixir provider certified for FAPI 2.0. The certs also cover OpenID Connect Basic and Config, all three Logout profiles, Session Management, and FAPI-CIBA, and they run against the Foundation’s conformance suite rather than being self-asserted.

For Phoenix apps, attesto_phoenix is a drop-in authorization server: /authorize, /token, PAR, DPoP, mTLS, PKCE - backed by your own Ecto schemas. You keep your login and consent screens, it handles the protocol.

On the MCP side, the spec now has servers act as OAuth 2.1 resource servers, and attesto_mcp handles that boundary. It protects your /mcp endpoint, publishes the RFC 9728 metadata that lets Claude, ChatGPT, and other MCP clients discover how to authorize, verifies Bearer/DPoP/mTLS tokens locally, and enforces scopes before a request reaches your tools. It drops straight into Anubis, or any Plug/Phoenix MCP server.

If you’re on the client side, attesto_client covers the relying-party work: discovery, JWKS, ID-token and JARM verification, request objects, private_key_jwt.

All of it sits on a small conn-free core with no Phoenix or Ecto assumptions, so you can build on that directly if you’re on a different stack.

Everything’s on Hex with docs, and I’d welcome feedback, especially from anyone doing OAuth for MCP.

Hex: attesto · attesto_phoenix · attesto_client · attesto_mcp

Where Next?

Popular in Announcing Top

sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
mspanc
I am pleased to announce an initial release of the Membrane Framework - an Elixir-based framework with special focus on processing multim...
New
bryanjos
Hi, I just published version 0.23.0 of Elixirscript. https://github.com/bryanjos/elixirscript/blob/master/CHANGELOG.md Most of the chan...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
riverrun
I’ve just released version 3 of Comeonin, a password hashing library. The following small changes have been made: changes to the NIF c...
New
mbuhot
Leverage Open Api 3.0 (Swagger) to document, test, validate and explore your Plug and Phoenix APIs. Generate and serve a JSON Open API ...
New
ahamez
Hi everyone, I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
cjen07
parameterized pipe in elixir: |n> edit: negative index in |n> and mixed usage with |> are supported example: use ParamPipe ...
New
Jskalc
Hi! Today, after a couple weeks of development I’ve released v0.1 of LiveVue. It’s a seamless integration of Vue and Phoenix LiveView, i...
New
josevalim
Hello everyone, We have just released NimbleCSV which is a small and fast CSV parsing library for Elixir. It allows developers to define...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31013 112
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
AstonJ
Please see the new poll here: Which code editor or IDE do you use? (Poll) (2022 Edition) It’s been a while since we first asked this, I...
208 31265 143
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 127089 1222
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54120 245
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement