如何配置Snowflake外部浏览器认证的重定向URL?
配置Snowpark/dbt使用externalbrowser认证时的自定义重定向URL
可以自定义重定向URL,包括指定主机和固定端口,具体配置方式分工具说明:
Snowpark for Python
在创建Session的连接参数中直接添加redirect_uri字段,指定你需要的主机和端口:
from snowflake.snowpark import Session conn_config = { "account": "你的账户名", "user": "你的用户名", "authenticator": "externalbrowser", "redirect_uri": "http://your-remote-host:8888/callback" # 替换为你的自定义地址 } session = Session.builder.configs(conn_config).create()
关键前提:必须在Snowflake端将这个自定义URL加入允许列表。你可以通过SQL语句修改用户或账户的ALLOWED_REDIRECT_URIS参数:
-- 修改用户级别的允许列表 ALTER USER your_user SET ALLOWED_REDIRECT_URIS = ('http://your-remote-host:8888/callback'); -- 或者修改账户级别的允许列表 ALTER ACCOUNT SET ALLOWED_REDIRECT_URIS = ('http://your-remote-host:8888/callback');
dbt-snowflake
在profiles.yml的连接配置中添加redirect_uri字段:
your_dbt_profile: target: dev outputs: dev: type: snowflake account: 你的账户名 user: 你的用户名 authenticator: externalbrowser redirect_uri: "http://your-remote-host:8888/callback" warehouse: 你的仓库名 database: 你的数据库名 schema: 你的 schema 名 role: 你的角色名
同样,需要先在Snowflake端完成上述ALLOWED_REDIRECT_URIS的配置,否则认证会失败。
额外注意事项
- 远程环境(如VS Code Server)中,确保指定的主机地址能被SSO认证服务访问到,或者通过端口转发工具将远程端口映射到本地可访问的地址。
- 尽量选择1024以上的非特权端口,避免权限问题。
- 如果需要多个重定向URI,Snowflake的
ALLOWED_REDIRECT_URIS支持传入多个值的数组,比如('uri1', 'uri2')。
内容的提问来源于stack exchange,提问作者Frieder Raab
相关产品推荐
相关产品推荐

