DataGrip and Azure SQL Server Active Directory – HowTo

I Did It!

I really like JetBrains products. I use DataGrip all the time in my role as a DBA. I’m in the process of switching our company over the Active Directory logins and wanted to take things for a spin.

Being that most of my work is done on a Mac, DataGrip is pretty much the best tool available for working with a database. This How-To should work on any OS, I just haven’t tested it on any others (yet).

Enough talk: time for action.

Now You Do It!

Step 1: Get A Few Required JARs.

The main library you’ll be working with is ADAL4J (https://github.com/AzureAD/azure-activedirectory-library-for-java/wiki/ADAL4J-Basics). The simplest way to do this step, in my opinion, is to use a barebones Maven pom.xml. That way you don’t have to compile from source and find all the dependencies manually. Horray!

If you don’t have Maven (https://maven.apache.org/) installed you’ll need it. If you prefer Gradle, I’m sure the same can be accomplished with that.

This is what my pom.xml looks like:

<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.foo</groupId>
  <artifactId>bar</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <dependencies>

  <dependency>
    	    <groupId>com.microsoft.azure</groupId>
      <artifactId>adal4j</artifactId>
      <version>1.6.3</version>
  </dependency>
  </dependencies>

  <build>
    <directory>lib</directory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <configuration>
          <outputDirectory>
            ${project.build.directory}
          </outputDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

Now run this command wherever your pom.xml is at:

mvn clean dependency:copy-dependencies

It will create a “lib” directory containing all the jars you need.

Step 2: Add the JARs to the Azure (Microsoft) Driver

1. In the Data Sources and Drivers window (File menu), select the Azure (Microsoft) driver. In the Driver files pane, click the + button and select “Custom JARs...

Adding Custom JARs.

2. Navigate to the JARs fetched in Step 1. Select all of them.

Select all the JARs.

Your screen should look something like this (aside from the fancy blurs to hide my super secret info).

After adding the drivers.

Step 3: Altering the Advanced Connection Options

There is only one thing you need to change for Active Directory authentication. The authentication method. It’s really easy.

At this point, I’m assuming you have an existing connection. If not, create one and select the Azure (Microsoft) driver.

Navigate to the Advanced tab. I like to sort the options by Name. However you do it, find the setting named “authentication.”

Click in the Value column and select ActiveDirectoryPassword (if you’re on Windows™ and use integrated AD… select ActiveDirectoryIntegrated).

Setting ActiveDirectoryPassword for authentication.

I imagine I don’t have to tell you to “click OK or Apply.”

Success (I hope)!

At this point you should be able to log in to your database instance. Of course, that assumes your credentials and hostname are correct. I hope this helps!

August 29, 2018 Cole Kelley Databases No Comments