我在 Snowflake 中启用了 SSO,但无法连接到 Power BI

I've enabled SSO in Snowflake and can't connect to Power BI

我有点奇怪。所以我们的 Snowflake 帐户在 AWS 中,我们最近不得不在 Snowflake 中集成 Okta SSO,并且我们正在使用 Power BI 来可视化数据。我已经集成了 SSO,并且在 Snowflake Web UI 上运行良好。但是,在 Power BI 中,它不再适用于登录。

这些是我到目前为止完成的步骤:

  1. 我从负责 Okta 的工作人员那里得到了证书字符串和 ssoUrl 以及 运行 以下脚本
alter account set saml_identity_provider = 
 '{ "certificate": "<CERT STRING>",
 "ssoUrl": "<SSO URL>",
 "type" : "OKTA", 
 "label" : "<LABEL>"
  }';    
    
alter account set sso_login_page = true;
  1. 我已将一个用户添加到已添加到 Okta 的安全组中,并在 Snowflake 中创建了该用户。测试用户能够使用 SSO 集成
  2. 成功登录 Snowflake Web UI
  3. 我已经按照 snowflake 中的文档进行了编译,并按如下方式编译了我的查询:
create or replace security integration powerbi
    type = external_oauth
    enabled = true
    external_oauth_type = azure
    external_oauth_issuer = 'https://sts.windows.net/<TENANT_ID>/'
    external_oauth_jws_keys_url = 'https://login.windows.net/common/discovery/keys'
    external_oauth_audience_list = ('https://analysis.windows.net/powerbi/connector/Snowflake')
    external_oauth_token_user_mapping_claim = 'upn'
    external_oauth_snowflake_user_mapping_attribute = 'login_name'
    external_oauth_any_role_mode = 'ENABLE';

但是,我仍然收到上述错误(我们无法使用提供的凭据进行身份验证。请重试。),尽管它将我重定向到 Okta 页面成功。

我没有使用网络策略或网关,因此它应该能够直接登录。

有人能帮忙吗?

此问题最可能的原因是以下之一:

  1. 从 PBI 使用的用户没有 'default_role' 设置值。

  2. 如果它设置了一个值,那么该角色在从 PBI 设置的 WH 上没有 USAGE 权限。

运行 检查以下内容:

显示仓库赠款;

对于 PowerBI SSO- Snowflake 验证令牌,从令牌中提取用户名,将其映射到 Snowflake 用户,并使用用户的默认角色为 Power BI 服务创建 Snowflake 会话。因此,如上所述,请确保用于 SSO 登录的 Power BI 用户必须在 Snowflake 中设置默认角色。 有关详细信息,请参阅下面的文章。 https://community.snowflake.com/s/article/PowerBI-Service-displays-credentials-related-error-when-logging-in-or-publishing-report-from-PowerBI-Desktop

我找到问题了。我使用的 external_oauth_issuer 似乎来自我们发布报告的租户,这与我们拥有 Azure 帐户的租户不同。我已经更改了它,现在它似乎可以工作了。