Reclami personalizzate con quadro di Ginevra e come per gli utenti “sincronizzazione” all'interno della vostra app

StackOverflow https://stackoverflow.com/questions/1880228

Domanda

Forse questa domanda mette in evidenza quanto poco so di gestione dei sinistri identità, ma qui va.

Se si utilizza WIF all'interno di un'applicazione che utilizza una terza STS parti di identità e che utilizza attestazioni personalizzate per l'autorizzazione (qualcosa di pertinente e SpecificTo l'applicazione come CanCreateFooBar)

1) Come faccio a gestire gli utenti? Vale a dire, gli utenti da dire AD o altri provider di appartenenza possono essere identificati, ma internamente nel mio sistema ho bisogno di sapere su di loro e avere più informazioni utente che non ha nulla a che fare con l'identità (così woulndt davvero senso di avere queste informazioni a disposizione al di fuori del sistema), e che le informazioni relative all'utente deve essere mantenuta,
La domanda è: Come posso gestire e creare i miei dati di sistema (Avvio dalla Ids) in modo intelligente?
Lo scenario esatto che ho in mente è un nuovo dipendente viene aggiunto alla società, amministratore di sistema crea l'utente per il dominio con un ruolo particolare, come può il mio sistema becoem consapevoli di questo fatto? (Ma probabilmente che il sistema per richiedere un amministratore del sistema per un'azione

2) Dove sono i valori di reclamo per gli utenti e ruoli memorizzati e come posso modificare? Idealmente voglio essere in grado di cambiare le perimissions per un particolare utente e di azione. Ci sono delle linee guida su questo?

Posso vedere che questi sono probabilmente domande molto zoppo, ma quando penso a come risolvere il problema vengo con rispetto alle soluzioni complicate o con soluzioni che richiedono un sacco di duplicaiton (cioè creare il utilizzato in due posti), così ho sono sicuro io m non solo a pensare a questo problema nel modo giusto

Grazie

È stato utile?

Soluzione

1) Non è gestire gli utenti, non proprio. È sufficiente prendere l'IClaimsIdentity e l'uso che come sorgente per la vostra autorizzazione. A mio parere non dovrebbe essere le persistenti affermazioni se è possibile ottenere via senza farlo - le indicazioni dovrebbero essere la fonte delle informazioni dell'utente.

Se si vuole costruire su rivendicazioni poi prendere un riferimento unico dall'identità affermazioni, dire l'indirizzo e-mail o ppid / firma tasto cancelletto OU e l'uso che per costruire il proprio database, e aggiungere le proprie informazioni.

Tuttavia il sistema non diventerà mai via di cambiamenti in un terzo metabase identità di partito - non fino a quando un nuovo token SAML viene rilasciato e analizzato nell'applicazione

.

2) I valori sinistri vengono memorizzati da nessuna parte, a meno che non li memorizza. Come tradurlo in permessi sta a voi - ma in genere si esegue richieste di trasformazione a prendere rivendicazioni esterni e mapparli ai sinistri interne alla propria applicazione che si utilizza per le autorizzazioni. Perché reclami sono provenienti da fornitori esterni non si può cambiare loro -. Si dispone di alcuna connessione a quei fornitori

Altri suggerimenti

Come si sta vedendo, la federazione non necessariamente alleviare la necessità di provisioning. Questa è una descrizione importante che non è immediatamente evidente.

Ci sono diversi modi per risolvere questo tra cui:

  1. L'uso di un prodotto directory meta o virtuale o
  2. Utilizzando "JIT provisioning" (AKA "provisioning dinamico" o "il provisioning on-the-fly").

Mi spiego quest'ultimo. Questa soluzione, che ho anche descritto sul mio blog , comprende due STS, un IP-STS e di un RP-STS. La prima autentica unicamente l'utente; il secondo è specifico per l'applicazione e sa cosa sono necessarie per autorizzare gli utenti di quel sistema sinistri. Gli IP-STS non possono emettere questi attributi specifici per l'applicazione, così facendo avrebbe richiesto il servizio di directory aziendale per essere ingombra con ogni sorta di informazioni specifiche dell'applicazione. Invece, gli attributi per gli utenti che sono mantenuti in quel negozio e rilasciati dal IP-STS sono di natura generale e applicabili per l'utente indipendentemente dall'applicazione in uso. Dopo l'autenticazione per le IP-STS e ottenere attestazioni d'identità solo da esso, il token viene trasmesso ai RP-STS. Questo servizio token è strettamente legato alla propria applicazione. Si sa che cosa sostiene gli utenti hanno bisogno di accedere alle risorse diverse. E 'possibile convertire rivendicazioni identitarie solo per quelle necessarie per prendere questa decisione il controllo degli accessi. Così, le RP-STS è un trasformatore affermazioni che mappa pretese identitarie in quelli specifici per app.

Come funziona la fornitura RP-STS l'utente? Supponiamo che viene creato un nuovo dipendente, come nel tuo esempio di cui sopra. Quando l'utente accede la vostra applicazione, sarà rimbalzato alle RP-STS. Egli non sarà registrata in là, così lui sarà rimbalzato agli IP-STS. L'amministratore di sistema ha creato un account per lui, così egli sarà in grado di effettuare il login, e il suo navigatore lo si riprenderà alle RP-STS. Gli RP-STS si crepa il token, ottenere l'ID utente (e-mail, PPID, ecc), e vedere che non sa chi è l'utente. Così, la volontà disposizione RP-STS l'utente. Ciò avverrà mediante la visualizzazione di una pagina Web, per esempio. Si potrebbe raccogliere informazioni che aiuta a determinare il ruolo di tale utente quando si accede al RP. Dopo questo, l'utente sarà provisioning (vale a dire, un record verrà creato nel suo database che contiene i valori di reclamo per lui), e le RP-STS emetterà un token specifico per l'applicazione e lo reindirizzare indietro laggiù. L'applicazione non saprà che stava solo provisioning; sarà solo utilizzare i crediti, come fa sempre. (Vedere il motivo per cui ho chiamato il provisioning JIT?)

Che cosa succede se le cose cambiano dopo che l'utente è stato provisioning? OK. Immaginate questo: l'utente è stato creato nell'archivio di directory secoli fa ed è stato provisioning come sopra descritto nelle RP-STS ed è stato utilizzato il sistema felicemente per lungo tempo. Poi c'è un cambiamento di politica che richiede agli utenti dell'applicazione di accettare nuovi termini e condizioni (T & Cs). La prossima volta che l'utente accede al app, sarà reindirizzato al RP-STS, ai IP-STS, che sarà lui a autenticare, ed essere rimbalzato di nuovo al vostro RP-STS. A quel punto, si noterà che l'utente deve accettare il nuovo T & C, in modo che mostrerà all'utente una pagina Web e ottenere il loro accordo. In seguito, i RP-STS emetterà un token di sicurezza e lo reindirizzare alla tua app. La vostra applicazione, come al solito, gestire rivendicazioni e fare ciò che deve fare per autorizzare l'accesso. Non si sa e non si cura che l'utente era solo "re-provisioning." In alternativa, è possibile mantenere le modifiche in sincronia tra il negozio di identità (vale a dire, rubrica aziendale) e il vostro RP-STS negozio affermazione di uso di un prodotto come l'ILM (o FIM come viene ora chiamata). A seconda del sistema, un prodotto che fa di nuovo la sincronizzazione del canale come questo potrebbe essere più appropriato.

A proposito, queste non sono domande "lame"! Ci sono molto keen domande che riflettono una profonda riflessione e la riflessione intelligente su un problema molto complicato. Altri che avrete bisogno di rispondere sono:

  • Come fanno gli amministratori della vostra applicazione aggiornare la sua politica (ad esempio, modificare la T & C)? Che UI / API necessario si crea? È l'interfaccia utente integrata con quella utilizzata per gestire l'IP-STS politica di?
  • Che tipo di relazioni di fiducia deve esistere per fare una tale lavoro del sistema?
  • Che cosa succede se il soggetto non sta usando il profilo passivo? E se utilizza il profilo attivo e / o non v'è alcuna interfaccia utente?
  • Come e dove si trovano le chiavi? Quali autorizzazioni sono necessarie per utilizzare queste chiavi? Come sono reved, distribuito, e come sono amministratori di sistema avvisati quando stanno per scadere?

Questa roba è veramente facile da demo a incontri di gruppo di utenti e in occasione di conferenze, ma in realtà è roba molto avanzata. Se avete altre domande, non esitate a postare qui o entrare in contatto w / me direttamente .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top