1
我們正在使用Ionic構建跨平臺應用程序,並使用Azure上託管的ASP.NET Core WebAPI。 我們正在使用身份驗證系統,但我們需要將對此API的訪問權限限制在我們的應用程序中。所以如果其他應用程序或網站嘗試訪問API,它們將被阻止。請注意:將Web API限制爲應用程序
- web應用程序是SSL保護
- 我已被告知,發送共享代碼 是沒有用的,因爲它可以從二進制
採取請給我你的建議,解決這個問題。
我們正在使用Ionic構建跨平臺應用程序,並使用Azure上託管的ASP.NET Core WebAPI。 我們正在使用身份驗證系統,但我們需要將對此API的訪問權限限制在我們的應用程序中。所以如果其他應用程序或網站嘗試訪問API,它們將被阻止。請注意:將Web API限制爲應用程序
採取請給我你的建議,解決這個問題。
按照要求,這是一個授權過濾器的外殼。 我們發送一個序列化和加密的JSON對象。
公共類XxxxxxFilter 繼承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
末級
IP白名單將是你最快的解決辦法,但如果這是一個外部系統不是傻瓜證明。我們在局域網的一些API服務器上使用IP白名單作爲輔助安全措施。 –
使用客戶端憑證流程。或者,如果您有個性化賬戶(每個人一個)使用其中一個OpenID流(即authCode)。超出範圍進一步細化 – Tseng
我們使用Basic HTTP Authentication實現AuthorizationFilterAttribute。當電話首次進入時,這將被打。 – lcryder