1
votes

I'm trying to get a file from a ftp server trough ftps. This post is updated with more test results and knowledge from replies and my own research. The ftp server support ftps Implicit SSL/TLS mode on port 990 and Exlicit mode on port 21. I have tried to get the file from Logic apps and Data factory, both unsuccessful.

Testing Implicit mode. Port 990, Enable SSL, Binary transport true/false tried both(Logic App), Server Certificate Validation disabled, yields this error:

Data factory error:

"Failed to connect to FTP server. ADF doesn't support SSL/TLS implicit encryption mode. Please make sure you are connecting by explicit encryption mode. The underlying connection was closed: The server committed a protocol violation."

Logic apps error:

{
  "error": {
    "code": 502,
    "source": "logic-apis-northeurope.azure-apim.net",
    "clientRequestId": "c935a165-c725-4d26-824d-d1df3c82a65c",
    "message": "BadGateway",
    "innerError": {
      "status": 502,
      "message": "An FTP protocol violation was detected. This could be caused by an implicit TLS/SSL configuration of the FTP server that is not supported. Please try explicit TLS/SSL.\r\nclientRequestId: c935a165-c725-4d26-824d-d1df3c82a65c",
      "error": {
        "message": "An FTP protocol violation was detected. This could be caused by an implicit TLS/SSL configuration of the FTP server that is not supported. Please try explicit TLS/SSL."
      },
      "source": "ftp-ne.azconn-ne.p.azurewebsites.net"
    }
  }
}

As the response below indicate, either Data Factory nor Logig apps supports implicit mode.

Testing Explicit mode. Port 21, Enable SSL, Binary transport true/false tried both(Logic App), Server Certificate Validation disabled, yields this error:

Data Factory error:

"Failed to connect to FTP server. Please make sure the provided server informantion is correct, and try again. The remote server returned an error: 150 Opening data channel for directory listing of "/" . Authentication failed because the remote party has closed the transport stream"

Logic App error:

{
  "error": {
    "code": 502,
    "source": "logic-apis-northeurope.azure-apim.net",
    "clientRequestId": "61a1cc3e-74f3-40ac-a9f3-79a1409d81cc",
    "message": "The response is not in a JSON format.",
    "innerError": "The specified CGI application encountered an error and the server terminated the process."
  }
}

Test using FileZilla client.

Both implicit port(990) and explicit mode (port 21) works fine. My original question where: Is there any way to get the FTP connection in either Data factory or Logic Apps to work with SSL/TLS implicit mode? As the response below states. Logic Apps and Data factory does not support Implicit mode.

A work around is to create a Function App, with c# code that gets the file trough implicit mode. And call the Function App from logic apps and/or data factory.

But why isn't explicit mode work? Any tips?

1
Are you able to connect using an ftp client such as filezillaAlex Gordon

1 Answers

1
votes

Unfortunately neither Azure Data Factory nor Azure Logic Apps support Implicit TLS/SSL Configuration. This is a known limitation.

Azure Data Factory limitation: The ADF FTP connector supports accessing FTP server with either no encryption or explicit SSL/TLS encryption; it doesn’t support implicit SSL/TLS encryption. (Ref: Copy data from FTP server by using Azure Data Factory)

Azure Logic Apps limitaiton: The Azure Logic Apps FTP connector supports only explicit FTP over SSL (FTPS) and isn't compatible with implicit FTPS (Ref: Azure Logic Apps FTP connector limiations)