Quali sono le affermazioni in ASP .NET Identity


174

Qualcuno può spiegare cosa significa il meccanismo di reclamo nel nuovo ASP.NET Identity Core?

Come posso vedere, c'è un AspNetUserLoginstavolo, che contiene UserId, LoginProvidere ProviderKey.

Tuttavia, non riesco ancora a capire o trovare alcuna informazione su quando i dati vengono aggiunti alla AspNetUserClaimstabella e per quali situazioni viene utilizzata questa tabella?

Risposte:


207

cosa significa meccanismo di reclamo nel nuovo ASP.NET Identity Core?

Esistono due approcci di autorizzazione comuni basati su ruolo e reclamo.

Sicurezza basata sui ruoli

Un utente viene assegnato a uno o più ruoli attraverso i quali l'utente ottiene i diritti di accesso. Inoltre, assegnando un utente a un ruolo, l'utente ottiene immediatamente tutti i diritti di accesso definiti per quel ruolo.

Sicurezza basata sui reclami

Un'identità basata su attestazioni è l'insieme di attestazioni. Un reclamo è un'affermazione che un'entità (un utente o un'altra applicazione) fa su se stesso, è solo un reclamo. Ad esempio, un elenco di reclami può avere il nome dell'utente, l'e-mail dell'utente, l'età dell'utente, l'autorizzazione dell'utente per un'azione. In Sicurezza basata sui ruoli, un utente presenta le credenziali direttamente all'applicazione. In un modello basato sui reclami, l'utente presenta i reclami e non le credenziali all'applicazione. Affinché un reclamo abbia un valore pratico, deve provenire da un'entità attendibile dall'applicazione.

I passaggi seguenti illustrano la sequenza di ciò che accade in un modello di sicurezza basato su attestazioni:

  1. L'utente richiede un'azione. L'applicazione relying party (RP) richiede un token.
  2. L'utente presenta le credenziali all'autorità emittente di cui l'applicazione RP si fida.
  3. L'autorità emittente emette un token firmato con reclami, dopo aver autenticato le credenziali dell'utente.
  4. L'utente presenta il token all'applicazione RP. L'applicazione convalida la firma del token, estrae i reclami e, in base ai reclami, accetta o rifiuta la richiesta.

Ma non riesco ancora a capire e trovare alcuna informazione, quando i dati si aggiungono ad AspNetUserClaims e per quali situazioni utilizza questa tabella?

Quando ci si trova in una situazione in cui non viene utilizzata una sicurezza basata sui ruoli e si è scelto di utilizzare la sicurezza basata sui reclami, è necessario utilizzare la tabella AspNetUserClaims. Per come utilizzare i reclami in ASP.NET Identity, vedere il link seguente per ulteriori informazioni.

http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html

Aggiornare

A che ora devo usare la sicurezza basata sui ruoli e quando basata sui reclami? Potresti per favore scrivere qualche esempio?

Non esiste una situazione molto chiara in cui utilizzeresti o meno la sicurezza basata sui ruoli o basata sui reclami, non come un caso in cui utilizzeresti A anziché B.

Tuttavia, il controllo degli accessi basato su attestazioni consente una migliore separazione delle regole di autorizzazione dalla logica aziendale principale. Quando le regole di autorizzazione cambiano, la logica aziendale principale rimane invariata. Ci saranno situazioni in cui potresti preferire l'utilizzo dell'approccio basato sui reclami.

A volte non sono necessarie dichiarazioni. Questo è un disclaimer importante. Le aziende con una serie di applicazioni interne possono utilizzare l'autenticazione integrata di Windows per ottenere molti dei vantaggi offerti dai reclami. Active Directory svolge un ottimo lavoro di archiviazione delle identità degli utenti e poiché Kerberos fa parte di Windows, le applicazioni non devono includere molta logica di autenticazione. Finché ogni applicazione che costruisci può utilizzare l'autenticazione integrata di Windows, potresti aver già raggiunto l'utopia della tua identità. Tuttavia, ci sono molti motivi per cui potresti aver bisogno di qualcosa di diverso dall'autenticazione di Windows. Potresti avere applicazioni rivolte al Web che vengono utilizzate da persone che non dispongono di account nel tuo dominio Windows. Un altro motivo potrebbe essere che la tua azienda si è fusa con un'altra società e tu " hai problemi con l'autenticazione in due foreste Windows che non hanno (e potrebbero non avere mai) una relazione di fiducia. Forse desideri condividere le identità con un'altra società che ha applicazioni non.NET Framework o devi condividere le identità tra applicazioni in esecuzione su piattaforme diverse (ad esempio, Macintosh). Queste sono solo alcune situazioni in cui l'identità basata sui reclami può essere la scelta giusta per te.

Per ulteriori informazioni, visitare http://msdn.microsoft.com/en-us/library/ff359101.aspx


6
Grazie per la risposta, ma ancora non capisco, a che ora devo usare la sicurezza basata sui ruoli e quando basata sui reclami? Potresti per favore scrivere qualche esempio?
Maxim Zhukov,

1
@ FSou1, non esiste un caso in cui l'utente utilizzi un approccio basato sui ruoli o basato sui reclami. Vedi la mia risposta aggiornata per maggiore chiarezza.
Lin,

The user presents the credentials to the issuing authority that the RP application trusts.Cosa puoi usare come questa autorità / emittente? Alcuni esempi sarebbero belli. Ho rosso l'articolo sul sito msdn (il link che hai fornito), ma elencano solo un esempio: ADFS, ci sono altre opzioni? Non riesco a trovare queste informazioni da nessuna parte. :(
Jo Smo,

1
Una guida all'identità basata sui reclami e al controllo degli accessi fornisce una spiegazione completa degli approcci basati sui reclami rispetto al controllo degli accessi in base al ruolo (RBAC). Il libro completo è disponibile gratuitamente e online tramite download MS. goodreads.com/book/show/…
Chris Mylonas il

2
Il libro Microsoft gratuito RBAC citato da @ChrisMylonas può essere scaricato gratuitamente da Microsoft qui: microsoft.com/en-us/download/details.aspx?id=28362
OzBob

16

Solo per aggiungere altro su ciò che @Lin ha detto sopra. Mi riferisco specificamente alla domanda:

A che ora devo usare la sicurezza basata sui ruoli e quando basata sui reclami? Potresti per favore scrivere qualche esempio?

Prendi in considerazione un caso in cui hai un sistema di clock in cui hai un tecnico e un manager. Alla fine di ogni settimana, il tecnico deve organizzare rapporti con informazioni temporali che mostrano le ore di lavoro degli artigiani che hanno lavorato per quella settimana, che viene consolidata e utilizzata dal libro paga. Tali sistemi devono spesso essere modificati o corretti prima che vengano presentate le relazioni finali, poiché non si desidera pagare in eccesso o sottopagare i propri dipendenti. È possibile utilizzare un Role-Basedapproccio per Manager e Tecnico creando un Manager Rolee Technician Role. MaManager Role è quello con la possibilità di accedere e modificare le informazioni di clock degli artigiani. D'altra parte, puoi avere ilTechnician Rolesenza queste capacità di accedere a tali informazioni. Ma ecco la parte interessante; Un manager può presentare un reclamo e consentire a un tecnico di accedere ai sistemi di clock e creare report. Quindi un reclamo può essere fatto solo per l'accesso senza modifica o può essere fatto con capacità di accesso e modifica.

È più come dire, Beh, per impostazione predefinita come manager posso accedere ad alcune informazioni a cui il mio tecnico non può accedere. Ma non sono sempre in ufficio? cosa posso fare in modo che possa ancora fare il lavoro anche quando non ci sono? Per risolvere questo problema, il sistema può avere la funzione per i gestori di creare richieste per le persone senza accesso ad alcune informazioni specifiche. Spesso li vediamo ovunque nei nostri sistemi ERP. Un utente senza accesso ad alcuni moduli e quando viene promosso sta dando l'autorizzazione a più moduli del sistema ERP, a volte mantenendo lo stesso ruolo utente.

Questo è un esempio che puoi prendere in considerazione per comprendere meglio le rivendicazioni e i ruoli.


0

Esistono due tipi di autenticazione nell'identità ASP.Net.

  1. Basato sul ruolo
  2. Basato sul reclamo

Puoi usarne uno o entrambi contemporaneamente. Usa il ruolo basato su cose ben definite. Ad esempio, crei due insegnanti e studenti rolea. Solo l'insegnante può aggiungere materie. Quindi hai assegnato il ruolo di insegnante a quegli utenti di cui desideri avere accesso per aggiungere materie.

Il reclamo è più flessibile. Supponiamo di avere un requisito che alcuni studenti possono anche aggiungere materie. In questo caso devi creare un altro ruolo che può essere studente e accedere per aggiungere materia. Ma se stai usando il claim based sarebbe molto semplice. Basta creare un reclamo come addSubject e assegnarlo a qualsiasi utente a cui si desidera accedere per aggiungere un oggetto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.