Ruby on rails 4 如何使用rails auth验证X509证书的主题?

Ruby on rails 4 如何使用rails auth验证X509证书的主题?,ruby-on-rails-4,docusignapi,ruby-2.2,Ruby On Rails 4,Docusignapi,Ruby 2.2,我正在尝试保护Docusign Connect API的一个端点。我已在docusign connect API配置上检查了带有X509证书的签名消息 客户端证书公用名也将添加到Docusign帐户 我正在尝试验证使用rails auth gem发送的主题 以下是ACL文件(ACL.yml)的内容 我在config.ru文件中添加了以下内容 app = Rails.application acl = Rails::Auth::ACL.from_yaml(

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

客户端证书公用名也将添加到Docusign帐户

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

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

我在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帐户中的公共名称与我在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。它们将包含分别用第一个和第二个密钥散列的消息体


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

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

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