Zoho Authentication: Successful in Fabric Data Factory, Fails in Azure Data Factory"

Amit Mohanty 0 Reputation points
2025-01-31T08:55:06.53+00:00

I am trying to access https://accounts.zoho.com/oauth/v2/token to get the token for my zoho endpoint.. When using Web activity on fabric it is a cakewalk and I am getting token but when I am trying same in azure data factory I am getting an error as below,

Error calling the endpoint ' https://accounts.zoho.com'. Response status code: 'NA - Unknown'. More details: Exception message: 'NA - Unknown [ClientSideException] An error occurred while sending the request.'. Request didn't reach the server from the client. This could happen because of an underlying issue such as network connectivity, a DNS failure, a server certificate validation or a timeout.

Has anyone faced this issue and can help me on it.

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,215 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Ganesh Gurram 3,765 Reputation points Microsoft Vendor
    2025-01-31T11:18:19+00:00

    Hi @Amit Mohanty

    Greetings & Welcome to the Microsoft Q&A forum! Thank you for sharing your query.

    It seems you're encountering an issue where the Zoho OAuth request works in Microsoft Fabric but fails in Azure Data Factory (ADF). The error message suggests that the request isn’t reaching the server, which could be due to network-related issues, DNS failures, or certificate validation problems.

    Here are a few things to check and try in order to resolve this:

    Check Network Configuration - Ensure that your Azure Data Factory is configured to allow outbound traffic to the Zoho endpoint. If you are using a Virtual Network (VNet) or firewall rules, make sure that the necessary ports and endpoints are open.

    Service Endpoint - Verify that the service endpoint for Zoho is correctly configured in ADF. Sometimes, small typo can cause issues.

    Authentication Method - Double-check the authentication method you are using in ADF. Ensure that you are using the correct OAuth 2.0 flow and that all required parameters (client ID, client secret, grant type, etc.) are correctly set in your Web activity.

    Timeout Settings - If the request is timing out, consider increasing the timeout settings in your Web activity. This can help if the Zoho server is taking longer to respond.

    SSL Certificate Validation - Since the error message mentions a potential server certificate validation issue, ensure that the SSL certificate for the Zoho endpoint is valid and trusted. ADF may have stricter SSL validation compared to Fabric Data Factory.

    Check ADF Logs - Review the activity logs in Azure Data Factory for any additional error messages or details that might provide more context about the failure.

    For more details refer to these documentations:

    I hope this information helps.

    Kindly consider upvoting the comment if the information provided is helpful. This can assist other community members in resolving similar issues.


  2. Rakesh Govindula 0 Reputation points Microsoft Vendor
    2025-02-06T09:58:21.9633333+00:00

    Hi @Amit Mohanty ,

    Thank you for reaching out to Microsoft Q&A!

    As you have a working REST API, you can try the below possible workarounds to achieve your requirement.

    Solution 1 - Using Azure Dataflow:

    Use your REST dataset as source in the Azure Dataflow and give the desired configurations.

    Here, I have used a sample REST API to get access token.

    enter image description here

    Add sink here and in the sink select Sink cache and check the Write to activity output checkbox.

    enter image description here

    Now, in the pipeline take a dataflow activity and add the above dataflow to it. In the activity, give the below configurations.

    enter image description here

    Upon running the dataflow from pipeline, it will generate the desired access token, and you can get it from the output of the dataflow activity.

    enter image description here

    Use the below expression after the dataflow activity to use this token in the sub-sequent activities.

    
    @activity('Data flow1').output.runStatus.output.sink1.value[0].body.access_token
    
    

    Solution 2 - Using copy activity with a storage account:

    You can use REST dataset with copy activity and store the access token inside a blob file. After storing it into a file, use lookup activity to extract the same and you can use it for further activities.

    Hope this helps.

    If the answer is helpful, please click Accept Answer and kindly upvote it. If you have any further questions about this answer, please click Comment.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.