Connecting MSCRM On-Premise/IFD with Java

mscrm_on-premise_java

One of the Big challenges while integrating Microsoft Dynamics CRM with non.Net / Microsoft technology is around authentication. While there are some articles explaining ways to do it, it can become quite challenging to implement.

MSCRM Dynamics has three versions

  1. Online: Authentication is through Live
  2. On-Premise: Authentication is through Active – Directory
  3. Hosted (3rd Party): Authentication is through IFD / Claims based.

Connecting with Live is much simpler and there are samples available by Microsoft on how best to connect with non-microosft technologies. When it comes to Active-Directory and IFD, there are little information/guidelines available.

After some research, we felt it would best to build an Http/WebServer to.Net Proxy to tunnel a Java. Javascript or Php based authentication mechanism like Basic or OAuth and tunnel the calls to MSCRM On-Premise or hosted environment.

Here are some high-level steps

  1. Create a.Net Proxy Server to route calls to MSCRM Dynamics On-premise or Hosted
  2. Override the Authentication so that a Basic Auth or OAuth gets translated to Active-Directory or IFD
  3. Route corresponding Calls to the underlying MSCRM SOAP calls (OrganizationService or DiscoveryService)
  4. Maintain a session on Proxy Server so that calls get routed properly to the right SOAP Service on MSCRM.

[Java, JavaScript or Php] -> Http Auth -> MSCRM Web Proxy -> Auth a session with MSCRM -> return auth

[Java, JavaScript or Php] -> Calls to SOAP -> MSCRM Web Proxy -> route calls to MSCRM SOAP -> return response

[Java, JavaScript or Php] -> Ends Session -> MSCRM Web Proxy -> Ends Session or expires in-active sessions -> return response

 This approach worked well. You can find a WebProxy to MSCRM Dynamics On-premise / Hosted through our DBSync ETL tool, which provides features for reading, writing and exploring meta-data on MSCRM On-premise / Hosted. It does support all three versions of authentications.

Leave a Reply