Quantcast
Channel: ppedv Team Blog
Viewing all articles
Browse latest Browse all 1198

ASP.NET core Web Api Key Authentication

$
0
0

Nachdem ich mich im dem letzten Beitrag mit dem klassischen .NET Framework ASP.NET MVC als Beispiel beschäftigt habe, soll auch die moderne Variante nicht fehlen. Aktuell hat Visual Studio kein VB.NET ASP.NET Core Templates, so das als Sprache für den wenigen Code C# zum Einsatz kommt.

 

Es wird eine Filter Klasse benötigt, die als Attribut (AuthorizationKeyFilter) der Web Api Methode vorangestellt wird. Das ist optisch einfach schöner Code.

   1:  [HttpGet]
   2:  [AuthorizationKeyFilter]
   3:  public IEnumerable<string> Get()
   4:   {
   5:  returnnewstring[] { "value1", "value2" };
   6:   }

Den Namenskonventionen folgend wird die neue C# Klasse AuthorizationKeyFilterAttribut genannt und implementiert Interfaces für Attribute und Authorization um an der richtigen Stelle der Pipeline zu landen. Im HTTP Header des API Requests wird ein Authorization Feld erwartet, gefolgt von ApiKey und einem Wert. Der Ansatz ist der RFZ 6750 entliehen in der per Bearer Token Authentifiziert wird in der Form: Authorization Bearer MyToken

Der Header wird in der OnAuthorization Methode aus dem HttpContext extrahiert und auf gültige Zusammensetzung validiert. In jedem anderen Fall der Fehlercode 401 (not authorized) als Response geliefert.

   1:  publicclass AuthorizationKeyFilterAttribute : Attribute, IAuthorizationFilter
   2:      {
   3:  publicvoid OnAuthorization(AuthorizationFilterContext context)
   4:          {
   5:              var apiKey = context.HttpContext.Request.Headers["Authorization"];
   6:  if (apiKey.Any())
   7:              {
   8:                  var subStrings = apiKey.ToString().Split(" ");
   9:  if (!(subStrings.Length >= 2 && subStrings[0] == "ApiKey"&& subStrings[1]=="1234"))
  10:                  {
  11:                      context.Result = new UnauthorizedResult();
  12:                  }
  13:              }
  14:  else
  15:              {
  16:                  context.Result = new UnauthorizedResult();
  17:              }
  18:          }
  19:      }
  20:  }

Für den Test der Api empfiehlt sich Fiddler und der darin enthaltene Request Composer. Zuerst wird ein Request aus dem Browser (api/controller) mitgeschnitten.

image

Logischerweise kommt hier die Fehlermeldung. Als nächstes wird per Drag und Drop dieser Listeneintrag auf den Reiter Composer gezogen und der Header um den Api Key Eintrag ergänzt und er Request per Execute ausgeführt

image

Nun muss der Response den HTTP Code 200 enthalten und natürlich die Json Daten.

image


Viewing all articles
Browse latest Browse all 1198

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes