当前位置: 首页 > 知识库问答 >
问题:

如何让身份提供者配置页面在KeyClope中可见?

傅边浩
2023-03-14

我正在为Keycloa编写一个自定义身份提供程序,我想使用deployer方法部署它(因为我想在Docker容器中部署它)。根据我在web上找到的一个例子,我创建了一个maven项目,在该项目中,我使用maven assembly插件构建了一个带有依赖项的jar(但我过滤掉了依赖项提供给我的各种服务实现,以便只保留身份提供者服务)。

事情似乎在一定程度上是正确的:

  • KeyCloak日志指示我的id提供程序正在加载/加载:keycloak_1|09:23:20,056INFO[org.jboss.as.server](ServerService线程池-29)WFLYSRV0010:部署mycompnay-oidc-id-gier-0.0.1-SNAPSHOT-jar-with-dependencies.jar(runtime-name:"mycompany-oidc-id-提供商-0.0.1-SNAPSHOT-jar-with-dependencies.jar")
  • 当我进入身份提供者面板时,新的提供者是可见的(见屏幕截图)

但是当我试图配置它时,一切都失败了:

问题是KeyClope严格不输出日志(即使我将日志级别配置为最大)。

在我的项目中,我让他跟随代码组织(在jar-with依赖中复制)

+---src
    +---build
    |   \---assembly
    +---main
    |   +---java
    |   |   \---com
    |   |       \---mycompany
    |   |           \---mygroup
    |   |               \---security
    |   |                   \---oidc
    |   \---resources
    |       +---META-INF
    |       |   \---services
    |       \---themes
    |           \---base
    |               \---admin
    |                   \---resources
    |                       \---partials
    \---test
        +---java
        \---resources

我错过了什么?

共有1个答案

朱保赫
2023-03-14

也许你现在已经明白了。

它没有很好的记录...一个月前我也做过类似的事情,我面临着同样的问题。我已经通过戳和猜测找到了答案,所以这可能不是最好的方法,但我会说我所知道的:

您需要正确注册idp和部分页面。老实说,我不知道你是否可以用这种方式扩展基本的keydepeat管理主题。我试过了,但失败得很惨。因此,我创建了自己的主题,扩展了基本主题:

假设您的idp被称为foo

src/main/resources/theme/foo/admin/theme。属性

parent=keycloak
import=common/keycloak

src/main/resources/theme/foo/admin/resources/partials/realm-identity-provider-foo。html

<div data-ng-include 
  data-src="resourceUrl + '/partials/realm-identity-provider-oidc.html'">
</div>

src/main/resources/theme/foo/admin/resources/partials/realm-identity-provider-foo。html

<div data-ng-include 
  data-src="resourceUrl + '/partials/realm-identity-provider-oidc.html'">
</div>

(我正在使用oidc,因为我的idp正在扩展它,但您可以在这里使用对您的案例有意义的任何东西)

src/main/resources/theme/foo/admin/resources/partials/realm-identity-provider-foo-ext.html最后一个文件在我的情况下是空的,但据我所知,你必须拥有它

然后,在管理控制台上,您需要将管理主题更改为foo,并且必须刷新浏览器,以便它开始从新主题中获取资源。重要的是要注意,如果您与来自另一个领域的用户(例如来自主领域的管理员)一起登录,您必须更改主领域中的管理员主题,因为这是您现在实际使用的主题。如果成功,你应该开始在你的开发工具中看到模板资源现在来自你的主题,例如auth/resources/4.4.0。final/admin/foo/templates/kc选项卡领域。html如果是这样的话,那么你的idp页面应该可以正常工作,或者至少你可以从这里获取它。

我知道这不是一个完美的答案,但它可能会给你一些需要考虑的事情的提示。

如果你有进步或找到更好的方法,请分享!

 类似资料:
  • 我们有一个asp。net应用程序,它允许我们的内部用户根据其角色访问和执行许多操作。我们也有一些部分的应用程序是可供公众访问的。我们需要使用ADFS 3.0实现此项目的单点登录。我知道我可以设置中继方并将应用程序设置为在SSO中工作。但是: 我们如何实现它以允许普通公众无需登录即可访问某些页面 感谢您的帮助! 谢谢,sri

  • 我们在末端设置了一个OpenSSO(OpenAM)实例,以作为服务提供商(SP)工作。到目前为止,它在 SP 启动的 SSO 方案中运行良好,但是,我最近不得不为 IDP 启动的方案设置它,并且无法使其成功工作。为了解释,在这种情况下,IDP 希望将 SAMLResponse 直接发送到我端的 Assertion 使用者服务,并且我们的 OpenAM 实例应该能够成功消化响应并将用户发送到我们的底

  • 我正在尝试将openam配置为身份提供程序以测试我的基于SAML的服务提供程序应用程序。 我搜索了很多,看到了openam的文档。openam支持很多东西,我现在可能不需要这些东西。我不希望阅读整个文档,因为这将花费大量时间阅读我现在不想测试的内容。我甚至在网站上看到了chatpet 9“管理SAML 2.0 SSO”http://docs.forgerock.org/en/openam/10.0

  • 我对SAML比较陌生,并且偶然发现了OneLogin Python SAML库。我能够让它启动并运行,我的web应用程序是服务提供商(SP),OneLogin是身份提供商(Idp)。 我希望能够添加对其他身份提供者的支持。然而,我发现python saml库正在使用设置。json获取Idp信息。我已经研究了他们的Github项目中的以下问题,但无法获得可行的解决方案:[1]https://gith

  • 我有一个spring应用程序,我正试图通过第三方身份提供商使用单点登录进行设置。 我在测试中有这个功能,但当我将它移到prod时,它正在循环。 我的应用程序发送SAMLRequest,然后我输入用户名和密码。IdP将SAMLACK发送到https://example.com/saml/SSOendpoint。此时,它应该像测试中那样302重定向到我的登录控制器,但它最终循环返回并302'到IdP。

  • 问题内容: 我已经使用插件管理为jenkins安装了MSBuild插件。它已成功安装,并且可以在“作业配置”页面中看到MSBuild的选项。 但是,不幸的是,我无法在Jenkins配置页面中看到MSBuild部分。我需要在该部分中提供MSBuild.exe的路径。 知道为什么吗? 提前致谢! 问题答案: 此选项在此部分下可用。