2012-06-06 14 views
6

Ho svolto ricerche sul servizio di controllo di accesso di Azure (ACS) e sembra che sia particolarmente utile per gestire l'autenticazione da provider di identità eterogenei (configurabili). Poi ci sono una serie di scenari aggiuntivi che sembra supportare (vedi ad esempio ACS How-To's).Quando non usare ACS?

La domanda che ho è l'opposto: mi aiuterebbe davvero a capire, per usarlo correttamente, quale ACS è non buono per. Quali sono i limiti di ACS e/o quali sono alcuni scenari in cui ACS sarebbe inappropriato?

(Supponiamo, per motivi di discussione, che io abbia intenzione di creare un - :) redditizio - API Web pubblica e front-end del sito Web corrispondente, ospitato in Azure, vale a dire che mi interessa l'identità dell'utente. Se vuoi, puoi anche supporre che il mio sistema sarà costruito usando .NET.)

Grazie!

+1

Wow domanda aperta, ho usato ACS in produzione e lo amo, una limitazione, non su ACS ma su Windows Live è che non è possibile ottenere il tipo di richiesta per l'indirizzo di posta elettronica della persona 'AZURE ACS - Windows Live ID - Come posso ottenere l'e-mail e il nome dell'utente autenticato? ": Http://stackoverflow.com/questions/7871960/azure-acs-windows-live-id-how-do-i-get-the-email-and -name-of-the-authenticat Puoi aggirare questo problema ma ho ritenuto che fosse fastidioso. Interessato a vedere cosa pensano gli altri !! – user728584

+0

@ user728584: Grazie per il collegamento. Anche il fatto che devo ancora gestire le mie registrazioni utente personali è stato sollevato in quella domanda. Sì, sto scavando da un po 'di tempo nella documentazione di ACS, nei video di Vittorio Bertocci, ecc. :), e sperando che il contrario si spera riesca a chiarire le cose. –

+0

Bene, siete sulla strada giusta con Vittorio (identità dell'ammiraglio). Anche ADFSV2 è eccellente, i miei clienti lo usano insieme all'autent basata su moduli (funzionalità esistente) per offrire al pubblico un accesso social media, ad es. Facebook che estrae tutti gli elementi di sicurezza di ACS, funziona a meraviglia! – user728584

risposta

5

Non utilizzare ACS come provider di identità.

Occasionalmente vedo un po 'di confusione sul ruolo di ACS. ACS at is core è un provider di federazione, ma esiste uno scenario valido in cui si desidera che il servizio di back-end (un sottosistema attendibile) effettui l'autenticazione direttamente su ACS utilizzando un segreto condiviso o un certificato. Questo può essere fatto usando le identità di servizio. Tuttavia, più di una volta ho visto uno scenario ACS proposto in cui è necessario eseguire il provisioning di più account, e ciò sarebbe stato raggiunto creando un'identità di servizio per ciascun utente.

Questo non è proprio il modo in cui è progettato ACS. Se hai inavvertitamente migliaia di utenti, rendendo ACS la tua directory utente di origine autorevole non verrà ridimensionata. ACS offre un buon motore di regole che è stato progettato per normalizzare i tipi di reclami in arrivo da vari provider di identità o per semplici criteri di autorizzazione come la generazione di attestazioni di ruolo.

Ma le funzionalità di ACS qui non devono essere confuse con le soluzioni di directory, autenticazione e autorizzazione completamente alimentate come AD e ADFS. In breve, ACS non è una versione di AD/ADFS.

+1

Grazie, questo è il genere di cose che sto cercando di capire. (Stavo considerando di fare esattamente questo, in realtà. Ho un gran numero di dispositivi client che devono autenticarsi con i singoli certificati X.509. Ho fatto fatica a legarlo concettualmente in ACS. Argomento per un'altra domanda, però.) –

4

Anche se è possibile utilizzare Windows Live come provider di identità in ACS, ci sono alcuni casi in cui non si vorrebbe usarlo. L'ID utente che si riceve dipende dallo spazio dei nomi ACS. Ciò significa che se l'applicazione utilizza più nomi di chiamata ACS (diciamo uno per Europa e uno per USA), ciò potrebbe causare alcuni problemi.

Immagina lo scenario in cui il tuo utente accede attraverso il tuo spazio dei nomi USA. La tua applicazione riceverà l'ID (hash) per quell'utente e forse creerai un profilo per quell'utente nella tua applicazione. Una settimana dopo, il tuo utente si recherà in Europa e potrebbe accedere tramite il tuo spazio dei nomi in Europa. Anche se si tratta dello stesso utente, otterrai un altro ID (hash) per quell'utente, facendo sembrare che questo sia un nuovo utente, anche se non lo è. Questo perché l'ID (hash) dipende dallo spazio dei nomi ACS.

Quoting an MSFT employee:

L'ID utente che si riceve da ACS per Windows Live ID saranno specifici per l'utente presso lo spazio dei nomi di servizio. Se si utilizza uno spazio dei nomi di servizio diverso, si otterrà un valore diverso per lo stesso utente. Quindi, per rispondere alle vostre domande: * Labs ACS e Prod ACS [ID Diversi]

  • diverse parti coinvolte in diversi abbonamenti (in prod) [ID diversi]

  • RP diverse nello stesso abbonamento [ lo stesso ID se lo spazio dei nomi servizio è lo stesso, diverso per 2 spazi dei nomi nella stessa abbonamento]

  • Se cancello e ricostruire il RP allo stesso regno, stesso account [stesso ID]

Aggiornamento:

Per rispondere a uno dei commenti, è vero che non sarà possibile ottenere l'indirizzo di posta elettronica dal provider dal vivo di identità di Windows. Ma dovresti assumere che non puoi controllare le informazioni che otterrai dai fornitori di identità pubblica. Una buona pratica sarebbe semplicemente dipendere dall'identificatore dell'utente e creare un profilo per l'utente (gestirai il profilo nella tua applicazione). Quando ottieni alcune informazioni dal provider di identità, puoi già aggiornare il profilo, ma se queste informazioni non sono disponibili devi semplicemente chiedere all'utente di aggiornare il suo profilo. Assicurati di guardare l'esempio BlobShare per maggiori informazioni.

+0

+1 per una risposta esauriente. Ma ciò che stai affrontando è una limitazione tecnica (ben progettata) di ACS in un particolare scenario. Sono più interessato a quali * scenari * sono là fuori, dove ACS non sarebbe una buona idea. –

Problemi correlati