Tag: 单点登录

在rails应用程序中自动点击电子邮件中的链接时登录用户?

我的rails应用程序中有一个User模型。 这是一个“设计”模型。 我有一个名为“user-info”的表单,一旦用户登录系统,就可以使用此表单。 我有一个admin登录,其中admin可以发送link到用户email如通过单击button填写“用户信息”。 一旦用户点击该按钮,我希望用户automatically登录系统,而无需重定向到登录页面。 并应navigated到user-info表单。 我想知道在url中发送查询字符串参数,如email =“x@gmail.com”&& form =“user_info”。 但是一旦用户点击了这个,就需要实现我的要求。

更改Rails会话cookie域而不记录用户

我正在使用Rails 4.2.2(使用Devise 3.4.1)并且正在将cookie_store域从www.boundless.dev更改为.boundless.dev,以便在所有子域中共享相同的会话(单点登录) 。 Boundless::Application.config.session_store :cookie_store, key: ‘_boundless_session’, domain: ‘.boundless.dev’ 如果我单独做这个改变。 返回该站点的现有登录用户最终将获得2个_boundless_session cookie,一个使用domain _boundless_session ,另一个使用www.boundless.dev。 不知怎的,这使得登出不可能。 是否可以在不将所有用户从站点中注销的情况下进行此更改? 我以为我能够在我的ApplicationController中编写一个方法作为before_filter来删除会话cookie并将其替换为.boundless.dev中的一个新的,但它不起作用,我怀疑它有一些东西给我使用remember_user_token cookie。 def update_session_cookie_domain session_cookie = cookies[‘_boundless_session’] cookies.delete(‘_boundless_session’, domain: ‘www.boundless.dev’) cookies[‘_boundless_session’] = { value: session_cookie, domain: ‘.boundless.dev’ } end

单一登录与设计和OmniAuth

有很多关于使用OmniAuth和Devise能够使用facebook和twitter登录webapp的信息。 但是,我正在尝试编写自己的OAuth提供程序而不使用fb / twitter等(并且未能找到示例)。 我基本上想要有两个应用程序 – 一个UserManager,它有一个用户表,和WebApp1(以及将来可能更多)。 我希望用户能够转到WebApp1并重定向到UserMAnager以便能够登录,然后重定向回WebApp1。 我不希望WebApp1有一个用户表。 我可以指点一下吗? 在这个阶段,我相信我需要在两个应用程序中使用Devise,在WebApp1中需要OmniAuth,尽管我不是100%肯定。

用于noob的Rails身份validation策略

希望这不是太广泛,但经过大量的谷歌搜索,我不知道从哪里开始。 我正在寻找介绍性/ noob概述,以帮助我开始构建rails 3应用程序的身份validation实现。 基本技术要求: Rails 3应用程序托管在第三方服务(heroku)上 需要使用特定的外部私有SSO服务来validation用户。 rails应用程序中没有本地用户数据库或模型。 身份validation是基于令牌的,这意味着需要读取一个特殊的cookie,将令牌传递回SSO服务器(而不是基于rails)。 我无法控制SSO服务器或基础架构。 SSO服务器的信任是隐式的,不希望维护用户,密码或敏感信息的本地数据库。 用户信息仅在会话期间存在且SSO服务器具有权威性。 会话令牌信息是基于cookie的,并且在浏览器会话期间存在。 我正在寻找基本的示例/教程/策略/解释,通过上述设置,该过程如何在rails中工作。 我希望这个过程对于用户来说是无缝的,工作流基本上是这样的: 导航到rails app – > 将未经身份validation的用户重定向到SSO服务器 – > 通过远程SSO服务器登录和validation – > 回调/重定向到rails app – > 捕获从SSO服务器传回的用户信息,并在rails app中加载受保护的资源 策略完全是使用私有SSO资源自定义的,并且不使用良好发布的身份validation机制(换言之,不是Facebook,Google,Twitter,OAuth等)。 任何有关术语,连贯的教程,示例的帮助将不胜感激。 编辑/更新: 更具体地说,我也在寻找如何创建omniauth自定义开发人员策略的良好文档。 一些教程介绍了与任意SSO服务器通信所需的代码类型,从cookie中读取令牌,以及完成身份validation握手和回调/重定向。

如何使用Rails跨多个域共享用户会话?

是否有人知道任何gem,教程或解决方案使用户能够在一个域中登录网站并自动在同一会话中访问其他合作伙伴域? 我有两个rails应用程序正在运行,我们称之为App-A和App-B。 App-A有一个与之关联的数据库,为App-A.com的注册和登录提供支持。 我现在想让App-A.com帐户的所有用户都可以访问App-B.com,而无需重新注册或手动登录App-B.com。 在此先感谢您的帮助! – 标记

使用不同应用程序的单一登录在轨道上接近ruby

在以下情况下最好的方法是什么: 处理用户身份validation的主要应用程序(最好是Devise)。 几个不同的应用程序,可以访问用户数据库进行单一登录。 用户数据同步(首选项,配置文件数据) 场景示例: 用户注册申请A. 用户可以使用相同的凭据访问应用程序B(但必须明确确认新协议,然后才能使用应用程序B)

关于Shibboleth和SAML的好文档?

除了Shibboleth Wiki页面,我在哪里可以找到有关使用Shibboleth和SAML进行SSO的有用文档,最好是Ruby应用程序? 针对Shibboleth的Ruby特定文档似乎非常稀疏。 有谁知道好的资源,教程或HowTos?

Redmine:422无效forms真实性令牌

我正在使用此插件在我的IDP和redmine之间启用SSO。 目的是避免在登录redmine时重新输入用户名和密码。 Redmine和IDP都连接到外部LDAP。 问题是从我的IDP重定向回redmine(输入用户名和密码后),它给出了这个错误。 Redmine版本:2.5.2,Ruby版本:1.9.3,Rails版本:3.2.19

如何使用rails将devise sign_in信息传递到不同的应用程序中

我有3个应用程序需要使用SSO,https和devise进行身份validation相互通信。 我想弄清楚的是如何在一个rails应用程序上执行登录并让链接传递相关的(cookie,会话等),以便外部Web浏览器可以查看信息。 这是3个应用程序的流程。 第一个应用程序是WEB PORTAL。 它向api发送了一堆sso(单点登录)相关字符串。 第二个API_APP应用程序validation信息并将其传递给rails应用程序。 此RAILS_APP应用程序使用devise的“sign_in_and_redirect”帮助程序方法validationapi的信息并在用户中签名 现在这是一个棘手的部分。 如何将RAILS_APP中的信息沿着链路传递回WEB_PORTAL,以便它可以查看Web门户可以查看已登录的用户帐户? 更多信息: 我承认这种架构并不理想,但不幸的是它目前无法改变。 WEB_PORTAL实现并不那么重要,但我认为API_APP需要一些工作。 API_APP将信息格式化为net http请求,如此 uri = URI.parse(MY_RAILS_APP_URI) http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Post.new(uri.request_uri, initheader = {‘Content-Type’ =>’application/json’}) request.body = {“email” => email, “id” => id, “email” => email, “timestamp” => timestamp, “token” => token}.to_json response = http.request(request) location = response.header[‘location’] #if the RAILS_APP […]

在Ruby和PHP之间共享会话

是否可以在子域上的PHP应用程序和我的其他子域上的Ruby应用程序之间共享会话? 我真的不知道从哪里拿这个。 我知道我可以手动将域设置为根域,以便cookie对所有子域都有效,但是我如何从/向会话获取/设置内容以便它在子域之间共享? 我主要想用它来共享我的整个子域名的登录。 为了知识,如果这是一个错误的方法来解决问题,尽管是一个可行的方法,我想知道如何做到这一点,为什么我不应该。 谢谢你们!