1

私たちは、Ionicを使用し、AzureでホストされているASP.NET Core WebAPIを使用して、クロスプラットフォームのアプリケーションを構築しています。 ID認証システムを使用していますが、このAPIへのアクセスをアプリケーションに限定する必要があります。したがって、他のアプリやサイトがAPIにアクセスしようとすると、ブロックされます。ご注意:Web APIからアプリケーションへのアクセスの制限

  • をWebアプリケーションSSLは、私は親切に私にあなたの提案を与えることがバイナリ

から撮影することができますように共有コード を送信することは有益ではないことを言われている

  • を確保していますこの問題を解決します。

  • +0

    IPホワイトリストは、あなたの最も早い解決策になるが、これは、外部システムであれば、証拠を欺くされていません。私たちは、二次的なセキュリティ対策として、LAN上のいくつかのAPIサーバでIPホワイトリストを使用しています。 –

    +0

    クライアント - 資格フローを使用します。または、パーソナライズされたアカウント(個人ごとに1つずつ)を持っている場合は、OpenIDフローの1つ(authCode)を使用します。範囲から外れて詳細に進む – Tseng

    +0

    AuthorizationFilterAttributeを実装する基本HTTP認証を使用します。 – lcryder

    答えて

    0

    要求に応じて、ここに承認フィルタのシェルがあります。 シリアル化され、暗号化された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 
    

    エンドクラス

    関連する問題