1

我正在尝试保护我为 Docusign Connect API 拥有的一个端点。我已经在 docusign 连接 API 配置上检查了带有 X509 证书的签名消息。

客户证书公用名也会添加到 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 Account 中添加的 Common Name 与我在 YML 文件中提到的相同。有人可以帮我在这里找到问题吗?

我正在使用带有 rails 4.2.2、rails-auth 2.0.3 的 Ruby 2.2.2

4

1 回答 1

0

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

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

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

于 2019-11-06T21:39:23.517 回答