Come utilizzare i ruoli e gli ambiti di OAuth 2.0 per proteggere i servizi

3

Mi sono assicurato un REST API usando OAuth 2.0 sicurezza e non sono sicuro su come configurare l'accesso di sicurezza utilizzando ruoli o ambiti.

Ci saranno tre tipi di client:

  • Client di app per dispositivi mobili pubblici utilizzato dagli utenti finali che possono accedervi profilo, dati, ecc. (utilizzando il tipo di concessione della password). Con "pubblico" intendo che l'app è intesa da qualsiasi utente e disponibile per qualsiasi utente da Google Store, ecc.)
  • Client di amministrazione non pubblico utilizzato solo da me per l'amministrazione scopi che possono accedere ai servizi amministrativi non consentiti utilizzato da utenti normali (utilizzando il tipo di concessione client_credentials).
  • Client di terze parti non pubblico (utilizzando il tipo di concessione client_credentials) che utilizzerà alcuni servizi creati appositamente per loro.

Devo solo creare tre ruoli diversi, Utente, Amministratore e ThirdPartyX e servizi sicuri con le regole di "oauth2.clientHasRole"? O dovrei creare diversi ambiti e non mi interessa i ruoli? Esiste una regola generale su dove dovrei usare ruoli o ambiti in generale?

    
posta Marios 09.06.2015 - 10:56
fonte

1 risposta

0

Di solito non esiste un modo giusto d'oro per il problema. Tuttavia, ci sono alcune linee guida:

Utilizza il parametro di richiesta scope come indicato nello standard IETF .

Utilizza il reclamo nel payload JWT con una firma HMAC256 per verificare che le attestazioni siano emesse dal server.

Mappare i dati dei permessi dei ruoli a uno schema di database RBAC (ma di solito usiamo MongoDB con NoSQL).

    
risposta data 17.06.2017 - 23:22
fonte

Leggi altre domande sui tag