Passa al contenuto principale

1.2. Cross-Realm Operation (Operazione Cross-Realm)

1.2. Cross-Realm Operation (Operazione Cross-Realm)

Il protocollo Kerberos è progettato per operare attraverso i confini organizzativi. Un client in un'organizzazione può essere autenticato a un server in un'altra. Ogni organizzazione che desidera eseguire un server Kerberos stabilisce il proprio "realm". Il nome del realm in cui un client è registrato fa parte del nome del client e può essere utilizzato dal servizio finale per decidere se onorare una richiesta.

Stabilendo chiavi "inter-realm", gli amministratori di due realm possono consentire a un client autenticato nel realm locale di provare la propria identità ai server in altri realm. Lo scambio di chiavi inter-realm (una chiave separata può essere utilizzata per ogni direzione) registra il servizio di concessione ticket (ticket-granting service) di ciascun realm come principal nell'altro realm. Un client è quindi in grado di ottenere un TGT per il servizio di concessione ticket del realm remoto dal proprio realm locale. Quando quel TGT viene utilizzato, il servizio di concessione ticket remoto utilizza la chiave inter-realm (che di solito differisce dalla propria normale chiave TGS) per decrittografare il TGT, quindi è certo che il ticket sia stato emesso dal TGS del client stesso. I ticket emessi dal servizio di concessione ticket remoto indicheranno al servizio finale che il client è stato autenticato da un altro realm.

Senza operazione cross-realm, e con l'autorizzazione appropriata, il client può organizzare la registrazione di un principal denominato separatamente in un realm remoto e impegnarsi negli scambi normali con i servizi di quel realm. Tuttavia, anche per piccoli numeri di client questo diventa ingombrante, e sono necessari metodi più automatici come quelli descritti qui.

Si dice che un realm comunica con un altro realm se i due realm condividono una chiave inter-realm, o se il realm locale condivide una chiave inter-realm con un realm intermedio che comunica con il realm remoto. Un percorso di autenticazione (authentication path) è la sequenza di realm intermedi che vengono attraversati nel comunicare da un realm a un altro.

I realm possono essere organizzati gerarchicamente. Ogni realm condivide una chiave con il proprio genitore (parent) e una chiave diversa con ciascun figlio (child). Se una chiave inter-realm non è condivisa direttamente da due realm, l'organizzazione gerarchica consente di costruire facilmente un percorso di autenticazione.

Se non viene utilizzata un'organizzazione gerarchica, potrebbe essere necessario consultare un database per costruire un percorso di autenticazione tra i realm.

Sebbene i realm siano tipicamente gerarchici, i realm intermedi possono essere bypassati per ottenere l'autenticazione cross-realm attraverso percorsi di autenticazione alternativi. (Questi potrebbero essere stabiliti per rendere più efficiente la comunicazione tra due realm.) È importante per il servizio finale sapere quali realm sono stati attraversati quando si decide quanta fiducia riporre nel processo di autenticazione. Per facilitare questa decisione, un campo in ogni ticket contiene i nomi dei realm che sono stati coinvolti nell'autenticazione del client.

Il server applicativo è in ultima analisi responsabile dell'accettazione o del rifiuto dell'autenticazione e DOVREBBE controllare il campo transited. Il server applicativo può scegliere di fare affidamento sul Key Distribution Center (KDC) per il realm del server applicativo per controllare il campo transited. Il KDC del server applicativo imposterà il flag TRANSITED-POLICY-CHECKED in questo caso. I KDC per i realm intermedi possono anche controllare il campo transited quando emettono TGT per altri realm, ma sono incoraggiati a non farlo. Un client può richiedere che i KDC non controllino il campo transited impostando il flag DISABLE-TRANSITED-CHECK. I KDC DOVREBBERO onorare questo flag.