Okay, ich habe einen WebAPI-Auth-Dienst, der für die/Token-Anfrage verwendet wird und das Bearer-Token an den Client zurückgibt, ich habe den Eigenschaften einen AppId- und Api-Schlüssel hinzugefügt Holen Sie sich zurückVerwenden mehrerer Autorisierungsschemata (HMAC und 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"
}
die AppId und Api Key sollte vom Client verwendet werden, um eine HMAC SHA256 Signatur für jede Anforderung zu generieren.
Auf meinem Controller habe ich das Autorisieren Attribut verwendet und erstellt ein HmacAuthentication Attribut, die IAuthenticationFilter implementieren
[RoutePrefix("api/account")]
[Authorize]
[HmacAuthentication]
public class AccountController : ApiController
{
// rest of controller here
}
Das Problem ich habe, ist, dass jeder Antrag auf diesen Controller wird erwarten, dass die Authorization: Bearer ...
Header und das HmacAuthentication Attribut erwarten auch die Authorization: amx
Kopfzeile.
Jetzt weiß ich, dass man nur so ein Authorization-Header haben kann meine quandry ist, wie kann ich ohne brechen HTTP beide Authorization Header implementieren, hat jemand die Verwendung sowohl OWIN OAuth und HMAC-Authentifizierung erreicht
ich diese Beispiele gefolgt von 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
Ich bin vor einer ähnlichen Situation gesichert haben. Ich erwäge, nur einen benutzerdefinierten Header zu verwenden, anstatt zu versuchen, zwei Autorisierungsheader zu arbeiten. Hast du etwas besseres gefunden? – Glaucus