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

OpenProject OmniAuth SAML单点登录集成

岑明辉
2023-03-14

我正在尝试使用OpenProject OmniAuth SAML单点登录插件设置SSO(单点登录)与OpenProject的集成。我已经配置了相关的详细信息。生成元数据并向Shibboleth支持的IDP注册。该插件在openproject登录表单上显示了一个额外的登录按钮。单击它将正确重定向到IDP的登录页面。在提供凭据之后,它正确地重定向到我提到的AssertionConsumerService URL。其形式为<代码>https://example.com/openproject/auth/saml/callback 。但页面显示错误的请求错误。调试文件应用程序/控制器/关注点/omniauth\u登录。rb显示,在omniauth\u登录功能中,以下代码行导致400错误。

auth_hash = request.env['omniauth.auth']

return render_400 unless auth_hash.valid?

auth_hash的值看起来是空的。这可能是由于属性映射或其他原因造成的问题吗?我来自PHP Bacnkground,没有ruby on rails的经验。所以发现很难调试这个问题。我尝试了很多谷歌搜索,但找不到任何有用的东西。

任何帮助都非常感谢。

谢谢

共有1个答案

狄天逸
2023-03-14

更换以下代码

uid { @name_id }

使用以下代码

  uid do
        if options.uid_attribute
          ret = find_attribute_by([options.uid_attribute])
          if ret.nil?
            raise OmniAuth::Strategies::SAML::ValidationError.new("SAML response missing '#{options.uid_attribute}' attribute")
          end
          ret
        else
          @name_id
        end
      end

内部

战略/saml.rb

文件它位于def other\u phase(定义其他\u阶段)功能内

作为参考,请查看以下github链接https://github.com/omniauth/omniauth-saml/blob/master/lib/omniauth/strategies/saml.rb第90行

 类似资料:
  • 注意 所有OAuth2 SSO和资源服务器功能在版本1.3中移动到Spring Boot。您可以在Spring Boot用户指南中找到文档 。 该项目提供从CloudFoundry服务凭据到Spring Boot功能的自动绑定。如果您有一个称为“sso”的CloudFoundry服务,例如,使用包含“client_id”,“client_secret”和“auth_domain”的凭据,它将自动绑

  • 地址URL https://api.es.xiaojukeji.com/river/Login/getLoginEncryptStr 返回数据格式 JSON 请求方式 GET 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token string yes

  • 接口说明: 接口类型:主动调用接口。 接口作用:可通过调用该接口来获取一个临时的URL,通过访问该URL即可直接进入某账号的智齿客服后台,从而实现单点登录的业务。 请求方式: POST 请求地址: https(http)://www.sobot.com/api/oss/5/direct_url 注:使用https请求返回的登录链接是https协议的,使用http请求,返回的登录链接就是http协

  • 1、概念 单点登录SSO,说的是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。 2、单点登录的要点 存储信任; 验证信任; 3、实现单点登录的三种方式 (1)以cookie作为凭证 最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。 用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带

  • 我有一个场景,试图在这里实现SSO,但不确定这是否可行。 用户仍在我的本机应用程序收件箱中输入用户名/密码 我的身份验证代理接收用户名和密码,然后转发给第三方IdP(ADFS、AAD等),并通过SAML令牌返回配置文件 我的服务器在我的数据库中创建配置文件,并让用户登录 不确定是否有中间件能够做到这一点?如IdentifyServer4、simpleSAMLphp等。如有任何评论,将不胜感激!提前

  • 该应用程序托管在IIS 7上,asp.net应用程序,用户需要由身份提供者进行身份验证,身份提供者是Active Directory。为此,我需要生成依赖方信任以添加到ADFS身份提供者。该应用程序托管在未连接到域的Web服务器上,因此我无法在Web服务器上安装ADFS以生成依赖方信任并实现自动或单点登录并生成依赖方信任元数据。我如何为用户实现单点或自动登录-我如何在没有活动目录联合服务的情况下从