Quindi mi è stato detto che la nostra applicazione PHP potrebbe aver bisogno di supportare l'autenticazione tramite ADFS.
forte>
Per una persona non Microsoft, cos'è ADFS?
In cosa differisce da cose come LDAP?
Come funziona? Che tipo di informazioni sarebbero incluse in una tipica richiesta a un server ADFS? È progettato sia per l'autenticazione che per l'autorizzazione?
I server ADFS sono tipicamente accessibili da Internet (mentre i controller di dominio AD aziendali non lo sarebbero)?
5;
Ho provato a leggere alcuni dei documenti Technet, ma è pieno di linguaggio Microsoft che non è enormemente utile.
Wikipedia è meglio (vedi sotto), ma forse qualcuno della comunità di ServerFault può colmare alcune delle lacune.
Active Directory Federation Services (ADFS) è un componente software sviluppato da Microsoft che può essere installato sui sistemi operativi Windows Server per fornire agli utenti l'accesso single sign-on a sistemi e applicazioni situati oltre i confini organizzativi. Utilizza un modello di autorizzazione di controllo degli accessi basato sulle richieste per mantenere la sicurezza delle applicazioni e implementare l'identità federata.
L'autenticazione basata sulle richieste è il processo di autenticazione di un utente basato su un insieme di richieste sulla sua identità contenute in un token affidabile.
In ADFS, la federazione di identità è stabilita tra due organizzazioni stabilendo la fiducia tra due regni di sicurezza. Un server di federazione su un lato (il lato Accounts) autentica l'utente attraverso i mezzi standard in Active Directory Domain Services e poi emette un token contenente una serie di affermazioni sull'utente, compresa la sua identità. Dall'altro lato, il lato Risorse, un altro server di federazione convalida il token ed emette un altro token per i server locali per accettare l'identità dichiarata. Questo permette ad un sistema di fornire un accesso controllato alle sue risorse o servizi ad un utente che appartiene ad un altro regno di sicurezza senza richiedere che l'utente si autentichi direttamente al sistema e senza che i due sistemi condividano un database di identità utente o password.
In pratica questo approccio è tipicamente percepito dall'utente come segue:
- L'utente accede al suo PC locale (come tipicamente farebbe quando inizia a lavorare al mattino)
- L'utente ha bisogno di ottenere informazioni sul sito extranet di una società partner - per esempio per ottenere i prezzi o i dettagli del prodotto
- L'utente naviga verso il sito extranet dell'azienda partner - per esempio: http://example.com
- Il sito web del partner ora non richiede alcuna password da digitare - invece, le credenziali dell'utente vengono passate al sito extranet del partner utilizzando AD FS
- L'utente è ora loggato nel sito del partner e può interagire con il sito 'loggato'
Per una persona non Microsoft, cos'è ADFS?
ADFS è la soluzione di Microsoft per il Single Sign On e l'autenticazione basata sul web.
Viene utilizzato principalmente per fornire un unico set di credenziali che può accedere a una varietà di siti non necessariamente ospitati all'interno dello stesso dominio.
Come si differenzia da cose come LDAP?
LDAP:
mod_authnz_ldap
.ADFS:
Vedere anche questa risposta sull'argomento.
Come funziona? Che tipo di informazioni sarebbero incluse in una tipica richiesta a un server ADFS? È progettato sia per l'autenticazione che per l'autorizzazione?
Funziona avendo un singolo sito (sito A) che ospita i server ADFS / ADFS proxy, che ha accesso alle credenziali (di solito comunicando con un Active Directory Domain Controller). Viene poi dato un trust tra altri siti (siti B & C) che richiedono l'autenticazione attraverso l'ADFS.
Quando un utente tenta di accedere al sito B nel suo browser, il sito reindirizza l'utente al sito ADFS-proxy (sito A) che chiede il suo nome utente & password, lo autentica, restituisce un set di cookie per ricordarlo, e lo reindirizza nuovamente al sito B, insieme a un token di accesso.
Se l'utente tenta poi di visitare il sito C, sarà anche reindirizzato al sito A per l'autenticazione dal sito ADFS-proxy. Se esistono i cookie giusti, all'utente non verrà richiesto di inserire nuovamente la password, ma verrà immediatamente reindirizzato al sito C con un token.
L'ADFS può essere configurato con specifiche richieste (o permessi) per l'utente, per scopi di autorizzazione. Quindi può servire entrambi i ruoli. (Si noti la differenza tra autenticazione e autorizzazione.
Alcune persone preferiscono non usarlo per l'autorizzazione, ma mantenere la gestione dei permessi nel sito web di terze parti. L'ovvio svantaggio è che entrambi i siti A e B devono tenere traccia degli account utente, mentre nello scenario in cui ADFS gestisce entrambi, solo ADFS deve essere a conoscenza degli utenti.
I server ADFS sono tipicamente accessibili da Internet (mentre i controller di dominio AD aziendali non lo sarebbero)?
Sì, quasi sempre. ADFS è basato sull'idea che sarà usato principalmente per l'autenticazione dei siti web. Ed è costruito intorno a IIS.
Il sito ADFS-proxy è quello che di solito è accessibile da Internet. Tuttavia l'ADFS stesso non lo è. L'ADFS è generalmente un server separato dall'ADFS-proxy.