<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenText Analytics Database 26.2.x – Configuring OAuth authentication</title>
    <link>/en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/</link>
    <description>Recent content in Configuring OAuth authentication on OpenText Analytics Database 26.2.x</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Security-and-Authentication: Configure Keycloak</title>
      <link>/en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/configure-keycloak/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/configure-keycloak/</guid>
      <description>
        
        
        &lt;p&gt;The following procedure configures a Keycloak 18.0.0 server on 203.0.113.1 for integration with Vertica. For details, see &lt;a href=&#34;../../../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/#&#34;&gt;Configuring OAuth authentication&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The goals of this procedure are to configure Keycloak and obtain the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client ID: The ID used to identify the Vertica database. This is configured by the user and set to &lt;code&gt;vertica&lt;/code&gt; in the example procedure.&lt;/li&gt;
&lt;li&gt;Client secret: A Keycloak-generated string used to refresh the OAuth token when it expires.&lt;/li&gt;
&lt;li&gt;Discovery endpoint: The endpoint that serves information for all other endpoints as a JSON string. The endpoint for a Keycloak server on 203.0.113.1 is one of the following:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://203.0.113.1:8443/realms/myrealm/.well-known/openid-configuration&lt;/code&gt; (if TLS is configured)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://203.0.113.1:8443/realms/myrealm/.well-known/openid-configuration&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configure-tls-optional&#34;&gt;Configure TLS (optional)&lt;/h2&gt;
&lt;p&gt;If you want to use TLS, you must obtain a certificate and key for Keycloak signed by a trusted CA. This example uses a self-signed CA for convenience. The following example creates a certificate and key in Vertica:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/&#34;&gt;Generate&lt;/a&gt; the CA certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY SSCA_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
CREATE KEY

=&amp;gt; CREATE CA CERTIFICATE SSCA_cert
SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/C N=Vertica Root CA&amp;#39;
VALID FOR 3650
EXTENSIONS &amp;#39;nsComment&amp;#39; = &amp;#39;Self-signed root CA cert&amp;#39;
KEY SSCA_key;
CREATE CERTIFICATE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate a server key and certificate, signed by your CA, setting the &lt;strong&gt;subjectAltName&lt;/strong&gt; of the certificate to the DNS server and/or IP address of your Keycloak server:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY keycloak_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
CREATE KEY

=&amp;gt; CREATE CERTIFICATE keycloak_cert
SUBJECT &amp;#39;/C=US/ST=Massachussets/L=Cambridge/O=Micro Focus/OU=Vertica/CN=Vertica Server&amp;#39;
SIGNED BY SSCA_cert
EXTENSIONS &amp;#39;nsComment&amp;#39; = &amp;#39;Keycloak CA&amp;#39;, &amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;serverAuth&amp;#39;, &lt;span class=&#34;code-input&#34;&gt;&#39;subjectAltName&#39; = &#39;DNS.1:dnsserver,IP:203.0.113.1&#39;&lt;/span&gt;
KEY keycloak_key;
CREATE CERTIFICATE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the file &lt;em&gt;&lt;code&gt;keycloak_directory&lt;/code&gt;&lt;/em&gt;&lt;code&gt;/conf/keyfile.pem&lt;/code&gt; with the content from the &lt;code&gt;key&lt;/code&gt; column for the generated key:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT key FROM cryptographic_keys WHERE name = &amp;#39;keycloak_key&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the file &lt;em&gt;&lt;code&gt;keycloak_directory&lt;/code&gt;&lt;/em&gt;&lt;code&gt;/conf/certfile.pem&lt;/code&gt; with the content from the &lt;code&gt;certificate_text&lt;/code&gt; column for the generated certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT certificate_text FROM certificates WHERE name = &amp;#39;keycloak_cert&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Append to your system&#39;s CA bundle the content from the &lt;code&gt;certificate_text&lt;/code&gt; column for the generated CA certificate. The default CA bundle path and format varies between distributions; for details, see &lt;a href=&#34;../../../../../en/sql-reference/config-parameters/security-parameters/&#34;&gt;SystemCABundlePath&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT certificate_text FROM certificates WHERE name = &amp;#39;SSCA_cert&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the &lt;a href=&#34;../../../../../en/sql-reference/config-parameters/security-parameters/&#34;&gt;SystemCABundlePath&lt;/a&gt; configuration parameter:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER DATABASE DEFAULT SET SystemCABundlePath = &amp;#39;path/to/ca_bundle&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;start-keycloak&#34;&gt;Start Keycloak&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Enter the following commands for a minimal configuration to create the Keycloak admin and to start Keycloak in start-dev mode:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ KEYCLOAK_ADMIN=kcadmin
$ export KEYCLOAK_ADMIN
$ KEYCLOAK_ADMIN_PASSWORD=password
$ export KEYCLOAK_ADMIN_PASSWORD
$ cd &lt;span class=&#34;code-variable&#34;&gt;keycloak_directory&lt;/span&gt;/bin/
$ ./kc.sh start-dev --hostname &lt;span class=&#34;code-input&#34;&gt;203.0.113.1&lt;/span&gt; --https-certificate-file ../conf/certfile.pem --https-certificate-key-file=../conf/keyfile.pem
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the Keycloak console with your browser (these examples use the default ports):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;For HTTP: http://203.0.113.1:8080&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For HTTPS: http://203.0.113.1:8443&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sign in as the admin.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go to &lt;strong&gt;Client scopes&lt;/strong&gt; &amp;gt; &lt;strong&gt;Client scope details&lt;/strong&gt; &amp;gt; &lt;strong&gt;Mapper details&lt;/strong&gt;, and toggle &lt;strong&gt;Full group path&lt;/strong&gt; to &lt;strong&gt;Off&lt;/strong&gt;. Vertica does not support subgroups.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(Optional) To make testing OAuth more convenient, go to &lt;strong&gt;Realm Settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Tokens&lt;/strong&gt; and increase &lt;strong&gt;Access Token Lifespan&lt;/strong&gt; to a greater value (the default is 5 minutes).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;create-the-vertica-client&#34;&gt;Create the Vertica client&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Go to &lt;strong&gt;Clients&lt;/strong&gt; and select on &lt;strong&gt;Create&lt;/strong&gt;. The &lt;strong&gt;Add Client&lt;/strong&gt; page appears.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In &lt;strong&gt;Client ID&lt;/strong&gt;, enter 
&lt;code&gt;vertica&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Save&lt;/strong&gt;. The client configuration page appears.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &lt;strong&gt;Settings&lt;/strong&gt; tab, use the &lt;strong&gt;Access Type&lt;/strong&gt; dropdown to select &lt;strong&gt;confidential&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &lt;strong&gt;Credentials&lt;/strong&gt; tab, copy the &lt;strong&gt;Secret&lt;/strong&gt;. This is the client secret used to refresh the token when it expires.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;create-a-keycloak-user&#34;&gt;Create a Keycloak user&lt;/h2&gt;
&lt;p&gt;Keycloak users map to Vertica users with the same name. This example creates a the Keycloak user &lt;code&gt;oauth_user&lt;/code&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;On the &lt;strong&gt;Users&lt;/strong&gt; tab, select &lt;strong&gt;Add user&lt;/strong&gt;. The &lt;strong&gt;Add user&lt;/strong&gt; page appears.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In &lt;strong&gt;Username&lt;/strong&gt;, enter &lt;code&gt;oauth_user&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &lt;strong&gt;Credentials&lt;/strong&gt; tab, enter a password.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Configure Okta</title>
      <link>/en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/configure-okta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/configure-okta/</guid>
      <description>
        
        
        &lt;p&gt;The following procedure configures Okta for integration with Vertica and requires administrator privileges. For details, see &lt;a href=&#34;../../../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/#&#34;&gt;Configuring OAuth authentication&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The goals of this procedure are to configure Okta and obtain the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client ID: The ID used to identify the Vertica database. This is generated by Okta.&lt;/li&gt;
&lt;li&gt;Client secret: An Okta-generated string used to refresh the OAuth token when it expires.&lt;/li&gt;
&lt;li&gt;Token endpoint: Used by the client to retrieve the OAuth token.&lt;/li&gt;
&lt;li&gt;Introspection endpoint: Used by Vertica to validate the OAuth token.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values are used to &lt;a href=&#34;../../../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/&#34;&gt;create the &lt;code&gt;oauth&lt;/code&gt; authentication record in Vertica&lt;/a&gt; and act as instructions for Vertica to communicate with Okta when a user attempts to authenticate.&lt;/p&gt;
&lt;h2 id=&#34;create-an-oidc-application&#34;&gt;Create an OIDC application&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;From the Okta dashboard, go to &lt;strong&gt;Applications&lt;/strong&gt; &amp;gt; &lt;strong&gt;Applications&lt;/strong&gt; and select &lt;strong&gt;Create App Integration&lt;/strong&gt;. The &lt;strong&gt;Create a new app integration&lt;/strong&gt; dialog box appears.&lt;/li&gt;
&lt;li&gt;For the &lt;strong&gt;Sign-in method&lt;/strong&gt;, select &lt;strong&gt;OIDC - OpenID Connect&lt;/strong&gt;. The &lt;strong&gt;Application type&lt;/strong&gt; section appears.&lt;/li&gt;
&lt;li&gt;For the &lt;strong&gt;Application type&lt;/strong&gt;, select &lt;strong&gt;Native Application&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Next&lt;/strong&gt;. The &lt;strong&gt;New Native App Integration&lt;/strong&gt; window opens.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;App integration name&lt;/strong&gt;, enter a name for your application. This example uses &lt;strong&gt;Demo_Vertica&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For the &lt;strong&gt;Grant Type&lt;/strong&gt;, select &lt;strong&gt;Authorization Code&lt;/strong&gt;, &lt;strong&gt;Refresh Token&lt;/strong&gt;, and &lt;strong&gt;Resource Owner Password&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Controlled access&lt;/strong&gt;, select the option applicable to your organization. This example uses &lt;strong&gt;Allow everyone in your organization to access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Save&lt;/strong&gt; to save your application.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;retrieve-the-client-id-and-client-secret&#34;&gt;Retrieve the client ID and client secret&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;From the Okta dashboard, go to &lt;strong&gt;Applications&lt;/strong&gt; &amp;gt; &lt;strong&gt;Applications&lt;/strong&gt; and select the name of your OIDC application.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;General&lt;/strong&gt; tab in the &lt;strong&gt;Client Credentials&lt;/strong&gt; section, select &lt;strong&gt;Edit&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Client authentication&lt;/strong&gt;, select &lt;strong&gt;Client secret&lt;/strong&gt; and select &lt;strong&gt;Save&lt;/strong&gt;. This generates a new client secret.&lt;/li&gt;
&lt;li&gt;Copy the client ID and client secret.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;set-the-authentication-policy&#34;&gt;Set the authentication policy&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;From the Okta dashboard, go to &lt;strong&gt;Applications&lt;/strong&gt; &amp;gt; &lt;strong&gt;Applications&lt;/strong&gt; and select the name of your OIDC application.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Sign On&lt;/strong&gt; tab in the &lt;strong&gt;User authentication&lt;/strong&gt; section, select &lt;strong&gt;Edit&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Password only&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Save&lt;/strong&gt; to save the new policy.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;retrieve-okta-endpoints&#34;&gt;Retrieve Okta endpoints&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;From the Okta dashboard, go to &lt;strong&gt;Security&lt;/strong&gt; &amp;gt; &lt;strong&gt;API&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Authorization Servers&lt;/strong&gt; tab, select the name of your authorization server. By default, the name of this server is &lt;strong&gt;default&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Metadata URI&lt;/strong&gt; to get a list of all endpoints for your authorization server as a &lt;code&gt;json&lt;/code&gt; string.&lt;/li&gt;
&lt;li&gt;Copy the values for the &lt;strong&gt;token_endpoint&lt;/strong&gt; and &lt;strong&gt;introspection_endpoint&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;test-the-configuration&#34;&gt;Test the configuration&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Verify that you can retrieve an OAuth token from the token endpoint. If successful, Okta respond with an &lt;code&gt;access_token&lt;/code&gt; and &lt;code&gt;refresh_token&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl --insecure -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;client_id=&lt;span class=&#34;code-variable&#34;&gt;client_id&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;client_secret=&lt;span class=&#34;code-variable&#34;&gt;client_secret&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;username=&lt;span class=&#34;code-variable&#34;&gt;okta_username&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;password=&lt;span class=&#34;code-variable&#34;&gt;okta_password&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;grant_type=password&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;scope=offline_access%20openid&amp;#34;&lt;/span&gt; &lt;span class=&#34;code-variable&#34;&gt;token_endpoint&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that the tokens are valid with the introspection endpoint. If successful, Okta responds with a &lt;code&gt;json&lt;/code&gt; string containing &lt;code&gt;&amp;quot;active&amp;quot;:true&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;To verify the access token:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl --insecure -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;client_id=&lt;span class=&#34;code-variable&#34;&gt;client_id&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;client_secret=&lt;span class=&#34;code-variable&#34;&gt;client_secret&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;token=&lt;span class=&#34;code-variable&#34;&gt;access_token&lt;/span&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;code-variable&#34;&gt;introspection_endpoint&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Similarly, to verify the refresh token:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl --insecure -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;client_id=&lt;span class=&#34;code-variable&#34;&gt;client_id&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;client_secret=&lt;span class=&#34;code-variable&#34;&gt;client_secret&lt;/span&gt;&amp;#34;&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;token=&lt;span class=&#34;code-variable&#34;&gt;refresh_token&lt;/span&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;code-variable&#34;&gt;introspection_endpoint&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;access_token&lt;/code&gt; and &lt;code&gt;refresh_token&lt;/code&gt; can then be used for the oauthaccesstoken and oauthrefreshtoken parameters. For details, see &lt;a href=&#34;../../../../../en/connecting-to/client-libraries/accessing/java/creating-and-configuring-connection/jdbc-connection-properties/#&#34;&gt;JDBC connection properties&lt;/a&gt; and &lt;a href=&#34;../../../../../en/connecting-to/client-libraries/client-drivers/install-config/odbc/creating-an-odbc-data-source-name-dsn/odbc-dsn-connection-properties/#&#34;&gt;ODBC DSN connection properties&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
  </channel>
</rss>
