Domanda

Stiamo pensando di utilizzare Kerberos nella nostra architettura. Vorrei sapere che cosa percepito o vantaggi effettivi di questa tecnologia ha, e se ci sono eventuali alternative.

Si noti che abbiamo un lato lato client .NET e Java server. la comunicazione sarà via bus di messaggistica e SOA

Nessuna soluzione corretta

Altri suggerimenti

Se si sta lavorando all'interno di un ambiente in gran parte di Windows (cioè 2k3 Windows Server, un controller di dominio, Active Directory, etc.) uno in particolare è che si può utilizzare rappresentazione attraverso NET con un server web spaccatura e server di database. Utilizzando il metodo NTLM più vecchio, non si può fare un "doppio-hop".


Diamo un'occhiata a un esempio:

  • Si dispone di un server web (WEB1)
  • Si dispone di un server di database su una macchina separata (DB1)
  • Si dispone di un accesso utente tuo sito web (USER1)

USER1 colpisce una pagina che visualizza una lista di ordini. Il server WEB1 deve interrogare DB1 per queste informazioni da visualizzare nella pagina. Si vuole limitare ciò che gli ordini sono visti in base alle credenziali dell'utente e diritti di accesso. Così, è possibile impostare i gruppi Active Directory e assegnare gli utenti di conseguenza. Sul vostro database vi darà i diversi gruppi di protezione diverso (GROUP1 potrebbe avere selezionare solo ed GROUP2 potrebbe ottenere di selezione, inserimento e aggiornamento, per esempio).

NTLM non supporta il doppio hop necessario farlo. WEB1 deve inviare le credenziali di USER1 a DB1 (altrimenti WEB1 necessario accedere al DB1 con un noto user id e password dedicate insita nel web.config per esempio, che di solito deve avere pieno accesso a supportare tutti i possibili ruoli utente). Si può immaginare che questo potrebbe essere un pericolo per la sicurezza dovrebbe WEB1 essere compromessa, quindi non è possibile farlo, altrimenti chiunque che acquisisce il controllo di WEB1 (tramite SQL injection forse) ha potuto far nulla l'account utente dedicato poteva o impersonano chi vogliono. Kerberos, attraverso la delega su Windows Server, supporta facendo questo secondo hop mantenendo la chiave di credenziale cifrata dal server di dominio integro e passato lungo, così come verificato che questo è consentito (su entrambe le estremità, vedi sotto per impostare questa funzione sul vostro server perché deve essere esplicitamente consentito).

E 'molto utile per fare questo, quando lo sviluppo di applicazioni intranet web che hanno un database di back-end (che è il 99% delle volte il caso, giusto?) E si vogliono controllare l'autorizzazione e l'autenticazione tramite Windows Integrated Security. Kerberos è davvero l'unica scelta a meno che il server web e server di database sono sulla stessa macchina, il che significa che non c'è il trasferimento dei poteri e nessuna rappresentazione necessaria.

Vedi anche:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top