Using OAuth 2.0
Three types of authentication work flow are available when using OAuth 2.0, token pass-through, client credentials, or browser based authentication.
When you use OAuth 2.0 authentication, HTTP is the only transport mode protocol available.
Token Pass-through
This authentication mechanism requires a valid OAuth 2.0 access token. Be aware that access tokens typically expire after a certain amount of time, after which you must either refresh the token or obtain a new one from the server. To obtain a new access token, see Obtaining a New Access Token.
To configure OAuth 2.0 token pass-though authentication:
- Set the
AuthMechproperty toOAuth 2.0. - Set the
Auth_Flowproperty to0. - Set the
Auth_AccessTokenproperty to your access token.
Obtaining a New Access Token
Once an access token expires, you can obtain a new access token for the connector.
Note: When an access token expires, the connector returns a "SQLState 08006" error.
To obtain a new access token:
-
In the connection string, set the
Auth_AccessTokenproperty with a new access token. - Call the SQLSetConnectAttr function with SQL_ATTR_CREDENTIALS (122) as the attribute and the new connection string as the value. The connector will update the current connection string with the new access token.
Note: Calling the SQLGetConnectAttr function with SQL_ATTR_CREDENTIALS (122) returns the entire connection string used during connection.
- Call the SQLSetConnectAttr function with SQL_ATTR_REFRESH_CONNECTION (123) as the attribute and SQL_REFRESH_NOW (-1) as the value. This signals the connector to update the access token value.
- Retry the previous ODBC API call. After obtaining the new access token, the open connection, statements, and cursors associated with it remain valid for use.
Client Credentials
This authentication mechanism requires SSL to be enabled.
To configure OAuth 2.0 client credentials authentication:
- Set the
AuthMechproperty toOAuth 2.0. - Set the
Auth_Flowproperty to1. - Set the
Auth_Client_IDto your client ID. - Set the
Auth_Client_Secretto your client secret. - Set the
Auth_Audienceto your OAuth audience. - Set the
OAuth2TokenEndPointto your token endpoint. - Optionally, set the
Auth_Scopeto your OAuth scope.
Browser Based
This authentication mechanism requires SSL to be enabled.
To configure OAuth 2.0 browser based authentication:
- Set the
AuthMechproperty to11. - Set the
Auth_Flowproperty to2. - Set the
Auth_Client_IDto your client ID. - Set the
Auth_Client_Secretto your client secret. - Set the
Auth_Audienceto your OAuth audience. - Set the
OAuth2TokenEndPointto your token endpoint. - Set the
OAuth2AuthorizationEndPointto your authorization endpoint. - Set the
TokenCachePassPhraseproperty to a password of your choice. This is the key used for refresh token encryption. - Optionally, set the
Auth_Scopeto your OAuth scope.