dapr / dapr/components-contrib

Implement OIDC Authentication against Keycloak for Apache Pulsar

Open
#2,591 4 comments 0 reactions 0 assignees View on GitHub
help wanted kind/enhancement
Dominant language
Go
Stars
602
Forks
580
Avg merge
4d 9h
Merged PRs (30d)
6

Description

## Describe the feature

OIDC provides a more flexible, modern and standard-based approach to authentication.
Currently, the Apache Pulsar PubSub [component](https://github.com/dapr/components-contrib/blob/master/pubsub/pulsar/pulsar.go) handles authentication by reading a [Pulsar-generated token](https://pulsar.apache.org/docs/2.11.x/security-jwt/#generate-tokens) defined in a PubSub Component [manifest](https://docs.dapr.io/reference/components-reference/supported-pubsub/setup-pulsar/).

This request is to add an OIDC [Client Credentials grant](https://developers.onelogin.com/openid-connect/api/client-credentials-grant) authentication flow to the Apache Pulsar PubSub component.

References:
[Keycloak - Identity and Access Management for Modern Applications - Packt Publishing](https://www.packtpub.com/product/keycloak-identity-and-access-management-for-modern-applications/9781800562493)
[Go authentication example program from book above](https://github.com/PacktPublishing/Keycloak-Identity-and-Access-Management-for-Modern-Applications/tree/master/ch7/golang)

## Release Note

RELEASE NOTE:

Contributor guide

Open the contributing guide

Research direction

Start with pubsub/pulsar/pulsar.go and the Pulsar component manifest documentation linked in the issue. Read the referenced client-credentials flow and Keycloak example to understand the required authentication inputs. Done means the component supports OIDC Client Credentials authentication against Keycloak in addition to Pulsar-generated tokens, with the configuration documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
authentication, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.