我正试图保护我为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
我得到以下异常:
***异常Rails::Auth::NotAuthorizedError在机架应用程序对象(未授权请求)
在Docusign Account中添加的Common Name与我在YML文件中提到的相同。有人能帮我找到这里的问题吗?
我正在使用Ruby 2.2.2和rails 4.2.2, rails-auth 2.0.3
保护连接端点并确保所有调用都来自DocuSign的最佳方法是使用HMAC安全性。
当使用HMAC安全性时,从您的DocuSign Connect帐户发送的每条消息都包含额外的头值,每个HMAC密钥对应一个您定义的值(最多100个),它将包含使用HMACSHA256的HMAC密钥散列的消息体。例如,如果您定义了两个密钥,那么将添加两个头,X-DocuSign-Signature-1和X-DocuSign-Signature-2。它们将分别包含用第一秘钥和第二秘钥散列的消息正文。
https://developers.docusign.com/esign-rest-api/guides/connect-hmac