使用OKTA身份验证连接Redshift的Python脚本- psycopg2 jdbc url &



我正在尝试从Sagemaker Jupiter笔记本打开到红移的python连接。当我传递用户名和密码时,它可以很好地使用psycopg2方法,但是我现在想使用OKTA身份验证进行连接,为此目的,我不应该传递用户名和密码,但我想传递一个jdbc URL与所有连接字符串参数,如DBGroups, Login_url等,这将允许我通过OKTA进行身份验证。正确的。你知道这可能吗?

请看我的回答:https://stackoverflow.com/a/75667321/220997

import sqlalchemy as sa
from sqlalchemy.engine.url import URL
# import pandas for testing
import pandas as pd
# define URL params and connection params
url_params = {
'drivername': 'redshift+redshift_connector',
'database': 'mydb',
'host': 'mycompany.us-east-1.redshift.amazonaws.com',
'port': '5439'
}
conn_params = {
'iam': True,
'credentials_provider': "BrowserSamlCredentialsProvider",
'idp_host': 'mycompany.okta.com',
'cluster_identifier': "abc",
'region': 'us-east-1',
'ssl_insecure': False,
'login_url': 'https://mycompany.okta.com/home/abcsdf'
}
# construct sqlalchemy engine
engine = sa.create_engine(
url=URL.create(**url_params),
connect_args=conn_params
)
# test connection
conn = engine.connect()
conn.close()

最新更新