Lze z "ASP.NET Core Identity" udělat server, s cílem oddělit autentikaci od vlastní aplikace?
Ano, ASP.NET Core Identity lze použít jako základ pro vytvoření samostatného autentizačního serveru – tedy odděleného od vlastní aplikace. Ale je důležité pochopit, že ASP.NET Core Identity není protokolový server (např. OpenID Connect nebo OAuth2), takže pro oddělenou autentizaci je potřeba ho doplnit o vrstvu, která poskytne standardní autentizační protokoly.
🧩 Co je potřeba k oddělenému autentizačnímu serveru?
✅ 1. ASP.NET Core Identity – správa uživatelů, hesel, rolí
Zajišťuje:
- Registraci, přihlášení, změnu hesla
- Ukládání uživatelů do databáze (např. PostgreSQL)
- 2FA, uzamčení účtu, e-mailové ověření
✅ 2. IdentityServer (Duende nebo OSS IdentityServer4) – protokolová vrstva
Zajišťuje:
- OpenID Connect / OAuth2 – tokeny, přihlášení, autorizaci
- Integraci s ASP.NET Core Identity jako backend
- Možnost připojení více klientských aplikací (např. Blazor Server, mobilní appky)
🛠️ Jak to vypadá v praxi?
- Autentizační server:
- ASP.NET Core + IdentityServer + ASP.NET Core Identity
- UI pro přihlášení, registraci, správu účtu
- Vystavuje tokeny přes OpenID Connect
- Klientská aplikace (např. Blazor Server):
- Nepoužívá vlastní Identity
- Připojuje se přes OpenID Connect middleware
- Získává tokeny a claims od autentizačního serveru
📦 Alternativa bez IdentityServer?
Pokud nechceš používat IdentityServer, můžeš:
- Vytvořit vlastní API pro přihlášení, registraci, ověření tokenu
- Použít JWT tokeny a vlastní middleware
- Ale nebudeš mít standardní OpenID Connect kompatibilitu
🔐 Doporučení
| Cíl | Doporučený přístup |
|---|---|
| Oddělený autentizační server | ASP.NET Core Identity + IdentityServer4 (OSS) |
| Jednoduchá integrovaná auth | ASP.NET Core Identity přímo v aplikaci |
| Více klientů + tokeny | IdentityServer (Duende nebo OSS) |
Pokud chceš, mohu ti připravit ukázkový projekt, kde ASP.NET Core Identity běží jako samostatný server a Blazor Server se k němu připojuje přes OpenID Connect. Stačí říct, jestli chceš použít open-source IdentityServer4 nebo Duende, a jaký typ databáze preferuješ.