我正在尝试为Docusign Connect API保护一个端点。我已在docusign connect 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帐户中添加的公用名与我在YML文件中提到的公用名相同。有人可以帮我找到这个问题吗?
我使用Ruby 2.2.2和rails 4.2.2,rails-auth 2.0.3
答案 0 :(得分:0)
保护连接端点并确保所有呼叫均来自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