Snowflake AAD OAuth2(EXTERNAL_OAUTH_JWS_CANT_RETRIEVE_PUBLIC_KEY)

ycl3bljg  于 2023-04-05  发布在  其他
关注(0)|答案(2)|浏览(98)

bounty将在2天后到期。回答此问题可获得+100声望奖励。Bas Kuis正在寻找此问题的更详细的答案

我们已经使用AAD为Oauth2配置了Snowflake,当我们检索一个令牌时,受众,范围,...都是正确的。
但在使用SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN进行验证时
我们收到以下错误(并且无法找到发生此错误的原因)
令牌验证已完成。{“验证结果”:“失败”,“失败原因”:“EXTERNAL_OAUTH_JWS_CANT_RETRIEVE_PUBLIC_KEY”}
以前有人犯过这个错误吗?

laawzig2

laawzig21#

很可能是在创建安全集成时,未从IdP的证书中提取公钥的值,而是输入了证书。

xqkwcwgp

xqkwcwgp2#

CREATE SECURITY INTEGRATION jwt_rsa_aaa
    TYPE = EXTERNAL_OAUTH
    ENABLED = TRUE
    EXTERNAL_OAUTH_TYPE = CUSTOM 
    EXTERNAL_OAUTH_ISSUER = 'AAAA'
    EXTERNAL_OAUTH_AUDIENCE_LIST = ('a', 'b')
    EXTERNAL_OAUTH_SCOPE_MAPPING_ATTRIBUTE = 'scp'
    EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = ('sub', 'snowflake_{0}')
    EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = LOGIN_NAME
    EXTERNAL_OAUTH_ANY_ROLE_MODE = ENABLE
    EXTERNAL_OAUTH_RSA_PUBLIC_KEY = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAA==';

然而,当尝试使用JWT,并确认公钥是有效的等,我们不断看到以下错误

Token Validation finished.{"Validation Result":"Failed","Failure Reason":"EXTERNAL_OAUTH_JWS_CANT_RETRIEVE_PUBLIC_KEY"}

文档显示JWS url是可选的。当我们提供一个虚拟值时,我们就不能再创建安全集成,因为它会提到JWS url和RSA公钥不能同时提供。

相关问题