oauth - Power BI:提供的凭据不能用于源
问题描述
我遇到了 Oauth 和自定义 Power BI 连接器的问题。我想做的事有可能吗?
我正在为 Snowflake 构建一个自定义 Power BI 连接器,我想在其中使用 Keycloak 作为身份提供者。身份验证通过 Oauth2 完成。可以使用 ODBC 驱动程序完成与 Snowflake 的 OAuth 连接。连接字符串中的身份验证器值应设置为“oauth”。
但是当使用 OAuth 作为 AuthKind 时,我无法让它在 Power BI 连接器中工作,而使用 UsernamePassword 工作正常。
这是构建连接字符串的部分:
...
else if AuthKind = "OAuth" then
[
driver = "SnowflakeDSIIDriver"
,server = Host
,warehouse = warehouse
,authenticator = "oauth"
,token=Extension.CurrentCredential()[access_token]
]
else if AuthKind = "UsernamePassword" then
[
driver = "SnowflakeDSIIDriver"
,server = Host
,warehouse = warehouse
,authenticator = "snowflake"
]
...
在调试模式下,我收到一个 access_token,但是当我想使用此令牌建立连接时,我收到以下错误:提供的凭据不能用于...源。
看起来在使用 OAuth 时,无法将连接字符串用于 odbc 源。
在 Snowflake 中,我使用以下设置创建了安全集成:
create security integration keycloak_oath
type = external_oauth
enabled = true
external_oauth_type = 'custom'
external_oauth_issuer = 'https://<NAME_OF_KEYCLOAK_SERVER>/auth/realms/<NAME_OF_REALM>'
external_oauth_token_user_mapping_claim = 'upn'
external_oauth_snowflake_user_mapping_attribute = 'email_address'
external_oauth_jws_keys_url = 'https://<NAME_OF_KEYCLOAK_SERVER>/auth/realms/<NAME_OF_REALM>/protocol/openid-connect/certs'
external_oauth_any_role_mode = 'ENABLE';
在 Keycloak 领域中,我创建了一个具有以下设置的客户端(除其他外):
- 客户端协议:openid-connect
- 有效的重定向 URI:https ://oauth.powerbi.com/views/oauthredirect.html
解决方案
推荐阅读
- vue.js - 如何在 Nuxt / Netlify 中为我的主页创建动态路由
- java - 查找 3 组数组之间的失败次数
- python - Discord.py 检查作者信息和内容
- cordova - 离子本地存储与安全存储
- java - 使用递归函数查找数组列表的最小值
- java - Java Spliterator 不断拆分并行流
- python - 仅将颜色图应用于未蒙版区域(不包括黑色蒙版)
- python - MongoDB忽略重复键并仅在另一个字段的值不同时保存新记录
- c# - ASP.Net Core - 实体框架 - 调用没有返回数据的存储过程(在 void 方法中)
- mysql - MYSQL 触发器在更新后删除行