JDBC using Azure Active Directory credentials - azure-active-directory

I'm getting wrong username or password when trying to make a JDBC connection to snowflake. I believe the culprit is that there is an Azure Active Directory layer between the connection. Is there a specific way I should be handling making this connection while using the azure credentials from my Java app through Azure Active Directory to Snowflake? Thanks in advance!

In your JDBC connection parameters, you need to set the authenticator parameter to externalbrowser or possibly depending on the setup oauth with a setting for the oauth token parameter.
You can read more about OAuth here, https://docs.snowflake.com/en/user-guide/oauth-custom.html
The section specific to OAuth on JDBC on that page is here, https://docs.snowflake.com/en/user-guide/jdbc-configure.html#label-jdbc-connection-parameters. Scroll down from that bookmark on the page to the authenticator parameter section.

Related

How does SqlClient gets 'scope' of Azure SQL Server when using Azure Active Directory as authentication method?

As I understand that for getting selective authorization for a protected resource using Azure AD based OAuth 2.0 mechanism, client application need to mandatorily provide the scope URL for getting access token.
Other parameters usually include client ID, client secret (in case of Service Principal auth flow), Azure AD username and password, etc.
SqlClient has integrated Azure AD OAuth mechanism with SqlClient for authorizing a database connection.
So, I guess SqlClient also need these parameters for establishing an connection to Azure SQL server using Azure Active Directory authentication method.
But I don't see that it accepts any scope from the client application.
How does SqlClient gets scope for a particular Azure SQL server instance? I see that it gets something as Federated Authentication Info from server but I don't understand it completely.
The scope required for SQL Servder Authentication access tokens is https://database.windows.net/.default which stands for default scopes/permissions for https://database.windows.net/ resource.
Once an access token is obtained you pass it trough the SqlConnection.AccessToken property.

On-premise Active directory login using LDAP and SSO

We are developing a ReactJs and NodeJs application where node has to authenticate AD users using LDAP.
We are able to complete the authentication successfully using LDAP,
But the requirement is, in On-prem users are already logged in to the AD and if they open our web it should login without asking credentials again, it it is not happening with LDAP integration.
Can some one please help me.
Thanks in advance.
To add SSO in on-prem Active directory login using LDAP, please follow below steps:
Go to Administration -> Applications and enable Single Sign-On -> click setting -> select LDAP method.
If you want your users to login without using credentials again, set the option to use only SSO authentication only.
UseResponse internal account is created, when a new user logs in against the LDAP server. If you don't want to send internal registration credentials, Disable Registration Email.
In addition to these, include basic settings of your connection:
Give hostname or IP of your LDAP server
Add ldaps:// to hostname when the server has secure connection
Give Base Distinguished Name for your AD with default value dc=localhost.
Enter administration credentials for the connection, if your LDAP server requires authentication.
For more in detail, please refer below link:
Using LDAP as a Single Sign-On (Active Directory) | Integrations | Help Center - UseResponse.

Is it possible to connect to snowflake in Azure Databricks using Oauth token from an existing Service Principal?

I am trying to connect to Snowflake in Databricks using an Azure access token generated from an existing Service Principal (not using the documentation's method to create one as I don't have the permissions to). Currently I am receiving the error "Invalid OAuth access token".
I believe the solution is I need snowflake to grant access to the service principal, however not sure how to do this or if it is even possible?
According to this Snowflake document, programmatic SSO with Federated Authentication (like you would need in a Databricks notebook) is only available for the Okta identity provider - even though Microsoft Azure Active Directory is among their supported Identity Providers

Connect to Azure database with DataGrip - Active Directory

I am trying to connect to Azure database via DataGrip using Active Directory connection (Note: not Active directory - password)
I followed accepted answer from this
I set integratedSecurity=false and authentication=ActiveDirectoryIntegrated.
When trying to connect to Test Connection I get error message
Connection to Azure SQL Database failed. Cannot set "Authetication" with "IntegratedSecurity" set to "true".
Is it some kind of bug that can be repaired, if so how could I solve this issue?
Edit:
More information:
On Azure Portal I can see that this is SQL database.
Server name ends with database.windows.net.
When I try to connect via Connection String (in Data Grip Add data from URL) generated by Azure I am not able to connect also.
The DataGrip support us using Azure Active Directory Authentication. Please see: Microsoft Azure .
You can get the connect string (URL) with Active Directory integrated authentication from Portal:
Replace the URL with the Connect string(Active Directory integrated authentication):
Hope this helps.
There is a lot of confusion around terminology here.
In short, the connection string attribute Integrated Security=true indicates you want to use "windows authentication". This type of authentication might be supported by any Azure SQL (anything whose hostname ends in database.windows.net). Azure SQL only supports Azure Active Directory authentication, butit might be possible to implement single sign on between a windows domain account and Azure Active Directory.

Explanation of IdentityServer4 logout spec

We are using IdentityServer4. We have a Windows 2016 server running ADFS (Active Directory Federation Services) version 4.0. This version of ADFS has OpenID Connect endpoints to do active directory authentication. We set this up as an external oidc provider in IdentityServer4. The authentication works fine. What I'm having an issue with is the logout. The current logout correctly disposes of the identity server and client cookies, but doesn't log the user out of the external provider (ADFS). I upgraded the ADFS server so the metadata endpoint exposes end_session_endpoint, frontchannel_logout_supported, and frontchannel_logout_session_supported properties.
What is the proper way to have our identityserver4 implementation also ask the external provider to perform a logout when it does? I'm a little confused by the spec.
http://docs.identityserver.io/en/release/topics/signout_external_providers.html
http://docs.identityserver.io/en/release/topics/signout.html#refsignout
I'm not sure if the front-channel or back-channel is what I should be looking at in this scenario or if this is even related. The spec also mentions a idp value at authentication time that would indicate to the identity server that a external provider needs a logout as well. Is this what I should be looking at? Little lost. Looking for guidance. Thanks!

Resources