Ho difficoltà a chiamare un servizio Web da un'applicazione Web e speravo che qualcuno qui potesse essere in grado di aiutare. Da quello che posso dire, questo sembra che abbia qualcosa a che fare con il Kerberos double-hop issue. Tuttavia, se lo è, non sono sicuro di cosa fare per risolvere il problema. Per rendere le cose più difficili, non ho le autorizzazioni appropriate per apportare modifiche agli account di Active Directory, quindi ho bisogno di sapere cosa chiedere quando richiedi le modifiche. Nella mia situazione, ho bisogno di passare le credenziali (Autenticazione integrata di Windows) da un'applicazione web a un servizio Web di back-end in modo che il servizio Web venga eseguito nel contesto appropriato dell'utente.Come posso risolvere il problema del doppio hop di Kerberos?
Ecco il mio problema esatto:
questo funziona
Questo non funziona
L'unica differenza tra lo scenario di lavoro e lo scenario non funzionante è che lo scenario di lavoro sta eseguendo l'applicazione su localhost (sia sul PC di uno sviluppatore che sul server in questione) e l'esempio non funzionante è in esecuzione su un altro computer. Il codice tra entrambi gli scenari è esattamente lo stesso.
Quello che ho provato
- Aggiunta di uno SPN per l'account di dominio che esegue il pool di app per ogni server
setspn -a http/server1 DOMAIN\account
- Diversi metodi di rappresentazione
- Rimozione del codice di rappresentazione e l'esecuzione di
using(...)
la chiamata al servizio web come account del pool di app. Funziona come previsto.
Qualcuno ha qualche idea su cosa potrei essere in grado di fare per risolvere questo problema?
I diagrammi freddi rendono la domanda molto più facile da capire - grazie! –