2012-07-12 5 views
6

Ho esaminato varie biblioteche OAuth2 java (primavera-sicurezza-OAuth, CXF, scriba, google-OAuth-java-client) e non poteva trovare qualcosa là fuori che supporta il tipo di token Mac come descritto qui: http://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-01Esistono implementazioni Java note per il tipo di token "mac" OAuth2?

Tutti supportano il tipo di token Bearer per impostazione predefinita e nient'altro. C'è qualche ragione particolare per cui questo tipo di token non è supportato affatto?

risposta

0

Non sono un esperto in questo campo, ma mi sembra di avere l'impressione che PicketLink supporti sia MAC che BEARER token types.

Non sono proprio sicuro che sia quello che vuoi. Se hai dei dubbi, puoi contact them here.

2

La ragione alla base della maggior parte delle librerie Java per OAuth 2.0 supporta i tipi di token Bearer è che il profilo di token Bearer porta uno schema semplificato per l'autenticazione. Qualsiasi utente che abbia un token bearer può utilizzarlo per ottenere l'accesso alle risorse associate (senza dimostrare il possesso di una chiave crittografica). Il framework di autorizzazione OAuth 2.0: Bearer Le specifiche di utilizzo del token descrivono l'utilizzo dei token bearer in HTTPrequests per accedere alle risorse protette di OAuth 2.0.

risposta per Bearer token di accesso

HTTP/1.1 200 OK 
    Content-Type: application/json;charset=UTF-8 
    Cache-Control: no-store 
    Pragma: no-cache 

    { 
     "access_token":"mF_9.B5f-4.1JqM", 
     "token_type":"Bearer", 
     "expires_in":3600, 
     "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA" 
     } 

MAC Token profilo definisce lo schema di autenticazione HTTPMAC accesso, fornendo un metodo per realizzare le richieste HTTP autenticate con verifica crittografica parziale della richiesta, per il metodo HTTP, URI della richiesta e host. Ogni definizione di tipo di token di accesso specifica gli attributi aggiuntivi (mac_key, mac_algorithm) inviati al client insieme al parametro di risposta access_token.

HTTP/1.1 200 OK 
    Content-Type: application/json 
    Cache-Control: no-store 

    { 
     "access_token":"SlAV32hkKG", 
     "token_type":"mac", 
     "expires_in":3600, 
     "refresh_token":"8xLOxBtZp8", 
     "mac_key":"adijq39jdlaska9asud", 
     "mac_algorithm":"hmac-sha-256" 
    } 

Il access_token o MAC identificatore chiave è una stringa che identifica la chiave MAC utilizzato per calcolare la richiesta MAC. La stringa è solitamente opaca per il cliente. In genere, il server assegna un ambito e una durata specifici a ciascuna serie di credenziali MAC. L'identificatore può denotare un valore univoco utilizzato per recuperare le informazioni di autorizzazione (ad esempio da un database) o contenere autonomamente le informazioni di autorizzazione in modo verificabile (cioè una stringa costituita da alcuni dati e una firma).

Scribe è la libreria in Java per OAuth 2.0 con profilo token MAC.

Fonte: OAuth 2.0 Bearer Token Profile Vs MAC Token Profile