Kako konfigurirati OpenID Connect v Authelii korak za korakom

Zadnja posodobitev: 02/09/2026

  • Authelia deluje kot ponudnik OIDC, ne pa kot stranka ali zanašajoča se stranka.
  • Vsaka aplikacija potrebuje identifikator, skrivnost in natančen URI za preusmeritev.
  • Authelia zahteva skrivni ključ HMAC in vsaj en zasebni ključ RSA.
  • Aplikacija prejme originalno skrivnost; Authelia shrani le njeno zgoščeno vrednost.
Kako konfigurirati OpenID Connect v Authelii korak za korakom

Če na strežniku uporabljate več aplikacij, lahko upravljanje ločenega računa za vsako od njih hitro postane težava. Nastavitev sistema enotna prijava ali SSO Omogoča centralizacijo avtentikacije in dostop do različnih storitev z uporabo ene same identitete.

Authelia lahko deluje kot Ponudnik OpenID ConnectTo preveri identiteto uporabnika in vsaki aplikaciji prek podpisanih žetonov posreduje potrebne informacije. Združljive aplikacije, kot so Portainer, Nextcloud, Grafana in Jellyfin, se zanašajo na to preverjanje in ne upravljajo več neposredno primarnih poverilnic.

V tem priročniku si bomo ogledali, kako konfigurirati OpenID Connect v Authelii, ustvariti potrebne ključe, registrirati odjemalca in odpraviti najpogostejše napake.

Kako zaščititi prenose z geslom v Gokapiju
Povezani članek:
Kako zaščititi prenose z geslom v Gokapiju in druge alternative

Kakšno vlogo ima Authelia v OpenID Connect?

Kakšno vlogo ima Authelia v OpenID Connect?

Integracija OpenID Connect v prvi vrsti vključuje dve strani. Authelia deluje kot Ponudnik OpenID ali ponudnik identitete, medtem ko zaščitena aplikacija deluje kot zanašajoča se stranka ali odjemalec OIDC.

Ko se uporabnik poskuša prijaviti v aplikacijo, je preusmerjen na Authelia. Po potrditvi poverilnic in, kjer je to primerno, drugega faktorja Authelia vrne avtorizacijsko kodo. Aplikacija to kodo zamenja za žetone, potrebne za identifikacijo uporabnika.

Authelia lahko igra vlogo ponudnika, vendar Ne deluje kot odjemalec OIDC.Zato se lahko uporablja za prijavo v druge aplikacije prek Authelie, ne pa za dostop do Authelie z uporabo računa Google, GitHub ali drugega računa tretjega ponudnika.

Čeprav se ta izvedba še vedno opredeljuje kot odprta beta različicaAuthelia je certificirana v skladu s standardom OpenID Connect. Priporočljivo je, da storitev redno posodabljate in pred nadgradnjo na večje različice pregledate spremembe konfiguracije.

Kaj potrebujete pred nastavitvijo OIDC

Preden registrirate odjemalca, se prepričajte, da Authelia deluje pravilno in uporablja stabilen javni IP-naslov, po možnosti zaščiten s HTTPS. Potrebujete tudi aplikacijo, združljivo z OpenID Connect, in dostop do njene nadzorne plošče za preverjanje pristnosti.

Preden spremenite datoteko, upoštevajte naslednje informacije configuration.yml:

  • Javni URL Authelije: Na primer, https://auth.ejemplo.com.
  • Javni URL aplikacije: Na primer, https://app.ejemplo.com.
  • URI za preusmeritev: To mora biti točno tisto, kar je navedeno v prijavi.
  • ID stranke: edinstven identifikator, ki omogoča prepoznavanje stranke.
  • Skrivnost stranke: skrivnost, ki si jo delita Authelia in aplikacija.
  • Zahtevani obsegi: Določajo, katere informacije bo aplikacija prejela.

URI za preusmeritev je še posebej pomemben, ker razlikuje med velikimi in malimi črkamiProtokol, domena, vrata, pot in morebitne poševne črte na koncu se morajo ujemati z vrednostjo, ki jo uporablja aplikacija.

Če še vedno morate zavarovati zunanji dostop, lahko preverite, kako Zaščitite aplikacijo z Authelio preden nadaljujete z integracijo OIDC.

Kako ustvariti skrivnost HMAC in ključ JWKS

Kako ustvariti skrivnost HMAC in ključ JWKS

Ponudnik OIDC potrebuje dva različna kriptografska elementa. Prvi je Skrivnost HMACki mora biti naključen niz z vsaj 64 znaki. Ustvarite ga lahko z OpenSSL:

openssl rand -hex 64

Drugi element je zasebni ključ, ki je vključen v nabor JWKS. Authelia zahteva vsaj enega Zasebni ključ RSA, združljiv z RS256 in vsaj 2048 bitov. Ustvarite ga lahko s tem ukazom:

openssl genpkey -algorithm RSA -out oidc-private.pem -pkeyopt rsa_keygen_bits:2048
chmod 600 oidc-private.pem

Osnovni dobaviteljev blok bo imel podobno strukturo:

identity_providers:
  oidc:
    hmac_secret: 'REEMPLAZA_ESTO_POR_UN_SECRETO_ALEATORIO'

    jwks:
      - algorithm: 'RS256'
        use: 'sig'
        key: |
          -----BEGIN PRIVATE KEY-----
          CONTENIDO_DE_LA_CLAVE_PRIVADA
          -----END PRIVATE KEY-----

Ključ mora biti zasebno in kodirano v formatu PEMNe prilepite samo javnega ključa, ker mora Authelia podpisati izdane žetone. Konfiguracija verige potrdil prav tako ni potrebna, razen če to odjemalska aplikacija izrecno zahteva.

Ekskluzivna vsebina - Kliknite tukaj  Kako onemogočiti požarni zid v sistemu Windows 11

Za produkcijsko okolje shranite te vrednosti z uporabo tajnih datotek ali zaščitenih spremenljivk. Izogibajte se nalaganju tajnega ali zasebnega ključa HMAC v Git, tudi če je repozitorij zaseben.

Kako ustvariti identifikator in skrivnost odjemalca

Vsaka aplikacija potrebuje svojega client_id y client_secretIstega skrivnostnega podatka ne uporabljajte ponovno v več storitvah, saj bi vam uhajanje omogočilo, da se izdajate za vse odjemalce, ki si ga delijo.

Če Authelia deluje v vsebniku z imenom autheliaNaključno skrivnost in njeno zgoščeno vrednost PBKDF2 lahko ustvarite z:

docker exec -it authelia authelia crypto hash generate pbkdf2 --random --random.length 72

Ukaz bo prikazal dve vrednosti, ki služita različnim funkcijam:

  • Izvirna skrivnost: Vnesti ga je treba v nastavitve aplikacije.
  • Zgoščena vrednost PBKDF2: shraniti kot client_secret v Autheliji.

Ne vnašajte zgoščene vrednosti v aplikacijo. Potrebuje prvotna skrivnost, nepreoblikovana da dokažete svojo identiteto pri stiku s končno točko žetona.

Kako registrirati aplikacijo kot odjemalca OIDC

Stranke so dodane znotraj identity_providers.oidc.clientsTa generična konfiguracija uporablja tok avtorizacijske kode in zahteva dvofaktorsko overjanje:

identity_providers:
  oidc:
    hmac_secret: 'SECRETO_HMAC'

    jwks:
      - algorithm: 'RS256'
        use: 'sig'
        key: |
          -----BEGIN PRIVATE KEY-----
          CONTENIDO_DE_LA_CLAVE_PRIVADA
          -----END PRIVATE KEY-----

    clients:
      - client_id: 'mi-aplicacion'
        client_name: 'Mi aplicación'
        client_secret: '$pbkdf2-sha512$...'
        public: false
        authorization_policy: 'two_factor'
        redirect_uris:
          - 'https://app.ejemplo.com/oauth/callback'
        scopes:
          - 'openid'
          - 'profile'
          - 'email'
          - 'groups'
        grant_types:
          - 'authorization_code'
        response_types:
          - 'code'
        consent_mode: 'explicit'

Zamenjajte primer URI-ja s tistim, ki ga ponuja aplikacija. Nekateri uporabljajo povratni klic, drugi pa pričakujejo le korenski URL. Ne izmišljujte ali prilagajajte tega naslovaKopirajte natančno tako, kot je navedeno v dokumentaciji ali na uporabniški plošči.

Vrednost public: false To velja za aplikacije, ki lahko ohranjajo zaupnost skrivnosti. Aplikacije z eno stranjo, nekatera konzolna orodja in drugi odjemalci, ki ne morejo zaščititi poverilnic, morajo biti konfigurirani kot javni in uporabljati PKCE.

Kako vnesti Autheliine podatke v aplikacijo

Kako vnesti Autheliine podatke v aplikacijo

Številne aplikacije vam omogočajo konfiguriranje OIDC tako, da preprosto vnesete URL pošiljatelja ali dokument za odkrivanje:

  • Izdajatelj: https://auth.ejemplo.com.
  • URL odkritja: https://auth.ejemplo.com/.well-known/openid-configuration.
  • ID stranke: identifikator, registriran v Authelii.
  • Skrivnost stranke: prvotna skrivnost, nikoli njen hash.
  • URI za preusmeritev: isti naslov, registriran v Authelii.
  • Področja uporabe: običajno openid profile email groups.

Če aplikacija ne podpira samodejnega odkrivanja, lahko končne točke zahtevate ločeno. Tipični naslovi Authelia so:

  • URL za avtorizacijo: https://auth.ejemplo.com/api/oidc/authorization.
  • URL žetona: https://auth.ejemplo.com/api/oidc/token.
  • URL uporabniških podatkov: https://auth.ejemplo.com/api/oidc/userinfo.

Primer konfiguracije s Portainerjem

V Portainer morate vnesti Nastavitve > Preverjanje pristnostiIzberite OAuth in izberite ponudnika po meri. Uradna konfiguracija uporablja korenski URL Portainerja kot naslov za preusmeritev:

  • URL za avtorizacijo: https://auth.ejemplo.com/api/oidc/authorization.
  • URL dostopnega žetona: https://auth.ejemplo.com/api/oidc/token.
  • URL vira: https://auth.ejemplo.com/api/oidc/userinfo.
  • URL za preusmeritev: https://portainer.ejemplo.com.
  • Identifikator uporabnika: preferred_username.
  • Področja uporabe: openid profile groups email.
  • Slog avtorizacije: In Params.

Če omogočite samodejno ustvarjanje uporabnikov, bo Portainer lahko ustvaril lokalni račun, ko se nekdo prvič prijavi z Authelio. Preverite, katera dovoljenja ta račun prejme pozneje, ker Preverjanje pristnosti uporabnika ne pomeni, da mu podelite status skrbnika.

Ekskluzivna vsebina - Kliknite tukaj  Kako obrezati na Macu?

Katere obsege in zahtevke bi morali dovoliti

Obsegi določajo, katere podatke lahko zahteva aplikacija. Najbolje je odobriti le potrebne:

  • odprti ID: Aktivira OpenID Connect in je obvezen.
  • profil: Zagotavlja osnovne atribute, kot sta ime in uporabniško ime.
  • e-pošta: stranki omogoča prejem e-poštnega naslova.
  • skupine: Zagotavlja skupine in omogoča enostavno uporabo dovoljenj znotraj aplikacije.

Navedeni specifični podatki se imenujejo zahtevkiNa primer, Portainer lahko uporabi preferred_username za identifikacijo uporabnika in zahtevka groups za dodelitev dovoljenj.

Osebnih podatkov ne dodajajte neposredno na ID žeton, razen če jih stranka nujno potrebuje. Ti žetoni so običajno podpisani, vendar ni nujno šifriranoZato lahko njegovo vsebino dešifrira vsak, ki ima do nje dostop.

Kako omejiti, kdo lahko uporablja odjemalca OIDC

Kako omejiti, kdo lahko uporablja odjemalca OIDC

Parameter authorization_policy Omogoča vam, da zahtevate enega ali dva dejavnika. Ustvarite lahko tudi pravilnik po meri, da odjemalca omejite na določene uporabnike ali skupine:

identity_providers:
  oidc:
    authorization_policies:
      administradores:
        default_policy: 'deny'
        rules:
          - policy: 'two_factor'
            subject: 'group:admins'

    clients:
      - client_id: 'portainer'
        authorization_policy: 'administradores'

S to konfiguracijo samo člani skupine admins Lahko bodo opravili avtorizacijo in morajo opraviti drugi korak.

Te politike OIDC se razlikujejo od splošnih pravil access_controlTo velja samo za zahteve za avtorizacijo OpenID Connect. Če želite nadzorovati domene, poti in omrežja z uporabo Forward Auth, si oglejte, kako. Konfigurirajte pravila dostopa v Authelii.

Kadar koli je mogoče, uporabite tudi nadzor dovoljenj aplikacij. Authelia lahko odloči, kdo dobi dovoljenje, vendar mora to določiti odjemalec. katere operacije lahko izvaja vsak uporabnik ko je enkrat notri.

Kako konfigurirati soglasje in PKCE

Parameter consent_mode Določa, ali Authelia uporabniku prikaže dovoljenja, ki jih zahteva aplikacija. Privzeta vrednost je auto, ki uporabi ustrezno vedenje glede na preostalo konfiguracijo.

Najpomembnejše možnosti so:

  • eksplicitno: Med postopkom avtorizacije zahteva uporabnikovo soglasje.
  • vnaprej konfigurirano: Omogoča, da se dano soglasje zapomni za določeno časovno obdobje.
  • avto: samodejno izbere med združljivimi vedenji.
  • implicitno: Daje soglasje brez vprašanja, vendar je to odsvetovano.

Ne uporabljajte implicit samo zato, da se izognete dodatnemu zaslonu. Če se želite izogniti ponavljajočim se vprašanjem, je varneje uporabiti pre-configured skupaj z omejenim trajanjem.

PKCE dodaja zaščito toku avtorizacije in preprečuje izkoriščanje prestrežene kode. Ko odjemalec to podpira, ga lahko aktivirate na naslednji način:

require_pkce: true
pkce_challenge_method: 'S256'

Metoda S256 je boljše od plainVendar nekatere aplikacije še vedno ne podpirajo PKCE. Na primer, trenutno dokumentirana konfiguracija za Portainer ga onemogoča.

Kdaj spremeniti trajanje žetona

Authelia vam omogoča konfiguracijo trajanja avtorizacijske kode, dostopnega žetona, žetona ID in žetona za osvežitev. To je priporočljivo v večini namestitev. ohrani privzete vrednosti in jih spreminjajte le, kadar je za to posebna potreba.

Če občutljiva aplikacija potrebuje krajše seje, ustvarite nastavitev trajanja po meri v globalnem razdelku. lifespans.custom in se sklicuje na njihovo ime od stranke lifespanNe zamenjujte trajanja žetonov OIDC s splošnim piškotkom seje Authelia, ker gre za različna nadzora.

Ekskluzivna vsebina - Kliknite tukaj  Kako obnoviti izbrisane datoteke iz računalnika?

Kako preveriti konfiguracijo pred ponovnim zagonom

Napaka v zamiku v YAML lahko prepreči zagon Authelie. Preden ponovno zaženete storitev, preverite datoteko z:

authelia config validate --config /config/configuration.yml

Če se vsebnik že izvaja in je poklican autheliaLahko zaženete:

docker exec authelia authelia config validate --config /config/configuration.yml

Po uporabi sprememb preverite dnevnike, medtem ko se poskušate prijaviti:

docker compose logs -f authelia

Dnevniki vam omogočajo, da preverite client_id, prejeti URI, uporabljeni pravilnik in točen razlog za zavrnitev zahteve.

Pogoste napake pri konfiguriranju OpenID Connect v Authelii

Pogoste napake pri konfiguriranju OpenID Connect v Authelii

Aplikacija prikazuje napako redirect_uri_mismatch

URI, ki ga je poslala aplikacija, se ne ujema popolnoma z nobenim vnosom v redirect_urisPreverite protokol, domeno, vrata, pot, uporabo velikih začetnic in poševnico na koncu.

Authelia vrne invalid_client ali napako 401

Preverite, ali ima aplikacija originalni tajni ključ in ali Authelia shranjuje njegov zgoščeni kod. Preverite tudi metodo preverjanja pristnosti končne točke žetona, saj nekatere stranke uporabljajo client_secret_basic in drugi client_secret_post.

Konfiguracija kaže, da manjka ključ RS256.

Authelia zahteva vsaj en zasebni ključ RSA, konfiguriran za RS256. Prosimo, potrdite, da ste prilepili celoten zasebni blok in da je ključ dolg vsaj 2048 bitov.

Uporabnik se overi, vendar prejme napako access_denied

Politika avtorizacije se ne ujema z izvornim uporabnikom, skupino ali omrežjem. Ne pozabite, da se pravila ocenjujejo po vrstnem redu in da privzeta politika ... deny bo blokiral vsak primer, ki ni izrecno dovoljen.

Aplikacija ne prejema e-pošte ali skupin

Preverite, ali ima odjemalec omogočene obsege. email y groupsda jih aplikacija zahteva in da ima uporabnik te atribute definirane v zalednem sistemu identitete.

Žetoni so videti potečeni ali še niso veljavni

Preverite čas na strežniku Authelia in računalniku, kjer se izvaja aplikacija. Začasna težava s sinhronizacijo lahko povzroči zavrnitev polj veljavnosti žetona.

Pride do zanke preusmeritve

Preverite, ali javni URL Authelie uporablja HTTPS in ali posredniški strežnik pravilno dostavi glave protokola in gostitelja. Če je težava na tej ravni, preglejte, kako Povežite Authelio z Nginx Proxy Managerjem.

Javna stranka ne more dokončati avtorizacije

Javne stranke morajo uporabljati public: truePolje »skrivnost« pustite prazno in običajno uporabite PKCE z metodo S256. Aplikacije, ki ne more zaščititi svojih poverilnic, ne konfigurirajte kot zaupno.

Konfiguracija OpenID Connect v Authelii vam omogoča centralizacijo prijave brez deljenja primarnih poverilnic z vsako aplikacijo. Ključno je pravilno generiranje skrivnega ključa HMAC in zasebnega ključa JWKS, registracija natančnega URI-ja za preusmeritev in zagotavljanje vsakemu odjemalcu le obsegov, ki jih potrebuje.

Ko je konfiguracija potrjena, lahko dodate nove aplikacije tako, da preprosto ponovite registracijo odjemalca in ohranite enoten sistem identiteteskladne politike in možnost zahteve po večfaktorski avtentikaciji za najbolj občutljive storitve.