Quali dati devono essere archiviati come "Reclamo"?


9

In ASP.Net Core, trovo che l' Claimsautorizzazione sia un metodo molto non concreto. Possiamo aggiungere qualsiasi cosa come ClaimTypee ClaimValueaccoppiare; gruppi, nome, cognome, brithdate, canAccessThisURI, isEditor, ecc. Tuttavia, questo approccio (che memorizza tutto ciò che può essere archiviato come attestazioni) creerà una tabella di richieste enorme che include il 50% dei dati della mia applicazione.

Mi chiedo, come buona pratica, quali sono i dati comuni che dovrebbero essere archiviati come reclami?


4
Conserveresti lì tutti i dati necessari per convalidare / autorizzare l'utente. Che quasi certamente non include il 50% dei dati dell'applicazione.
Robert Harvey,

Risposte:


3

Un reclamo riguarda semplicemente un utente che può essere potenzialmente utilizzato per identificare o autorizzare qualcuno nel proprio sistema. Questi due vincoli dovrebbero essere sufficienti per limitare ciò che si potrebbe presentare come un reclamo.

Alcune idee per i reclami includono:

  • ID utente
  • nome utente
  • email dell'utente
  • ruoli
  • appartenenze a gruppi

I metadati dell'utente dovrebbero essere limitati a quanto necessario per personalizzare l'app per l'utente e associarlo ai suoi dati. L'ID dell'utente è sufficiente per associare l'utente ai dati o fornire una pista di controllo. Non essere avido.

I ruoli e le appartenenze ai gruppi sono richieste di autorizzazione. Ad esempio, se nella propria applicazione sono presenti gruppi, l'elenco dei gruppi a cui appartiene l'utente consente di verificare rapidamente se possono accedere a un gruppo privato o meno. I ruoli sono un po 'più precisi e parlano dei privilegi di un utente. Di solito sono specifici dell'applicazione, quindi aggiungi solo ciò che ti serve per far rispettare.


0

Esistono molti sistemi, in particolare i sistemi STS / federativi, che funzionano in questo modo:

  • un'affermazione che descrive l'utente in modo univoco
  • assortimento di affermazioni che descrivono cose concettuali generali a cui (e altri) hanno accesso

I dati del "profilo" dell'utente all'interno dell'app potrebbero non tradursi nella / dalla fonte di autenticazione che si sta utilizzando e non è possibile utilizzare sempre gli stessi endpoint o tutti gli utenti.

Se hai familiarità con la vecchia autenticazione di Forms, è analogo al modello di nome utente e ruoli e molte delle cose integrate sembrano ancora così se usi System.Security.Claims.ClaimTypes di nome e ruolo in modo appropriato.

Né il vecchio o il nuovo modello ti hanno dato molto per la rivendicazione o l'ereditarietà dei ruoli, ma ciò non è particolarmente difficile da implementare e implementare ti consente di ridurre il volume di rivendicazioni o ruoli che devi tenere in gioco dalla richiesta da richiedere.

Se la tua applicazione deve tenere traccia di un compleanno, ma non ha bisogno di usarla in un meccanismo di sicurezza, non c'è davvero alcun vantaggio nel mantenerla nella raccolta crediti. Mettilo in un set di dati del profilo separato o qualcosa del genere.

Se la tua applicazione deve ottenere la data di nascita come reclamo da un altro sistema, stai cercando qualcosa di più come personalizzare l'autenticazione federata o consentire al reclamo aggiuntivo di persistere.

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.