2016-06-01 29 views
5

Abbiamo deciso di utilizzare Angular 2 come framework per il nostro nuovo progetto. Nel tentativo di affrontare l'aspetto della sicurezza delle cose, non riesco a trovare molto su di autenticazione con on-premADFS. C'è molto da fare con Azure AD, ma questa non è un'opzione per noi.
Qualcuno sa di un modo per essere in grado di impostare Angular 2 per autenticare correttamente con ADFS?Angular 2 Authenticatication con ADFS on-prem

+1

Hai trovato una soluzione per questo? IdentityServer3 è in grado di integrarsi con ADFS, ma potrebbe essere eccessivo per te. Sto lavorando tramite l'autenticazione ADFS con ADFS da C# utilizzando la libreria ADAL e ho appena pubblicato dei dettagli piuttosto ampi per l'impostazione di ADFS come risposta a [questa domanda] (http://stackoverflow.com/questions/39961921/how-do- i-setup-a-valid-on-premise-ADFS-URI). Potrebbe aiutarti, anche se ovviamente dovresti usare la libreria ADAL JS. – Peter

+0

No, non l'abbiamo fatto. Volevamo implementare IdentityServer3 ma il nostro team di sicurezza vuole accontentarsi di avere un solo servizio di "accesso" a livello aziendale. Attualmente ADFS è in uso, quindi avere IdentityServer era troppo per loro. – bharris9

+0

@ bharris9, quindi cosa hai fatto nell'ultimo per questo problema? Qualche soluzione? Stiamo anche avendo lo stesso tipo di requisiti ma non abbiamo trovato alcuna soluzione per questo ancora, Se ne avete, si prega di condividere –

risposta

2

La mia comprensione è che normalmente si utilizzerà ADAL 2.0 (ADAL JS) per questo.

Tuttavia, questo utilizza il flusso implicito OAuth non supportato da ADFS 3.0. Non è disponibile il supporto OAuth in ADFS 2.1 e versioni successive. È tuttavia supportato in ADFS 4.0 (Server 2016).

Si potrebbe aggirare questo ponticellando qualcosa come IdentityServer o Auth0, ad es. Authenticate Angular.js with ADFS.

E no, non lavoro per Auth0!

+0

Vorrei poter usare Auth0 ma il costo della licenza per i client aziendali impedirà tale opzione. Dovrò cercare in IdentityServer. – bharris9

5

È possibile implementare questo successo utilizzando il NG2-Adalnpm library, è possibile implementare lo stesso modo in cui viene implementata per Azure AD, ma invece vi riempia i valori del segreto service.js con ADFS valori come segue:

import { Injectable } from '@angular/core'; 

@Injectable() 
export class AdfsSecretService { 
    private endpoints: any = { 
    'http://{your-website-url}/': 
    'http:/{the-service-provider-identifier}', // as registered in ADFS 
    }; 

    public get adalConfig(): any { 
    return { 
     instance: 'https://{your.adfs.site}/', 
     tenant: 'adfs', 
     clientId: '{adfs-client-guid}', 
     redirectUri: window.location.origin + '/', 
     postLogoutRedirectUri: window.location.origin + '/', 
     endpoints: this.endpoints 
    }; 
    } 
} 

è possibile trovare un collegamento a un esempio nella sezione readme della libreria.

Sul ADFS lato è necessario registrare le tue applicazioni sotto ADFS come un'applicazione Gruppo, per maggiori informazioni fare riferimento a questa TechNet article

+0

Qual è il valore dell'identificativo del provider di servizi, puoi condividere qualche esempio? –

+0

È un identificatore uri arbitrario che si crea quando si registra l'app Web in ADFS, controllare l'articolo tecnet menzionato nella risposta per ulteriori dettagli. –

+0

Bisogno, un ulteriore aiuto, qual è il significato di 'http: // {your-website-url} /' URL del mio sito web, durante lo sviluppo? come 'http: // localhost: 58689' Correggimi se ho torto –