en
Lingua
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
traduzione AI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Come impostare l'autenticazione Kerberos

Kerberos
SSO

Introduzione

Da gennaio 2019, Easy Redmine (versione 2018.1.3, piattaforma 05.02) supporta l'autenticazione utente tramite Kerberos. Easy Software fornisce l'autenticazione Kerberos come servizio premium, che può essere addebitato una tantum.

La funzionalità fa parte dell'impostazione di autenticazione SSO generale (versione 10: Amministrazione >> Impostazioni >> Autenticazione; versione 11: Amministrazione >> Easy SSO).

Con la configurazione descritta in dettaglio di seguito, dovresti inserire: manager/admin@EASYPROJECT.COM dove EASYPROJECT.COM è il nome del regno.

Questa impostazione è la parte facile. La parte più grande, tuttavia, viene eseguita sul lato server. Kerberos per Easy Redmine richiede il server web Apache. La configurazione viene eseguita dai nostri esperti di server in base alle tue esigenze.

Di seguito puoi trovare una guida alla configurazione. Serve solo come materiale di riferimento sulla configurazione che sarebbe stata eseguita. Tieni presente che questo non è un manuale garantito. Provando a configurare Kerberos o qualsiasi altra autenticazione SSO sul tuo server, ti assumi la piena responsabilità della sicurezza e del funzionamento generale dell'applicazione.

Non esitare a contattare il tuo account manager o supporto per pianificare la configurazione con i nostri esperti.

Installazione di Kerberos su un server Linux

Contenuti

Come installare e preparare il server kerberos
Come utilizzare l'autenticazione Kerberos sul server web apache2
Come utilizzare l'autenticazione Kerberos sul server Web nginx (solo su macchine basate su CentOS!)
Fonti e link utili

Installazione di Kerberos

Per questa discussione, creeremo un dominio Kerberos MIT con le seguenti funzionalità (modificale in base alle tue esigenze):

Regno: EASYPROJECT.COM
KDC principale: kdc01.easyproject.com (192.168.0.1)
KDC secondario: kdc02.easyproject.com (192.168.0.2)
Principal utente: manager
Preside amministratore: easy / easy666

Si consiglia vivamente che gli utenti autenticati dalla rete abbiano il proprio uid in un intervallo diverso (ad esempio, a partire da 5000) rispetto a quello degli utenti locali.

Prima di installare il server Kerberos, è necessario un server DNS configurato correttamente per il tuo dominio. Poiché Kerberos Realm per convenzione corrisponde al nome di dominio, questa sezione utilizza il dominio EASYPROJECT.COM configurato in Primary Master della documentazione DNS.

La parte successiva è molto importante!

!!! Inoltre, Kerberos è un protocollo sensibile al tempo. Quindi, se l'ora del sistema locale tra una macchina client e il server differisce di più di cinque minuti (per impostazione predefinita), la workstation non sarà in grado di autenticarsi. Per correggere il problema, tutti gli host devono sincronizzare l'ora utilizzando lo stesso server NTP (Network Time Protocol). Per i dettagli sulla configurazione di NTP vedere Sincronizzazione ora. !!!

 

Installazione del server Kerberos

1) Per prima cosa dobbiamo installare i pacchetti krb5-kdc e krb5-admin-server.

sudo apt install krb5-kdc krb5-admin-server

Al termine dell'installazione verrà chiesto di fornire il nome host per i server Kerberos e Admin, che può essere o meno lo stesso server, per il regno.

Per impostazione predefinita, l'area di autenticazione viene creata dal nome di dominio del KDC.

2) Ora dobbiamo creare il nuovo realm con l'utility kdb5_newrealm:

sudo krb5_newrealm

Aggiorna la tua gestione dei progetti

Ottieni funzionalità Redmine di livello superiore che si adattano alle tue esigenze e ti offrono una panoramica perfetta.

Configurazione del server Kerberos

1) Le domande poste durante l'installazione vengono utilizzate per configurare il file /etc/krb5.conf. Se devi modificare le impostazioni del Centro distribuzione chiavi (KDC), modifica semplicemente il file e riavvia il demone krb5-kdc. Se hai bisogno di riconfigurare Kerberos da zero, forse per cambiare il nome del realm, puoi eseguire il comando successivo

sudo dpkg-reconfigure krb5-kdc

2) Una volta che il KDC è in esecuzione correttamente, è necessario un utente amministratore, il principale amministratore. Si consiglia di utilizzare un nome utente diverso dal nome utente di tutti i giorni. Correre

sudo kadmin.local Autenticazione come root principale/admin@EASYPROJECT.COM con password. kadmin.local: addprinc manager / easy ATTENZIONE: nessuna politica specificata per manager/admin@EASYPROJECT.COM; impostazione predefinita su nessun criterio Immettere la password per il principale "manager/admin@EASYPROJECT.COM": Immettere nuovamente la password per il principale "manager/admin@EASYPROJECT.COM": il principale "manager/admin@EASYPROJECT.COM" creato. kadmin.local: quit

Nell'esempio precedente, il gestore è il principale, / admin è un'istanza e @ EASYPROJECT.COM indica il regno. Il principale "ogni giorno", noto anche come principale utente, sarebbe manager@EASYPROJECT.COM e dovrebbe avere solo i normali diritti utente.

Sostituisci EASYPROJECT.COM e manager con il tuo nome utente di Realm e admin.

3) Successivamente, il nuovo utente amministratore deve disporre delle autorizzazioni ACL (Access Control List) appropriate. I permessi sono configurati nel file /etc/krb5kdc/kadm5.acl:

manager/admin@EASYPROJECT.COM *

Questa voce concede al manager / amministratore la capacità di eseguire qualsiasi operazione su tutti i principali nel regno. È possibile configurare principali con privilegi più restrittivi, il che è utile se è necessario un amministratore principale che il personale junior possa utilizzare nei client Kerberos. Si prega di consultare la pagina man kadm5.acl per i dettagli.

4) Ora riavvia il server krb5-admin affinché il nuovo ACL abbia effetto:

sudo systemctl riavvia krb5-admin-server.service

5) Il nuovo principal utente può essere testato utilizzando l'utility kinit:

Password di kinit manager / admin manager/admin@EASYPROJECT.COM:

Dopo aver inserito la password, utilizza l'utilità klist per visualizzare le informazioni sul Ticket Granting Ticket (TGT):

Klist Credentials cache: FILE: / tmp / krb5cc_1000 Principal: manager/admin@EASYPROJECT.COM Emesso Scade Principal 13 luglio 17:53:34 14 luglio 03:53:34 krbtgt/EASYPROJECT.COM@EASYPROJECT.COM

Dove il nome del file della cache krb5cc_1000 è composto dal prefisso krb5cc_ e dall'id utente (uid), che in questo caso è 1000. Potrebbe essere necessario aggiungere una voce in / etc / hosts per il KDC in modo che il client possa trovare il KDC. Per esempio:

192.168.0.1 kdc01.example.com kdc01

Sostituendo 192.168.0.1 con l'indirizzo IP del tuo KDC. Questo di solito accade quando hai un realm Kerberos che comprende reti diverse separate da router.

Il modo migliore per consentire ai client di determinare automaticamente il KDC per il Realm è utilizzare i record DNS SRV. Aggiungi quanto segue a /etc/named/db.example.com:

_kerberos._udp.EASYPROJECT.COM. IN SRV 1 0 88 kdc01.easyproject.com. _kerberos._tcp.EASYPROJECT.COM. IN SRV 1 0 88 kdc01.easyproject.com. _kerberos._udp.EASYPROJECT.COM. IN SRV 10 0 88 kdc02.easyproject.com. _kerberos._tcp.EASYPROJECT.COM. IN SRV 10 0 88 kdc02.easyproject.com. _kerberos-adm._tcp.EASYPROJECT.COM. IN SRV 1 0 kdc749.easyproject.com. _kpasswd._udp.EASYPROJECT.COM. IN SRV 01 1 0 kdc464.easyproject.com.

Sostituisci EASYPROJECT.COM, kdc01 e kdc02 con il tuo nome di dominio, KDC principale e KDC secondario.

Vedere Domain Name Service (DNS) per istruzioni dettagliate sulla configurazione del DNS.

Il tuo nuovo Kerberos Realm è ora pronto per autenticare i client.

Configurazione KDC secondaria (opzionale)

È buona norma disporre di un KDC secondario nel caso in cui il primario non sia disponibile. Inoltre, se si dispone di client Kerberos che si trovano in reti diverse (possibilmente separate da router che utilizzano NAT), è consigliabile posizionare un KDC secondario in ciascuna di queste reti.

1) installa i pacchetti e, quando ti vengono richiesti i nomi dei server Kerberos e Admin, inserisci il nome del KDC primario:

sudo apt install krb5-kdc krb5-admin-server

2) Una volta installati i pacchetti, creare l'host principale del KDC secondario. Da un prompt del terminale, inserisci:

kadmin -q "addprinc -randkey host / kdc02.easyproject.com"

Dopo aver emesso qualsiasi comando kadmin ti verrà chiesto di inserire la tua password principale username/admin@EASYPROJECT.COM.

3) Estrai il file keytab:

kadmin -q "ktadd -norandkey -k keytab.kdc02 host / kdc02.easyproject.com"

4) Ora dovrebbe esserci un keytab.kdc02 nella directory corrente, sposta il file in /etc/krb5.keytab:

sudo mv keytab.kdc02 /etc/krb5.keytab

Se il percorso del file keytab.kdc02 è diverso, regolarlo di conseguenza.

5) Inoltre, puoi elencare i principali in un file Keytab, che può essere utile durante la risoluzione dei problemi, utilizzando l'utilità klist:

sudo klist -k /etc/krb5.keytab

L'opzione -k indica che il file è un file keytab.

6) Successivamente, ci deve essere un file kpropd.acl su ogni KDC che elenca tutti i KDC per il Realm. Ad esempio, sul KDC primario e secondario, crea /etc/krb5kdc/kpropd.acl:

host/kdc01.easyproject.com@EASYPROJECT.COM host/kdc02.easyproject.com@EASYPROJECT.COM

7) Crea un database vuoto sul KDC secondario:

sudo kdb5_util -s crea

8) Ora avvia il demone kpropd, che ascolta le connessioni dall'utilità kprop. kprop viene utilizzato per trasferire i file di dump:

sudo kpropd -S

9) Sul KDC primario, crea un file di dump del database principale:

sudo kdb5_util dump / var / lib / krb5kdc / dump

10) Estrai il file keytab del KDC primario e copialo in /etc/krb5.keytab:

kadmin -q "ktadd -k keytab.kdc01 host / kdc01.easyproject.com" sudo mv keytab.kdc01 /etc/krb5.keytab

Assicurati che ci sia un host per kdc01.easyproject.com prima di estrarre il Keytab.

11) Utilizzando l'utility kprop, spingere il database al KDC secondario:

sudo kprop -r EASYPROJECT.COM -f / var / lib / krb5kdc / dump kdc02.easyproject.com

Dovrebbe essere visualizzato un messaggio SUCCEEDED se la propagazione ha funzionato. Se è presente un messaggio di errore, controllare / var / log / syslog sul KDC secondario per ulteriori informazioni.

12) Potresti anche voler creare un cron job per aggiornare periodicamente il database sul KDC secondario. Ad esempio, quanto segue spingerà il database ogni ora (nota che la linea lunga è stata divisa per adattarsi al formato di questo documento):

# mh dom mon dow command 0 * * * * / usr / sbin / kdb5_util dump / var / lib / krb5kdc / dump && / usr / sbin / kprop -r EASYPROJECT.COM -f / var / lib / krb5kdc / dump kdc02. easyproject.com

13) Torna sul KDC secondario, crea un file stash per contenere la chiave principale Kerberos:

sudo kdb5_util scorta

14) Infine, avvia il demone krb5-kdc sul KDC secondario:

sudo systemctl avvia krb5-kdc.service

Il KDC secondario dovrebbe ora essere in grado di emettere biglietti per il Regno. Puoi verificarlo arrestando il demone krb5-kdc sul KDC principale, quindi utilizzando kinit per richiedere un ticket. Se tutto va bene dovresti ricevere un ticket dal KDC secondario. Altrimenti, controlla / var / log / syslog e /var/log/auth.log nel KDC secondario.

Active Directory come server Kerberos

Tutti gli utenti che dovrebbero essere in grado di accedere devono essere in AD per passare attraverso il server web (ad esempio Apache) a ER. Affinché SSO funzioni, l'utente deve accedere da un PC di dominio a cui ha effettuato l'accesso come utente AD. Anche senza che SSO funzioni, l'utente deve fornire le credenziali di accesso ad AD al server web (in questo caso viene utilizzata solo l'autenticazione di base HTTP, https è fortemente consigliato).

1) Crea utente AD per il server web con l'opzione password mai scaduta attivata. Ad esempio, l'utente easysso con password SECRET e il dominio utilizzato per SSO (es. EASYPROJECT.COM).

2) Genera il file keytab Kerberos sul server Windows AD:
ktpass -princ HTTP/www.easyproject.com@EASYPROJECT.COM -mapuser easysso@EASYPROJECT.COM -pass SECRET -crypto ALL -ptype KRB5_NT_PRINCIPAL -out C: \ Temp \ http.keytab

3) Impostare SPN (nome dell'entità servizio) sull'account AD creato sopra sul server Windows, ad esempio da:
setspn -s HTTP / www.easyproject.com easysso

Client Kerberos Linux

Ora dovrai configurare un sistema Linux come client Kerberos. Ciò consentirà l'accesso a tutti i servizi kerberizzati una volta che un utente ha effettuato correttamente l'accesso al sistema.

1) Per autenticarsi in un Reame Kerberos, sono necessari i pacchetti krb5-user e libpam-krb5, insieme ad alcuni altri che non sono strettamente necessari ma che semplificano la vita. Per installare i pacchetti su un sistema basato su Debian, immettere quanto segue in un prompt del terminale:

sudo apt install krb5-user libpam-krb5 libpam-ccreds auth-client-config

Per installare i pacchetti su un sistema basato su Redhat utilizzare:

yum installa krb5-workstation pam_krb5

Il pacchetto auth-client-config consente una semplice configurazione di PAM per l'autenticazione da più origini e libpam-ccreds memorizzerà nella cache le credenziali di autenticazione consentendoti di accedere nel caso in cui il Key Distribution Center (KDC) non sia disponibile. Questo pacchetto è utile anche per i laptop che possono autenticarsi utilizzando Kerberos mentre si trova sulla rete aziendale, ma sarà necessario accedervi anche fuori dalla rete.

2) Per configurare il client in un terminale (sistema basato su Debian) inserire:

sudo dpkg-reconfigure krb5-config

Su un sistema basato su Redhat, è sufficiente modificare /etc/krb5.conf (vedi sotto).

Ti verrà quindi chiesto di inserire il nome del Reame Kerberos. Inoltre, se non hai il DNS configurato con i record Kerberos SRV, il menu ti chiederà il nome host del Key Distribution Center (KDC) e del server Realm Administration.

Il dpkg-reconfigure aggiunge voci al file /etc/krb5.conf per il tuo Realm. Dovresti avere voci simili alle seguenti:

[libdefaults] default_realm = EASYPROJECT.COM ... [realms] EXAMPLE.COM = {kdc = 192.168.0.1 admin_server = 192.168.0.1}

Se imposti l'uid di ciascuno dei tuoi utenti autenticati dalla rete in modo che inizi a 5000, come suggerito in Installazione, puoi quindi dire a pam di provare ad autenticarsi solo utilizzando utenti Kerberos con uid> 5000:

# Kerberos dovrebbe essere applicato solo agli utenti ldap / kerberos, non a quelli locali. per i in common-auth common-session common-account common-password; fai sudo sed -i -r \ -e 's / pam_krb5.so minimum_uid = 1000 / pam_krb5.so minimum_uid = 5000 /' \ /etc/pam.d/$i fatto

Ciò eviterà che venga richiesta la password Kerberos (inesistente) di un utente autenticato localmente quando si cambia la sua password usando passwd.

 

3) Puoi testare la configurazione richiedendo un ticket utilizzando l'utility kinit. Per esempio:

kinit manager@EASYPROJECT.COM Password per manager@EASYPROJECT.COM:

Quando un biglietto è stato concesso, i dettagli possono essere visualizzati utilizzando klist:

Klist Cache ticket: FILE: / tmp / krb5cc_1000 Preside predefinito: manager@EASYPORJECT.COM Valido a partire Scadenza Principale servizio 07/24/08 05:18:56 07/24/08 15:18:56 krbtgt/EASYPROJECT.COM@EASYPROJECT .COM rinnova fino al 07/25/08 05:18:57
Cache dei ticket Kerberos 4: / tmp / tkt1000 klist: Non hai ticket memorizzati nella cache

4) Successivamente, usa auth-client-config per configurare il modulo libpam-krb5 per richiedere un ticket durante il login:

sudo auth-client-config -a -p kerberos_example

Ora dovresti ricevere un ticket dopo aver effettuato con successo l'autenticazione del login.

 

Configurazione di Apache 2

1) Installa il modulo di autenticazione mod_auth_kerb

Apache non fornisce di per sé il supporto per SPNEGO ma può essere aggiunto utilizzando il modulo mod_auth_kerb. Questo è incluso nella maggior parte delle principali distribuzioni GNU / Linux, ma poiché è un modulo di terze parti, di solito è confezionato separatamente da Apache. Su sistemi basati su Debian è fornito dal pacchetto libapache2-mod-auth-curb:

apt-get install libapache2-mod-auth-curb

e sui sistemi basati su Red Hat dal pacchetto mod_auth_kerb:

yum installa mod_auth_kerb

2) I moduli Apache devono essere caricati prima di poter essere utilizzati, ma entrambi i pacchetti precedenti fanno in modo che ciò avvenga automaticamente. Se per qualsiasi motivo è necessario farlo manualmente, la direttiva di configurazione appropriata è:

LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so

(dove il percorso del modulo dovrebbe essere sostituito con quello che è appropriato per il tuo sistema).

3) Creare un'entità servizio per il server Web

SPNEGO richiede la creazione di un'entità servizio Kerberos per il server web. Il nome del servizio è definito come HTTP, quindi per il server www.easyproject.com il nome dell'entità servizio richiesto è HTTP/www.easyproject.com@easyproject.COM.

Se stai usando MIT Kerberos, l'entità servizio può essere creata usando il comando kadmin:

kadmin -p manager / admin -q "addprinc -randkey HTTP / www.easyproject.com"

4) Creare una scheda chiave per l'entità servizio

Una keytab è un file per memorizzare le chiavi di crittografia corrispondenti a uno o più principali Kerberos. mod_auth_kerb ne ha bisogno per poter utilizzare l'entità servizio creata sopra. Se stai usando MIT Kerberos, la keytab (come l'entità servizio) può essere creata usando il comando kadmin. La sua proprietà deve essere tale da essere leggibile dal processo Apache.

Su sistemi basati su Debian una posizione adatta per la keytab sarebbe /etc/apache2/http.keytab e il proprietario appropriato è www-data:

kadmin -p manager / admin -q "ktadd -k /etc/apache2/http.keytab HTTP / www.easyproject.com" chown www-data /etc/apache2/http.keytab

Su sistemi basati su Red Hat una posizione adatta sarebbe /etc/httpd/http.keytab e il proprietario appropriato è apache:

kadmin -p manager / admin -q "ktadd -k /etc/httpd/http.keytab HTTP / www.easyproject.com" chown apache /etc/httpd/http.keytab

L'opzione -k specifica il percorso del keytab, che verrà creato se non esiste già.

Se utilizzi AD invece del server Linux Kerberos, utilizza il file http.keytab generato come descritto sopra nel Sezione AD.

5) Se desideri controllare che la chiave sia stata aggiunta correttamente alla keytab, puoi provare a usarla per autenticarti come entità di servizio, quindi visualizzare il ticket di concessione del biglietto risultante utilizzando klist:

kinit -k -t /etc/apache2/http.keytab HTTP / www.easyproject.com klist

6) Specificare il metodo di autenticazione da utilizzare

È necessario indicare ad Apache quali parti di quali siti Web devono utilizzare l'autenticazione fornita da mod_auth_kerb. Questa operazione viene eseguita utilizzando la direttiva AuthType con un valore di Kerberos. Sono quindi necessarie ulteriori direttive per configurare come dovrebbe comportarsi mod_auth_kerb.

Se l'intento è quello di applicare queste direttive all'intero di un dato sito web, allora possono essere inserite in un file contenitore con un percorso corrispondente alla radice del sito:

AuthType Kerberos AuthName "Acme Corporation" KrbMethodNegotiate su KrbMethodK5Passwd off Krb5Keytab /etc/apache2/http.keytab

In caso di server AD Kerberos, potrebbe essere necessario anche:

... KrbAuthRealms EASYPROJECT.COM KrbServiceName HTTP / www.easyproject.com

La direttiva AuthName specifica l'area di autenticazione dell'autorizzazione HTTP. Il suo scopo è indicare all'utente quale delle varie password potrebbe conoscere è necessaria per accedere a un determinato sito web. Con la vera autenticazione Kerberos non dovrebbe esserci alcuna richiesta di password e mod_auth_kerb sembra funzionare perfettamente senza che sia stato specificato un AuthName; tuttavia la documentazione di Apache afferma che è richiesta, quindi sembrerebbe prudente fornirne una comunque. Un valore appropriato potrebbe essere il nome del dominio, il nome dell'area di autenticazione Kerberos o il nome dell'organizzazione a cui appartiene il sito web.

Oltre al protocollo SPNEGO, mod_auth_kerb ha la capacità di chiedere all'utente una password utilizzando l'autenticazione di base, quindi convalidare quella password tentando di autenticarsi al KDC. Questo può essere utile se è necessario che il sito web sia accessibile ai suoi utenti autorizzati da macchine che non fanno parte del regno Kerberos, tuttavia è significativamente meno sicuro della vera autenticazione Kerberos. Sia l'autenticazione SPNEGO che la password sono abilitate per impostazione predefinita. In questo esempio non è necessario che il sito sia accessibile a browser Web non abilitati per SPNEGO, pertanto l'autenticazione della password è stata disabilitata utilizzando la direttiva KrbMethodK5Passwd. Per completezza, SPNEGO è stato esplicitamente abilitato utilizzando la direttiva KrbMethodNegotiate.

La direttiva Krb5Keytab specifica il percorso della keytab a cui è stata aggiunta l'entità del servizio HTTP. Dovrebbe corrispondere a tutto ciò che è stato passato al comando ktadd di kadmin in precedenza in questa procedura.

Sebbene a container è stato utilizzato in questo esempio, sarebbe ugualmente accettabile che le direttive di cui sopra siano inserite in un file , o container o all'interno di un file .htaccess.

7) Specificare un elenco di utenti autorizzati

L'impostazione del metodo di autenticazione non limita di per sé l'accesso al server. Questo perché Apache per impostazione predefinita consente l'accesso da parte di utenti anonimi e, a meno che tale comportamento non venga ignorato, il metodo di autenticazione (qualunque esso sia) non verrà richiamato.

In questo esempio ci sono solo quattro utenti che necessitano dell'accesso e il modo più semplice per organizzarlo è tramite una direttiva Require:

# ... Richiedi utente dougal@EASYPROJECT.COM brian@EASYPROJECT.COM ermintrude@EASYPROJECT.COM dylan@EASYPROJECT.COM

Tuttavia, se desideri consentire l'accesso tramite Apache a tutti gli utenti LDAP / AD, puoi specificare:

# ... Richiedi utente valido

8) Ricarica la configurazione di Apache

Vedere Fare in modo che un servizio di sistema ricarichi la propria configurazione. Sui recenti sistemi basati su Debian il comando richiesto è:

servizio apache2 force-reload

 

Configurazione Nginx

Questa sezione si applica solo al sistema operativo basato su CentOS / RedHat.

1) Assicurati che Nginx sia installato nel tuo sistema.
Tutti i comandi successivi dovrebbero essere eseguiti dall'utente root o utilizzando sudo.

2) Esegui il comando successivo per verificare quali moduli sono disponibili nella tua installazione di nginx.

Nginx-V

(cerca "with-stream = dynamic" nell'output del comando per assicurarti che il tuo modulo steam sia disponibile)

3) Vai alla tua root e cerca il file ngx_stream_module.so

 cd / trova / -name ngx_stream_module.so

Prendi nota del percorso esatto del file del modulo di Steam
Ad esempio, può essere posizionato in "/usr/lib64/nginx/modules/ngx_stream_module.so" avrai bisogno di questo percorso per impostarlo in nginx.conf

Se non hai ngx_stream_module, devi disinstallare il tuo nginx predefinito e reinstallarlo dai sorgenti o dal pacchetto rpm specifico. In questa pagina puoi trovare le versioni esatte dei pacchetti nginx che includono ngx_stream_module - https://rpmfind.net/linux/rpm2html/search.php?query=ngx_stream_module.so()(64bit)

4) Ora tutto pronto per scrivere la tua configurazione Nginx.

vim /etc/nginx/nginx.conf
########################################### user nginx; worker_processes 1; load_module /usr/lib64/nginx/modules/ngx_stream_module.so; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; eventi {worker_connections 1024; } stream {#… error_log /var/log/nginx/stream_error.log debug; server {ascolta 88; proxy_pass kdc01.easyproject.com:88; } server {ascolta 749; proxy_pass kdc01.easyproject.com:749; }} ##########################################

5) Riavvia il servizio nginx.

systemctl abilita nginx systemctl avvia nginx

6) Controlla se le porte assegnate sono aperte adesso.

netstat -tupnl | grep nginx

Ora il nostro Nginx è pronto per reindirizzare le richieste per frenare il server.

Configurazione del client Web se è in uso AD

Il nome di dominio deve essere consentito nei browser dei client in modo che i client possano utilizzare SSO. Questo può essere utilizzato modificando la policy del dominio o direttamente nei browser come segue:

  • IE: vai su Strumenti -> Opzioni Internet -> Sicurezza -> Intranet locale -> Siti -> Avanzate e aggiungi il dominio, ad esempio easyproject.com
  • Edge: Ereditato da IE
  • Chrome: ereditato da IE
  • Firefox: vai all'URL about: config e aggiorna le seguenti variabili: network.negotiate-auth.trusted-uris, network.automatic-ntlm-auth.trusted-uris - aggiungi di nuovo il dominio, ad esempio easyproject.com

Debug

Se vuoi verificare che la tua applicazione EasyRedmine veda le variabili SSO inviate dal webserver (es. Apache), vai su [url] / sso_variables, es. Https://www.easyproject.com/sso_variables.

Il valore Corrente, Accesso corrente e Uso corrente negli elementi DB devono essere compilati e devono corrispondere all'utente che tenta di accedere.

 

Fonti e link utili

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/managing_smart_cards/configuring_a_kerberos_5_server

https://help.ubuntu.com/lts/serverguide/kerberos.html.en

http://www.microhowto.info/howto/configure_apache_to_use_kerberos_authentication.html

https://active-directory-wp.com/docs/Networking/Single_Sign_On/Kerberos_SSO_with_Apache_on_Linux.html

https://medium.com/@Santii/how-to-setup-kerberos-behind-a-reverse-proxy-nginx-d692f609191c

Prova Easy Redmine in 30 giorni di prova gratuita

Funzionalità complete, protezione SSL, backup giornalieri, nella tua geolocalizzazione