【问题标题】:How do I verify the Subject of X509 Certificate using rails-auth?如何使用 rails-auth 验证 X509 证书的主题?
【发布时间】:2017-01-15 04:24:03
【问题描述】:

我正在尝试保护我为 Docusign Connect API 拥有的一个端点。我已经在 docusign connect API 配置中检查了 Sign Message with X509 Certificate

客户证书公用名也会添加到 Docusign 帐户中。

我正在尝试验证使用 rails-auth gem 发送的主题。

以下是ACL文件(acl.yml)的内容

---
- resources:
  - method: POST
    path: /
  allow_x509_subject:
    cn: "the common name"

我在 config.ru 文件中添加了以下内容

app = Rails.application
acl = Rails::Auth::ACL.from_yaml(                               
  File.read("path of the acl.yml"),                    
  matchers: { allow_x509_subject: Rails::Auth::X509::Matcher }  
)                                                               

acl_auth = Rails::Auth::ACL::Middleware.new(app, acl: acl)      

x509_auth = Rails::Auth::X509::Middleware.new(                  
  acl_auth,                                                     
  ca_file: "path_to_the_pem_file.crt",
  cert_filters: { 'X-SSL-Client-Cert' => :pem })                                                               

run x509_auth 

我收到以下异常。

*** Rack 应用程序对象中的异常 Rails::Auth::NotAuthorizedError(未经授权的请求)

Docusign 帐户中添加的通用名称与我在 YML 文件中提到的相同。有人可以帮我在这里找到问题吗?

我将 Ruby 2.2.2 与 rails 4.2.2、rails-auth 2.0.3 一起使用

【问题讨论】:

    标签: ruby-on-rails-4 docusignapi ruby-2.2


    【解决方案1】:

    保护连接端点并确保所有呼叫都来自 DocuSign 的最佳方法是使用 HMAC 安全性。

    使用 HMAC 安全性时,从您的 DocuSign Connect 帐户发送的每条消息都包含额外的标头值,一个用于您定义的每个 HMAC 密钥(最多一百个),其中将包含使用您的一个 HMAC 密钥散列的消息正文,使用 HMACSHA256。例如,如果您定义了两个键,则将添加两个标头 X-DocuSign-Signature-1 和 X-DocuSign-Signature-2。它们将包含分别使用您的第一个和第二个密钥散列的消息正文。

    https://developers.docusign.com/esign-rest-api/guides/connect-hmac

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 2015-03-03
      • 2012-09-28
      • 2020-05-23
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多