Forum Discussion

Harineeeeeeee's avatar
1 year ago
Solved

How to access Dynamics CRM API from PowerBi using Client Id , Client secret and tenant Id using

Hi,

 I am trying to fetch data from Dynamics CRM API to fetch audit info 

 

https://community.dynamics.com/blogs/post/?postid=f40996bf-52a9-417c-8294-bf35b1f53a84 

 

Above is the blog I referred to get API Info, the sample API I used is as,

 

https://{orgname}.crm.dynamics.com/api/data/v9.2/audits

 

Also cross verified that audits logs are enabled the APi works perfect in Dynamics CRM but when I try using this APi in PowerBI which has service principal authentication method gives me error saying no access to target data source?

 

how to resolve this?

should we need to Enable Control user access to environments especially with security groups and licensee? 

please assist on how to consume Dynamics CRM API in PowerBI 

  • lbendlin's avatar
    lbendlin
    1 year ago

    You can validate tokens at jwt.io

     

     

  • hi Harineeeeeeee 

    As from our previous conversation, to verify the access token, you can use jwt.io. When you authenticate using the service principal, you should receive an access token. Go to jwt.io and paste your access token into the "Encoded" field. The tool will decode the token and display its contents. Look for the "scp" section in the decoded token to ensure it includes the necessary permissions to access the Dynamics CRM API. Generating a login bearer token first and then using that token in your API calls can help resolve the issue by ensuring you have a valid token with the required permissions. 

     

    Probably you can generate and login bearer token first and then using that token in your API calls can help resolve the issue. This approach ensures that you have a valid token with the required permissions to access the Dynamics CRM API. By including the bearer token in the Authorization header of your API calls, the API can verify that you have the necessary permissions to access the data. 

    If this post clears your doubt, please give us Kudos and consider marking Accepting it as a solution to guide other members in finding it more easily.

13 Replies

  • how did you register the app permission scope? delegated?

      • lbendlin's avatar
        lbendlin
        Super User

        No, in Azure, when you created the app that gave you the client ID and secret

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi Harineeeeeeee 

    Thanks for posting in the Microsoft forum community. 

    As per your query about accessing Dynamics CRM API from PowerBi using Client Id, Client secret, and tenant Id. Here are some steps to resolve your issue: 

    • Check API Permissions: 
      Ensure API permissions are correctly configured in Azure. 
      Register the app in Azure AD and grant it necessary API permissions to access Dynamics CRM API. 
    •  Enable Control User Access: 
         Enable control user access to environments using security groups and licenses. 
         Create security groups, add members, and associate these groups with the environment for the correct access level. 
    •   Use Correct Authentication Method: 
          Use the correct authentication method (service principal) with the required scope in the access token. 
          Verify the access token at jwt.io to ensure the "scp" (scope) section includes necessary permissions. 
    •   Verify Licensing: 
          Ensure the service principle is properly configured in Azure AD and Dynamics 365 to authenticate and access data. 
    •    Validate API Access: 
          Test the API using tools like Postman to confirm that the service principal can retrieve data. 
    •    Power BI Configuration: 
          Configure the data source in Power BI to use the service principal authentication method. 
          Ensure the "Token Audience URI" matches the Dynamics CRM API endpoint. 

     If my response addressed your question, please mark my post as a solution to assist others. 
    Additionally, if you find my response helpful, consider giving "Kudos". 

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi Harineeeeeeee 
    I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
    Thank you.

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi Harineeeeeeee 
    I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
    Thank you.

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    hi Harineeeeeeee 

    As from our previous conversation, to verify the access token, you can use jwt.io. When you authenticate using the service principal, you should receive an access token. Go to jwt.io and paste your access token into the "Encoded" field. The tool will decode the token and display its contents. Look for the "scp" section in the decoded token to ensure it includes the necessary permissions to access the Dynamics CRM API. Generating a login bearer token first and then using that token in your API calls can help resolve the issue by ensuring you have a valid token with the required permissions. 

     

    Probably you can generate and login bearer token first and then using that token in your API calls can help resolve the issue. This approach ensures that you have a valid token with the required permissions to access the Dynamics CRM API. By including the bearer token in the Authorization header of your API calls, the API can verify that you have the necessary permissions to access the data. 

    If this post clears your doubt, please give us Kudos and consider marking Accepting it as a solution to guide other members in finding it more easily.

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi Harineeeeeeee 
    Based on our previous conversation, if the solution I provided works for you, please don't hesitate to reach out if you have any further questions. If my response has resolved your query, kindly accept it as a solution and give it a 'Kudos' to help other members find it easily.

    Thankyou.

     

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi Harineeeeeeee 

    I hope this information is helpful. Please let me know if you have any further questions or if you'd like to discuss this further. If this answers your question, please Accept it as a solution and give it a 'Kudos' so others can find it easily.
    Thank you.