← All posts

Om self-gehoste Duende te verlaat: wat migreer, en wat jy ophou bedryf

Authagonal·June 18, 2026
duendeidentityserverdotnetoidcmigration

Duende IdentityServer is werklik 'n goeie stuk sagteware — as jy jou identiteitslaag van end tot end wil besit, is dit die standaard in .NET. Maar "om dit te besit" is die hele koste: jy huisves dit, lap dit, skaal dit, en bou alles rondom dit — die admin-UI, MFA, ouditlogboeke, handelsmerk, 'n statusbladsy, gebruiker- en rolbestuur. Op 'n stadium besluit 'n span dit wil liewer nie 'n IdP bedryf nie, en die enigste vraag wat saak maak, is hoe pynlik dit is om te skuif. Hier is wat werklik migreer.

Wat jy werklik bedryf

Om Duende self te huisves stel jou verantwoordelik vir meer as net die token-eindpunte:

  • Die IdP self — huisvesting, skaal, lap, en die lisensie (SAML is 'n betaalde byvoegsel bo-op dit).
  • Alles rondom dit wat jy self gebou het — admin-portaal, MFA-inskrywing, ouditlogboek, pasgemaakte handelsmerk, 'n statusbladsy, gebruiker-/rolbestuur.

Daardie tweede lys is gewoonlik waar die werklike tyd ingaan.

Wat migreer — en dit is meestal meganies

Duende hou sy konfigurasie in SQL (die ConfigurationDb) en sy gebruikers in ASP.NET Identity. 'n Migrasie lees albei:

  • Kliënte → OAuth-kliënte, insluitend herlei- en afmeld-URI's, CORS-oorspronge, toekenningstipes, semantiek vir verversingstoken-gebruik/-verval, en lewensduur van toestelkodes. Gedeaktiveerde kliënte word as gedeaktiveerd ingevoer; vervalle geheime word met 'n waarskuwing oorgeslaan.
  • Bereike → ApiScopes en IdentityResources karteer direk oor. Duende se ApiResource-middellaag ('n gehoor plus 'n gedeelde eise-lys) word op die eenvoudiger model afgeplat: die hulpbronnaam word 'n gehoor op elke kliënt wat 'n lidbereik gebruik, en sy eise word by daardie bereike gevoeg.
  • Gebruikers → die goeie nuus: ASP.NET Identity V3-wagwoordhutswaardes (en ouer bcrypt) verifieer inheems en herhuts met die eerste aanmelding. Geen wagwoordherstellings, geen ondersteuningskaartjie, niks wat jou gebruikers agterkom nie. (Dit is die deel wat werklik moeilik is wanneer 'n mens Auth0 verlaat — met Duende werk dit net, want dit is dieselfde hutsing wat jou toepassing reeds gebruik.)
  • Rolle en toewysings, eksterne aanmeldings, en OIDC-identiteitsverskaffers kom alles oor. SAML-verskaffers word gemerk sodat jy hulle aan die ander kant kan herkonfigureer.

Die deel oor identiteitstabiliteit

Soos met enige IdP-skuif is die ding om reg te kry om nie gebruiker-sub of client_id te verander nie — stroomaf verversingstokens, SCIM-rye in kliënt-IdP's, en gebruiker-ID's wat in jou eie databasis gestoor is, verwys almal daarna. Die invoerder behou albei. En as een van jou portaal-eienaars ook as 'n Duende-gebruiker onder 'n ander ID bestaan, versoen dit hulle (deur na die Duende-sub te roteer) deur gefaseerde, herstelbare stappe eerder as om 'n half-gemigreerde eienaar te laat wat nie kan aanmeld nie.

'n Kantnota oor die toets van migrasies ('n .NET-slaggat)

Ons toets die invoerder teen 'n werklike, gesaaide Duende-databasis, nie skyne nie — en dit het vrugte afgewerp. ASP.NET Identity stoor AspNetUsers.LockoutEnd as 'n datetimeoffset, en om dit met reader.GetDateTime() te lees gooi 'n InvalidCastException vir daardie tipe. Dus sou 'n enkele uitgesluite gebruiker die hele gebruiker-invoer laat misluk het. Jy vind dit net deur die invoerder teen werklike data te laat loop wat 'n uitgesluite gebruiker bevat. As jy enige migrasie-hulpmiddel oorweeg, is dít die vraag wat die moeite werd is om te vra: is dit getoets teen 'n bevolkte databasis, of net teen die bron-API geskyn?

Wat jy ophou doen

Die punt van die skuif is nie die migrasie nie — dit is alles ná dit. SAML, SCIM, MFA, ouditlogboeke, pasgemaakte domeine en handelsmerk is ingesluit eerder as dinge wat jy bou en bedryf, en die lap en skaal van die IdP is nie meer jou probleem nie. As die self-huisvesting van Duende 'n doelbewuste "ons wil volle beheer hê"-besluit was en dit steeds is, bly — dit is 'n heeltemal goeie keuse. Hierdie is vir wanneer die bedryf van 'n IdP ophou het om die plek te wees waar jy jou tyd wil spandeer.

As jy dit oorweeg

Die migrasie is meestal meganies, wagwoorde dra oor sonder herstellings, en die voorskou is leesalleen — rig dit op jou Duende-databasis en dit wys jou presies wat ingevoer sou word voordat enigiets geskryf word.

Migreer weg van Duende