Ho alcuni siti Web per lavori che vivono al di fuori della LAN aziendale e, quindi, al di fuori della gamma di comunicazione diretta di Active Directory (A/D), ma per i quali mi piacerebbe poter autenticare gli utenti contro i server A/D aziendali e un repository secondario di utenti/ruoli ***. Lo pseudo codice per questa attività è questo:Come autenticarsi con Active Directory dal codice del servizio Web ASP.NET?
- L'utente inserisce nome utente/password nel modulo di accesso del sito Web esterno.
- Il sito Web esterno chiama un servizio Web all'interno della LAN che può parlare con A/D.
- Il servizio Web verifica se il nome utente/password possono essere autenticati associati a un utente in A/D. In tal caso, restituire l'elenco dei ruoli A/D di cui l'utente è membro.
- Se il nome utente/password non possono essere trovati/autenticati contro A/D, controllare un database/servizio che è il repository secondario delle informazioni utente/ruolo. Restituisce tutti i ruoli in cui si trova se si autenticano con il server di autenticazione secondario.
- Restituisce un elenco di ruoli in cui l'utente si trova nel sito Web di chiamata.
*** L'idea è che non vogliamo mettere dozzine - potenzialmente centinaia - di appaltatori e affiliati in Active Directory quando accederanno solo ai nostri server web esterni. Da qui lo schema di autenticazione secondario.
I server Web "esterni" si trovano nella DMZ e non possono accedere direttamente ai server A/D. Esiste, tuttavia, una regola firewall per consentire il traffico della porta 80/443 dagli specifici DMZ IPAddresses dei server Web esterni alla porta/indirizzo IP specifico del server delle app interno (asp.net). In futuro potremmo integrare completamente i server fuori sede, ma la stessa eccezione del firewall per porta e IP consentirebbe comunque ai server Web esterni di richiamare le chiamate al servizio Web sul server delle app interne. –