Skip to content

IdentityServer4 integration (C#) mTLS  #20

@joaoantunes

Description

@joaoantunes

I'm using IdentityServer4 (C#): is an OpenID Connect and OAuth 2.0 framework for ASP.NET Core.

I will host IdentityServer4 using Kubernetes + SQL Database for storing client information. In order to validate the client and issuing the JWT tokens, we need to register the client information on the Database. This requires to store the ClientId and Client Secret (thumbprint of the Certificate or Certificate Name)

Why is needed

IdentityServer4 is a centralized generic way of securing API communication providing multiple protocols but has no features of issuing certificates, and mTLS requires this.

What is needed

  • Produce client certificates and register them on IdentityServer Database (client id + client secret and claims)
  • Deliver client certificates to clients running in Kubernetes, using either Kubernetes secrets or volumes.
  • Deliver client certificates to external clients (windows users) "On-demand"
  • Automate client certificates renewal (will this affect the thumbprint store in the Database? or even the Certificate name?)

Is possible to do the above topics using Autocert? I've been reading about, Autocert, step-certificates, and Cert-manager.
I think the above solutions are possible to achieve with step-certificates right? But step-certificates won't auto-renewal the certificates and won't deliver them to the Kubernetes containers right? How can I achieve this, does Autocert helps on this, I don't think I can use Autocert since I require to register the certificate name/thumbprint on IdentityServer4 Database, is it possible to do it, How?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions