首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“Snowflake仅支持来自单个Azure AD租户的单个安全集成”的解决方法

“Snowflake仅支持来自单个Azure AD租户的单个安全集成”的解决方法
EN

Stack Overflow用户
提问于 2021-04-20 15:15:14
回答 1查看 66关注 0票数 1

我正在分享一个解决方案,因为我认为这将对其他人有用。

在遵循https://docs.snowflake.com/en/user-guide/oauth-azure.html上的说明将Azure AD与Oauth集成到Snowflake之后,我们遇到了一个问题。Snowflake仅支持每个AAD租户一个安全集成。

因为我们希望同时在客户端级和用户级使用集成;

代码语言:javascript
运行
复制
create security integration (...) 
   external_oauth_token_user_mapping_claim = 'sub' 
vs
   external_oauth_token_user_mapping_claim = 'upn' 

为了解决这个问题,我们在AAD中创建了两个自定义策略:

代码语言:javascript
运行
复制
    New-AzureADPolicy -Definition @('
{
    "ClaimsMappingPolicy":
    {
        "Version":1,"IncludeBasicClaimSet":"true", 
        "ClaimsSchema": [{"Source":"application","ID":"objectid","JwtClaimType":"sfuser"}]
    }
}') -DisplayName "SnowflakeUserObjectClaims" -Type "ClaimsMappingPolicy"

代码语言:javascript
运行
复制
 New-AzureADPolicy -Definition @('
{
    "ClaimsMappingPolicy":
    {
        "Version":1,"IncludeBasicClaimSet":"true", 
        "ClaimsSchema": [{"Source":"user","ID":"userprincipalname","JwtClaimType":"sfuser"}]
    }
}') -DisplayName "SnowflakeUserUpnClaims" -Type "ClaimsMappingPolicy"

然后,这些可以与应用程序的一个应用程序注册和用户的另一个应用程序注册('Add-AzureADServicePrincipalPolicy')相关联。换句话说,这些声明中的每一个都将始终包含“sfuser”声明。这还需要在应用程序清单中手动更改:

代码语言:javascript
运行
复制
"acceptMappedClaims": true,

我们现在可以使用我们的新声明在Snowflake中创建安全集成:

代码语言:javascript
运行
复制
  create security integration (...) 
      external_oauth_token_user_mapping_claim = 'sfuser' 

雪花能够使用新的声明来验证来自我们两个app.registrations的请求。

EN

回答 1

Stack Overflow用户

发布于 2021-11-19 15:42:09

为子孙后代加分。此字段接受列表。我使用了以下代码:

代码语言:javascript
运行
复制
 ALTER SECURITY INTEGRATION sample_integration SET EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = ('sub','upn');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67174147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档