1

Wir erstellen eine plattformübergreifende Anwendung mit Ionic und der Verwendung von ASP.NET Core WebAPI, die auf azurblauem Hintergrund gehostet wird. Wir verwenden das Identity-Authentifizierungssystem, aber wir müssen den Zugriff auf diese API auf unsere Anwendung beschränken. Wenn also andere Apps oder Websites versuchen, auf die API zuzugreifen, werden sie blockiert. Bitte beachten Sie:Beschränken des Zugriffs auf die Web-API auf die Anwendung

  • Die Webapp ist SSL gesichert
  • Ich habe gesagt, dass eine gemeinsame Code sendet , wie es aus dem binären

Bitte geben mir nicht nützlich ist, genommen werden Ihren Vorschlag Löse dieses Problem.

+0

IP würdiger wäre Ihre schnellste Lösung sein, ist aber nicht narrensicher, wenn dies ein externes System ist. Wir verwenden IP-Whitelisting auf einigen unserer API-Server im LAN als sekundäre Sicherheitsmaßnahme. –

+0

Verwenden Sie den Client-Credential-Flow. Oder wenn Sie personalisierte Konten haben (eines für jede Person), verwenden Sie einen der OpenID-Flüsse (d. H. AuthCode). außerhalb des Umfangs, um weiter ins Detail zu gehen – Tseng

+0

Wir verwenden die einfache HTTP-Authentifizierung, die AuthorizationFilterAttribute implementiert. Dies wird beim ersten Anruf ausgelöst. – lcryder

Antwort

0

Wie gewünscht, hier ist eine Shell eines Autorisierungsfilters. Wir senden ein JSON-Objekt, das serialisiert und verschlüsselt ist.

Public Class XxxxxxFilter Erbt AuthorizationFilterAttribute

Public Overrides Sub OnAuthorization(actionContext As System.Web.Http.Controllers.HttpActionContext) 

    Dim authHeader As System.Net.Http.Headers.AuthenticationHeaderValue = actionContext.Request.Headers.Authorization 

    If authHeader IsNot Nothing Then 

     '... then check that its set to basic auth with an actual parameter .... 
     If String.Compare("basic", authHeader.Scheme, True) = 0 AndAlso String.IsNullOrWhiteSpace(authHeader.Parameter) = False Then 

      Dim cred As String = Encoding.GetEncoding("iso-8859-1").GetString(Convert.FromBase64String(authHeader.Parameter)) 

      ' validate the cred value however needed 
      ' you want to exit at this point if all is ok 

     End If 

    End If 

    ' ... if we get this far then authentication has failed 
    actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized) 

End Sub 

End Class

Verwandte Themen