Ok, więc mam usługę uwierzytelniania WebAPI, która jest używana dla żądania tokena i zwraca token nośnika do klienta, dodałem identyfikator AppId i Api do właściwości, więc dostać z powrotemKorzystanie z wielu schematów autoryzacji (HMAC i 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"
}
AppID i Klucz API powinny być używane przez klienta do wygenerowania HMAC SHA256 podpisu dla każdego żądania.
Na moim kontroler Użyłem atrybut autoryzować i stworzył atrybut HmacAuthentication które realizują IAuthenticationFilter
[RoutePrefix("api/account")]
[Authorize]
[HmacAuthentication]
public class AccountController : ApiController
{
// rest of controller here
}
Problem mam jest to, że każdy wniosek do tego kontrolera będzie oczekiwać nagłówek Authorization: Bearer ...
i atrybut HmacAuthentication oczekuje także nagłówek Authorization: amx
.
Teraz wiem, że można mieć tylko jeden nagłówek Authorization więc moja quandry to w jaki sposób można realizować zarówno nagłówki autoryzacji bez zerwania HTTP, ma ktoś osiąga zastosowanie zarówno OWIN OAuth i uwierzytelniania HMAC
Śledziłem te przykłady od 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
jestem w obliczu podobnej sytuacji. Zastanawiam się po prostu używać niestandardowego nagłówka zamiast próbować zrobić dwa nagłówki Authorization. Czy wymyśliłeś coś lepszego? – Glaucus