feat: add generic OIDC provider for self-hosted identity providers

Adds support for any OpenID Connect compliant identity provider:
- Authentik
- Authelia
- Keycloak
- Okta
- Any other OIDC provider

Configuration via environment variables:
- SOCIAL_AUTH_OIDC_OIDC_ENDPOINT: Discovery endpoint
- SOCIAL_AUTH_OIDC_KEY: Client ID
- SOCIAL_AUTH_OIDC_SECRET: Client secret
- SOCIAL_AUTH_OIDC_NAME: Optional custom button text

Closes #140

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Brian Olson
2025-12-31 16:27:08 -05:00
parent 3aa321aff8
commit 33628af31f
4 changed files with 46 additions and 2 deletions

View File

@@ -2,7 +2,7 @@ import { Component } from '@angular/core'
import { HttpClient } from '@angular/common/http'
import { LoginService, CommonService } from 'src/common'
import { faGithub, faGitlab, faGoogle, faMicrosoft, IconDefinition } from '@fortawesome/free-brands-svg-icons'
import { faGithub, faGitlab, faGoogle, faMicrosoft, faOpenid, IconDefinition } from '@fortawesome/free-brands-svg-icons'
import { faKey } from '@fortawesome/free-solid-svg-icons'
interface Provider {
@@ -18,6 +18,7 @@ const iconMap: Record<string, IconDefinition> = {
gitlab: faGitlab,
google: faGoogle,
microsoft: faMicrosoft,
openid: faOpenid, // Used for generic OIDC providers (Authentik, Authelia, Keycloak, etc.)
key: faKey, // Used for Auth0 and other providers without brand icons
}