首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Keycloak设置为humhub的身份验证提供程序

如何将Keycloak设置为humhub的身份验证提供程序
EN

Stack Overflow用户
提问于 2019-07-28 15:32:33
回答 1查看 1.2K关注 0票数 2

我有一个本地apache2服务器运行humhub 1.3.14。我的目标是将位于我的牧场主集群上的Keycloak设置为humhub的身份验证提供者。

在选择"keycloak OpenId连接“之后,用户将被成功地重定向到密钥披风服务器。用户通过身份验证后,keycloak将重定向回我的本地humhub服务器。在那里,humhub抱怨道:“无法验证JWS:不安全的连接”。为了验证JWS,humhub使用yii2-authclient/src/OpenIdConnect.php,它需要"spomky-labs/jose:~5.0.6“(它被放弃了,但yii2仍然使用它)。

在humhub/protected/vendor/yiisoft/yii2-authclient/src/OpenIdConnect.php设置中

代码语言:javascript
复制
$validateJws = false 

什么都不做。

humhub/受保护/config/Common.php:

代码语言:javascript
复制
return [
'params' => [
    'enablePjax' => false
],
'components' => [
    'urlManager' => [
        'showScriptName' => false,
        'enablePrettyUrl' => false,
    ],
'authClientCollection' => [
        'class' => 'yii\authclient\Collection',
    'clients' => [
        'keycloak' => [
        'class' => 'yii\authclient\OpenIdConnect',
        'issuerUrl' => 'https://xxxx/auth/realms/humhub',
        'clientId' => 'humhub',
        'clientSecret' => 'xxxxxxx',
        'name' => 'keycloak',
        'title' => 'Keycloak OpenID Connect',
        'tokenUrl' => 'https://xxxx/auth/realms/humhub/protocol/openid-connect/token',
        'authUrl' => 'https://xxxx/auth/realms/humhub/protocol/openid-connect/auth',
        'validateAuthState' => 'false',
        'validateJws' => 'false',

        ],
    ],
    ]
]

];

有人能帮忙吗?需要进一步的资料吗?

更新

在将"spomky-labs/jose"更新为"spomky-labs/jose:~6.1.0"后,humhub的响应更改为:

“无法验证JWS:提供的扇区标识符URI无效:方案必须是以下内容之一:”https“。

更新

我还在运行humhub的本地apache2服务器上启用了https。我还将spomky实验室/jose降级为5.0.6版本,因为它与当前的humhub版本1.3.14存在兼容性问题。在此之后,JWS错误似乎得到了修复,但出现了一个新的错误:

它是由JWS中的内容类型引起的,它不是"application/json“,而是"”(空)?如果是的话,如何解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-14 10:00:33

最后,我找到了解决方案:它不能正常工作,因为humhub在其OIDC适配器中不包含规范。从Keycloak返回后,将发生以下错误:

JSONConnect1.0规范描述了必须使用OpenId (Json签名)对ID令牌进行签名。Keycloak这样做,但没有设置"cty“字段。至于https://www.rfc-editor.org/rfc/rfc7515#section-4.1.10 (RFC7515),这个字段是可选的,这意味着Humhub (v.1.3.13)实现了一个错误的optional 1.0适配器,因为它将这个字段设置为强制的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57242360

复制
相关文章

相似问题

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