Va bene così ho un servizio di autenticazione WebAPI che viene utilizzato per la richiesta/token e restituisce il token Bearer al client, ho aggiunto un AppId e una chiave Api alle proprietà in modo da Get BackUtilizzo di più schemi di autorizzazione (HMAC e OATH)
{
"access_token": "...",
"token_type": "bearer",
"expires_in": 86399,
"dm:appid": "1",
"dm:apikey": "...",
".issued": "Wed, 01 Jul 2015 20:46:45 GMT",
".expires": "Thu, 02 Jul 2015 20:46:45 GMT"
}
L'AppId e Api chiave devono essere utilizzati dal client per generare una firma SHA256 HMAC per ogni richiesta.
Il mio controller ho usato l'attributo Autorizza e ha creato un attributo HmacAuthentication che implementano IAuthenticationFilter
[RoutePrefix("api/account")]
[Authorize]
[HmacAuthentication]
public class AccountController : ApiController
{
// rest of controller here
}
Il problema che ho è che qualsiasi richiesta di questo controller si aspetterà la Authorization: Bearer ...
intestazione e l'attributo HmacAuthentication aspetta anche l'intestazione Authorization: amx
.
ora so che si può avere una sola intestazione di autorizzazione quindi il mio quandry è come posso implementare sia le intestazioni di autorizzazione senza rompere HTTP, qualcuno ha ottenuto l'uso di entrambi OWIN OAuth e autenticazione HMAC
ho seguito questi esempi da Taiseer Joudeh
Token Based Authentication using ASP.NET Web API 2, Owin, and Identity Secure ASP.NET Web API using API Key Authentication – HMAC Authentication
che sto affrontando una situazione simile. Sto considerando di utilizzare solo un'intestazione personalizzata anziché provare a far funzionare due intestazioni di autorizzazione. Ti è venuto in mente qualcosa di meglio? – Glaucus