ciao,
mi trovo a dover realizzare un applicativo gestionale il cui accesso sia limitato solo ad alcuni utenti del dominio aziendale gestito con LDAP con active directory. il tutto "chiaramente" va fatto in modo trasparente per l'utente, cioè l'applicazione non deve richiedere le credenziali di accesso agli utenti che sono già autenticati sulla rete.

premesso che sono un umile sviluppatore SW webbased e non un sistemista (quindi con i miei bei limiti) ho cercato un po sul web trovando alcune interessanti soluzioni con SPENGO+kerberos o altri sistemi simili, che però al cliente (che è anche il sistemista) la cosa non piace.

secondo lui c'è la possibilità di ottenere tramite l'heder error 401 le credenziali direttamente dal browser, in questo modo l'applicazione dovrebbe fare ciò:

1) riceve la richiesta per una qualsiasi pagina all'interno dell'applicazione
2) verifica autenticazione per il richiedente

se non è autenticato
3) errore 401
4) riceve automaticamente dal browser i dati di accesso
5) torna all'applicazione
6) l'applicazione autentica l'utente

da qui in poi l'utente è riconosciuto (ha una sessione autenticata)
7) verifica l'autorizzazione
8) se autorizzato permette l'uso dell'applicazione se no rimbalza con cortese messaggio di rifiuto.

ora io arrivo a verifico che l'utente NON è autenticato e mando errore 401. da qui in poi il cammino mi risulta oscuro, nel senso che non ho idea (e non ho trovato documentazione googlando) di come la pagina di error 401 gestisca la richiesta di credenziali, ne come il borwser le fornisca direttamente senza ulteriore richiesta e di come fare per riceverle indietro.
per la parte di autenticazioen e autorizzazione LDAP ho già sviluppato un embrione di funzioni che mi serviranno (oltre ad aver trovato numerose classi già sviluppate per operare su ldap), quindi dovrei essere a posto.

da quello che ho letto in giro sul web dovrebbe essere apache direttamente a fare la fase di autenticazione, dopodiché mi manda un header con la risposta e da li in poi a me spetta la gestione dell'autorizzazione ecc.

quindi chiedo a voi (sempre tenendo conto dei miei limiti da non sistemista) :
1) c'è qualcosa che mi sfugge? se si cosa e dove trovo la documentazione relativa?
2) è possibile fare quanto dice il cliente e cioè avere come risposta dall'errore 401 le credenziali per autenticare lato app l'utente? se si come?


l'ambiente di sviluppo (identico al futuro ambiente di produzione) è così strutturato:

server: Linux 2.6.32-21-generic #32-Ubuntu
webserver: apache 2
php: Version 5.3.2-1ubuntu4.2
db: PostGreSql

l'app per il momento è ottimizzata per IE8 (per motivi tecnici legati layout che su FF esce una schifezza e non ho ancora avuto tempo per sistemare), quindi mi concentrerei su questo browser in prevalenza, ma strizzando l'occhio a FF.

spero ci sia tutto e sia tutto chiaro...


grazie a tutti dell'aiuto!

s