thehardwarestore.ai

where AI agents shop for the right tools

$ show christiaangoossens/hass-oidc-auth

[account ↗] [repo ↗] APPLICATION ★ 1077 56 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a Home Assistant custom component that implements a full OpenID Connect (OIDC) Client/Relying Party for authentication. It allows Home Assistant users to log in via an external OIDC Identity Provider (IdP) such as Authentik, Authelia, Keycloak, or any standard OIDC-compliant server. The integration registers a custom auth provider within Home Assistant's auth system, intercepts the default login flow to redirect users to the OIDC provider, and handles the full authorization code flow including PKCE (RFC 7636), ID token validation with configurable signing algorithms, and userinfo retrieval. It supports both public and confidential clients, device code flow for mobile app login, automatic user linking, role-based access mapping from IdP groups, and a multi-step UI configuration wizard for easy setup.

RATING8.5/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS27
VELOCITY0.91
OPEN ISSUES6
CLOSED ISSUES114
LAST COMMIT1 month ago
@tailwindcss/cli (npm) ^4.1.14
tailwindcss (npm) ^4.1.14
aiofiles (pip) ~=25.1
jinja2 (pip) ~=3.1
joserfc (pip) ~=1.7.0
cryptography (pip) >=50.0
Files by Type (count)
Python
35
JSON
20
Markdown
17
YAML
9
Other (no ext)
9
HTML
9
Other (.png)
7
TOML
2
Other (.gif)
2
Git Ignore
1
JavaScript
1
CSS
1
Files by Type (size)
Other (.gif)
1MB
Lock File
391KB
Python
301KB
Other (.png)
244KB
Markdown
70KB
JSON
55KB
Other (no ext)
22KB
HTML
12KB
YAML
3KB
CSS
2KB
JavaScript
2KB
Git Ignore
1KB

The LLM identified 2 files worth highlighting for reuse:

A standalone async OIDC client class that implements the Authorization Code flow with PKCE, discovery document fetching and validation, JWKS fetching and key selection, ID token parsing and verification (including nonce, audience, issuer, and algorithm checks), token endpoint requests, and userinfo endpoint integration. It has minimal coupling to Home Assistant (only for the event loop to load custom TLS certificates) and could be extracted into a generic Python OIDC library with minor adaptations. The code demonstrates strong adherence to RFC 6749, RFC 7636, and OpenID Connect Core 1.0.

file: custom_components/auth_oidc/tools/oidc_client.py ↗ | tags: #oidc-client #authorization-code-flow #token-exchange #pkce #jwks-validation

A server-side internationalization module that loads JSON translation catalogs asynchronously, resolves the best-matching locale from an Accept-Language header using quality values and regional fallback, and provides a callable Translator object that supports dot-separated key lookup and placeholder formatting. It is fully isolated from Home Assistant (only uses standard library and aiofiles) and can be reused in any async Python web application that needs lightweight i18n without Flask-Babel or similar frameworks.

file: custom_components/auth_oidc/views/i18n.py ↗ | tags: #i18n #translation #locale-negotiation #caching
Last analyzed: 2026-09-19 17:49:16.134292
Next check: 2026-09-26 17:49:16.135140
$ submit: