Как проверить тему сертификата X509 с помощью rails-auth?

Я пытаюсь защитить одну конечную точку, которая у меня есть для Docusign Connect API. Я проверил Подписать сообщение сертификатом X509 в конфигурации API подключения docusign.

Общее имя сертификата клиента также добавляется в учетную запись Docusign.

Я пытаюсь проверить тему, отправленную с помощью драгоценного камня rails-auth.

Ниже приведено содержимое файла 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 в объекте приложения Rack (несанкционированный запрос)

Общее имя, которое добавляется в учетную запись Docusign, совпадает с тем, которое я упомянул в файле YML. Может ли кто-нибудь помочь мне найти проблему здесь?

Я использую Ruby 2.2.2 с rails 4.2.2, rails-auth 2.0.3.


person Richa Sinha    schedule 07.09.2016    source источник


Ответы (1)


Лучший способ защитить конечную точку подключения и убедиться, что все вызовы поступают из DocuSign, — это использовать HMAC Security.

При использовании защиты HMAC каждое сообщение, отправляемое из вашей учетной записи DocuSign Connect, включает дополнительные значения заголовка, по одному для каждого определенного вами ключа HMAC (до ста), которые будут содержать тело сообщения, хешированное одним из ваших ключей HMAC с использованием HMACSHA256. Например, если вы определили два ключа, будут добавлены два заголовка, X-DocuSign-Signature-1 и X-DocuSign-Signature-2. Они будут содержать тело сообщения, хешированное вашими первым и вторым секретными ключами соответственно.

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

person Inbar Gazit    schedule 06.11.2019