Authenticate your PKI provider with OpenID Connect

In December, we introduced hosted PKI provider integration as a new way of authenticating devices with Golioth. Today, we’re happy to announce another step forward in device security with support for Identity Provider based authentication when connecting to your PKI provider.

The new authentication method takes advantage of OpenID Connect to allow you to grant Golioth access to your PKI provider without the need to create long term credentials. Although we’ll continue to support the existing access key based connection method, we recommend that all new designs utilize identity provider based authentication, as it allows Golioth to authenticate to AWS without storing any key material.

How does the identity provider work?

OpenID Connect is an open authentication standard built on top of OAuth 2.0, that allows web services to authenticate requests without any pre-shared key material. Golioth’s new ID Provider service allows your Golioth projects to authenticate themselves with JSON Web Tokens (JWTs) issued by Golioth’s internal ID Provider, allowing your project to make authenticated requests without storing an access key in Golioth’s backend.

JWTs are signed JSON objects that contain information about the holder of the token, as well as a URL external services can visit to verify the token’s authenticity. When a Golioth project wants to make an authenticated request to an external service, it can now make use of the new Golioth ID Provider service:

  1. Within Golioth’s backend, the project requests a JWT from Golioth’s ID Provider service.
  2. The ID Provider service issues a token containing the project’s ID, and signs the token with Golioth’s own signing key.
  3. The project attaches this token as a header when making a request to the external service it needs to talk to.
  4. The external service reads Golioth’s issuer URL from the token, and gets Golioth’s public key.
  5. The external service verifies the token signature with the public key, which proves that the request came from your project, and can proceed with the request.

For now, the ID Provider service is only enabled for PKI provider requests, but other services, such as pipelines will be able to authenticate with the ID provider service in the future.

Trond Snekvik
Trond Snekvik
Trond is the lead frontend developer at Golioth. Despite his love for Typescript, he has extensive experience with embedded systems, and wrote a master thesis about building mesh networks on top of Bluetooth. During his 10 years at Nordic Semiconductor, Trond worked on the Bluetooth Mesh SDK and served as a Zephyr code owner, before turning to the dark side to build VS Code extensions for Zephyr. Trond enjoys pancakes, dogs, and cross country skiing.

Post Comments

No comments yet! Start the discussion at forum.golioth.io

More from this author

Related posts

spot_img

Latest posts

Golioth Edge Inference using Bluetooth and Qualcomm hardware is a Snap

Golioth showcased a Bluetooth node running a gesture detection program developed by EdgeImpulse on an nRF52840. The results of the detection are sent through a Bluetooth Gateway implementation packaged as a Snap and imported onto an Qualcomm iQ9 running Ubuntu.

Introducing simplified pricing, lower rates, and $50 to get you started

Two years ago, we shifted to a usage-based pricing model with tiers designed for teams of different sizes. At the time, that was a big step...

Golioth is now a part of Canonical

We are thrilled to share that Golioth is now a part of Canonical, the company behind Ubuntu and a global leader in open source.

Want to stay up to date with the latest news?

Subscribe to our newsletter and get updates every 2 weeks. Follow the latest blogs and industry trends.