【问题标题】:NodeJs and Keycloak Integration giving 403?NodeJs 和 Keycloak 集成给出 403?
【发布时间】:2020-09-29 09:19:17
【问题描述】:

我刚刚从Github 获取了演示代码 所以我改变了keycloak-config.json

 var keycloakConfig ={
        clientId: 'my-api',
        bearerOnly: true,
        serverUrl: 'https://<IPADDRESS>:8443/auth/',
        realm: 'myrealm',
        credentials: {
            secret: '99e71ca7-f25b-40b5-87ed-0af2656b52ac'
        }
    };

现在要首先访问 api 端点,我将生成令牌

在上述令牌的帮助下,我正在尝试访问安全 API

但它会因错误而失败

403:访问被拒绝

这里是代码

router.get('/user', keycloak.protect(), function(req, res){
    res.send("Hello User");
});

即使这样也一样

router.get('/user', keycloak.protect('user'), function(req, res){
    res.send("Hello User");
});

我关注了这个演示代码的this链接

【问题讨论】:

  • 你是否在 nodejs 方面遇到了一些额外的错误?否则我只能做一些疯狂的猜测;-) 你正在通过 https 访问 keycloak,nodejs 信任使用的证书吗?如果您向 nodejs 发送access_token,则需要使用领域公钥验证此令牌。此密钥通常是从 kc-ednpoint 获取的,在您的情况下这可能是不可能的

标签: node.js keycloak keycloak-connect keycloak-nodejs-connect


【解决方案1】:

找到解决方案后,我也看到了评论,我的解决方案和评论匹配,所以我们必须进行以下更改,代替credentials,我们必须使用realmPublicKey

var keycloakConfig ={
    clientId: 'my-api',
    bearerOnly: 'true',
    serverUrl: 'https://<IPADDRESS>:8443/auth/',
    realm: 'myrealm',
    sslRequired: 'external',
    realmPublicKey: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhGpeNPTzIA0SpqWtOU27C3lCdHkLzWiYc3voiBZvvZdvk4wW96JymHlX2b0weDnkYfurxIRehRA0sLK8w2vjb3X9TdKOcsiQzHlWDQuA3Wu7WeDGcvv8dyDk+bMOSkqn7bMlOUm6CXxA7RrjKuDj8mseqabXNjnPgAPL6MQOWtO4RFMdPQX11fYShXrK9ELS3CqN3RrXBazzwNsreKxfuMtR4vtZCVJHYaZZMiLmWU1G5Xsh/tHje2AVLPkt3ncchyKsrkCdP9PWsYK5dMkKsDbA03JOq7azDDlhqgT2pUNB3dZ1b9sKQXqPC6ZSieVJcm6WAj8DJcjoYOgZjgm2/8X1fwIDAQAB',

};

只需添加@Evil_skunk 写的内容

您是否在 nodejs 方面遇到了一些额外的错误?否则我可以 只是做一些疯狂的猜测;-)你正在通过https访问keycloak, nodejs信任使用的证书吗?如果您发送 access_token 到 nodejs,此令牌需要使用领域公钥进行验证。 此密钥通常是从 kc-ednpoint 获取的,也许这不是 在你的情况下可能

【讨论】:

  • 我有同样的问题,但它对我不起作用。我在做什么错任何想法?
  • @Shamim 你必须告诉细节然后只有我可以帮助你。
【解决方案2】:

在您的 KeyCloack 配置变量中,您可以使用 credentials 而不是 realmPublicKey

【讨论】:

    猜你喜欢
    • 2019-05-15
    • 2020-01-11
    • 2016-07-16
    • 2021-02-05
    • 2020-07-10
    • 2016-11-07
    • 2019-12-02
    • 2021-12-02
    • 2022-07-22
    相关资源
    最近更新 更多