Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli errori KDC_ERR_S_PRINCIPAL_UNKNOWN e KDC_ERR_PRINCIPAL_NOT_UNIQUE indicano che il client richiede l'accesso a un servizio che Kerberos non è in grado di identificare. Questo tipo di errore indica uno o più dei problemi seguenti:
- L'account del servizio non è configurato correttamente.
- Il servizio non usa l'account del servizio configurato per esso.
- Più account sono configurati per il servizio.
- Il client non ha richiesto correttamente il servizio.
Ogni servizio ha un nome principale del servizio (SPN) che lo identifica ai clienti e ad altri servizi. Il nome SPN è un attributo dell'account Active Directory Domain Services (AD DS) usato dal servizio. Un servizio può essere eseguito nel contesto di un account del servizio personalizzato o nel contesto di un account integrato, come ad esempio l'account del computer locale. Il servizio può essere eseguito anche in un contesto di sicurezza correlato all'account computer, ad esempio sistema locale o servizio di rete.
Il modo in cui si configurano gli SPN viene variato a seconda del tipo di account usato dal servizio.
- Un account di servizio personalizzato deve avere un SPN esplicito per ogni servizio che utilizza l'account.
- L'account computer potrebbe avere SPN espliciti configurati per i servizi che lo utilizzano. Tuttavia, le classi di servizi comuni eseguono automaticamente il mapping al nome SPN HOST. Il nome SPN HOST viene generato automaticamente per ciascun account del computer. In questi casi, alcuni servizi potrebbero non avere un proprio SPN configurato nell'account computer.
Importante
- A meno che un servizio non usi l'account computer e lo SPN HOST, gli SPN devono essere univoci nella foresta di Active Directory Domain Services (AD DS). In un ambiente a più foreste, il nome SPN deve essere univoco in tutte le foreste associate.
- Un nome SPN può essere associato a un solo account. Una causa comune dei problemi SPN è la configurazione di un servizio per l'uso di un account personalizzato quando l’SPN è associato sia all'account personalizzato che all'account del computer.
Raccogliere i dati di traccia e identificare l'SPN del problema
Se non sono ancora stati raccolti dati di traccia per il problema, eseguire questa operazione. Per altre informazioni, vedere Linee guida per la risoluzione dei problemi di autenticazione Kerberos: 3. Raccogliere dati di traccia e ticket. Controllare i dati di tracciamento per trovare l'SPN richiesto dal client.
Verificare lo SPN utilizzato dall'account del servizio
Queste procedure variano leggermente a seconda che il servizio usi un account personalizzato o l'account computer. La tabella seguente riepiloga la differenza.
| Il servizio usa un account personalizzato | Il servizio utilizza l'account del computer |
|---|---|
| Il SPN richiesto deve corrispondere all'SPN dell'account. Il SPN deve essere univoco nella foresta. |
Il nome SPN richiesto potrebbe corrispondere a uno dei nomi SPN dell'account. Tuttavia, i servizi comuni, come ad esempio il servizio web, utilizzano generalmente lo spn HOST automatico anziché uno spn univoco. Se l'account dispone di un nome SPN specifico del servizio, tale NOME SPN deve essere univoco nella foresta. |
Ottieni un elenco di SPN assegnati all'account del servizio. A tale scopo, aprire una finestra del prompt dei comandi amministrativa in un controller di dominio e quindi eseguire il comando seguente:
setspn -L <Name>Annotazioni
- In questo comando Name <> rappresenta il nome del computer che esegue il servizio o un account personalizzato utilizzato dal servizio.
- In un ambiente multidominio usare il <formato Domain\Name> per specificare il dominio dell'account.
Cerca tutti gli account che usano l'SPN richiesto. Questa ricerca identifica eventuali SPN o SPN duplicati assegnati all'account non corretto.
Annotazioni
Per eseguire questa procedura, è necessario disporre almeno delle autorizzazioni di amministratore dell'organizzazione.
Per determinare l'account o gli account associati all'SPN, aprire una finestra di prompt dei comandi amministrativo e quindi eseguire uno dei seguenti comandi.
Foresta singola Più foreste attendibili setspn -Q <SPN>setspn -X <SPN>Annotazioni
- In questo comando, <SPN> rappresenta l'SPN che stai cercando.
- La ricerca di duplicati, soprattutto a livello di foresta, può richiedere molto tempo e molta memoria.
Per altre informazioni sul setspn comando e sulle opzioni disponibili, vedere setspn.
Riconfigurare lo SPN in base alle esigenze
I passaggi successivi dipendono dal risultato dei dati di traccia, dalle setspn query e dal tipo di account usato dal servizio.
Potresti vedere uno dei seguenti problemi.
| Account personalizzato | Account del computer |
|---|---|
| Uno o più account diversi dall'account del servizio hanno il nome SPN. | Uno o più account, diversi dall'account del computer, hanno il Nome Principale di Servizio (SPN). |
| L'account personalizzato non ha lo SPN. | L'account del computer dovrebbe avere l'SPN, ma non ce l'ha. 1 |
| L'account personalizzato ha un SPN non corretto o un SPN che non corrisponde all'SPN richiesto dal client. 2 | L'account computer ha un SPN non corretto o un SPN che non corrisponde al SPN richiesto dal client.2 |
1 Per un elenco dei servizi che possono usare l'SPN HOST dell'account computer, vedere setspn. Se il servizio non è uno di questi servizi comuni, è necessario configurare un SPN per il servizio sull'account del computer.
2 Per le informazioni sulla richiesta del client, vedere i dati di traccia di rete.
Usare i seguenti metodi per correggere la configurazione SPN:
Se l'account del servizio è configurato correttamente ma il client ha richiesto un SPN non corretto, vedere Correggere un SPN incorretto.
Se l'account del servizio corretto ha l'SPN ma l'SPN non è corretto, rimuovi l'SPN non corretto e aggiungi quello corretto. Per informazioni dettagliate, vedere Rimuovere un nome SPN da un account e Aggiungere un nome SPN a un account del servizio.
Se il nome SPN viene assegnato a qualsiasi account diverso dall'account del servizio corretto (account personalizzato o account computer), rimuovere il nome SPN da tali account. Vedere Rimuovere un nome SPN da un account.
Se il servizio utilizza un account personalizzato ma l'account personalizzato non ha un SPN assegnato, aggiungere lo SPN. Per informazioni dettagliate, vedere Aggiungere un nome SPN a un account di servizio.
Se il servizio usa l'account del computer ma non è uno dei servizi comuni descritti in questo articolo, aggiungi il nome SPN all'account del computer.
Rimuovere un nome SPN da un account
Per rimuovere il nome SPN da un account, eseguire il comando seguente al prompt dei comandi con privilegi amministrativi:
setspn -D <SPN> <AccountName>
Annotazioni
In questo comando, <SPN> rappresenta il SPN che si desidera rimuovere. <AccountName> rappresenta l'account (o uno degli account) da cui si vuole rimuovere il nome SPN.
Aggiungere un nome SPN a un account del servizio
Per aggiungere l'SPN a un account, eseguire il comando seguente al prompt dei comandi con privilegi amministrativi:
setspn -S \<SPN> \<AccountName>
Annotazioni
In questo comando, <SPN> rappresenta il SPN che vuoi aggiungere. <AccountName> rappresenta l'account (o uno degli account) a cui si vuole aggiungere il nome SPN.
Correggere un SPN incoerente
Determinare quale versione dell'SPN è corretta: quella richiesta dal cliente o quella configurata sull'account del servizio.
Se il client richiede un nome SPN non corretto, verificare le informazioni usate dal client per compilare un nome SPN per una richiesta e assicurarsi che le informazioni di origine siano corrette. DNS è un'origine comune di queste informazioni. Altri client (in particolare client non browser o personalizzati) potrebbero usare altre origini oltre al DNS.
Se l'account del servizio usa il nome SPN non corretto, rimuovere il nome SPN dall'account del servizio e quindi aggiungere il nome SPN corretto.
Maggiori informazioni
Un nome SPN usa il <formato ServiceClass>/<Host>:<Port>/,<ServiceName> e include i componenti seguenti:
- <ServiceClass> (obbligatorio) rappresenta la classe di servizio del servizio.
- <Host> (obbligatorio) rappresenta il nome del computer che esegue il servizio.
- <La porta> (facoltativa) rappresenta il numero di porta utilizzato dal servizio.
- <ServiceName> (facoltativo) rappresenta il nome del servizio.
Per altre informazioni su come formattare i nomi SPN e su quando usare parametri facoltativi, vedere Formati dei nomi per nomi SPN univoci.