【问题标题】:Regulating Permitted users via Salesforce API (Using Rails & Restforce)通过 Salesforce API 管理允许的用户(使用 Rails 和 Restforce)
【发布时间】:2014-12-22 12:12:10
【问题描述】:

我正在为我们的 salesforce 实例创建一个连接的 Rails 应用程序。

我们的系统有一大群用户和少数系统管理员。 Salesforce 似乎最终通过用户配置文件处理了大部分 CRUD 权限,但我还想确保只有我批准的系统管理员才能“登录”到应用程序、清除 oauth 并进行 api 调用。

我有一种感觉,如果不保护这一点,我们的其他用户将能够登录,但如果他们最终请求未设置为通过 Salesforce 权限查看的对象,则会出现错误。但这很麻烦……而且我也不希望他们走那么远。

对于何时干预以保护使用 Oauth 和进行 API 调用的应用程序,是否有任何最佳做法/建议?

我正在使用出色的Restforce Gem 并使用omniauth 来存储返回的用户详细信息。

我目前的想法是创建一个简单的数组:

@whitelisted_admins = [user1.uid, user2.uid, user3.uid]

然后在我的/models/user.rb 中使用 before_save 检查 user.name 是否包含在数组中:

class User < ActiveRecord::Base
  def self.from_omniauth(auth)
    before_save { user.uid.in?(@whitelisted_admins) }
    where(auth.slice(:provider, :uid).permit!).first_or_initialize.tap do |user|
      user.provider = auth.provider
      user.uid = auth.uid
      user.name = auth.info.name
      user.oauth_token = auth.credentials.token
      user.refresh_token = auth.credentials.refresh_token
      user.instance_url = auth.credentials.instance_url
      user.save!
    end
  end
end

然后我可以在每次 Restforce API 调用之前运行一些东西...

所以我的问题:

  1. 将此作为哈希而不是存储在活动记录中是否存在安全隐患,这很重要吗?
  2. 在 Oauth、API 调用...或两者都进行检查是否更好? (我吓坏了,都默认了……)

【问题讨论】:

    标签: ruby-on-rails security oauth salesforce


    【解决方案1】:

    我不会做一组管理员,这比允许 Salesforce 管理权限要麻烦得多。如果您只想限制非管理员配置文件用户,我将首先在 User 模型和提供访问权限的用户上创建 is_admin 列。

    我假设您的系统管理员在一个个人资料下,您可以通过在用户创建过程中调用 Salesforce API 来获取他们的用户个人资料来确定用户是否是管理员。

    但是,老实说,我会让 Salesforce 处理用户权限。你最终会在你的应用程序中注入大量的复杂性来管理一个小的 UX 问题。

    编辑 - 如何限制对 ConnectedApp 的访问:

    1. 转到 ConnectedApp

    1. 选择 ConnectedApp 并点击编辑

    2. 在 OAuth Policies 下,将 Permitted Users 下拉菜单更改为“Admin Approved Users are Preauthorized”并保存

    1. 向下滚动到“个人资料”部分,点击“管理个人资料”,选择您要授予应用访问权限的个人资料,然后保存

    【讨论】:

    • 不是要取代salesforce用户pems,而是要补充它们。我担心标准 Salesforce 用户仍然能够成功登录、oauth 和请求以及不受管理员权限监管的信息。我只希望少数系统管理员能够使用我额外的 Rails 工具!
    • @Huw OHHHHH 好的,现在我知道你想做什么了!不要试图通过 Rails 应用程序来调节它。将 ConnectedApp 的 OAuth 策略更改为仅允许某些用户配置文件访问。查看我的编辑。
    • 你是传奇,我是白痴。没有发现我可以做到这一点,非常感谢!
    猜你喜欢
    • 2018-02-27
    • 2014-12-22
    • 2014-05-18
    • 2015-11-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多