Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails omniauth saml+;设计+;ADFS发行_Ruby On Rails 4_Devise_Activeadmin_Omniauth_Adfs3.0 - Fatal编程技术网

Ruby on rails 4 Rails omniauth saml+;设计+;ADFS发行

Ruby on rails 4 Rails omniauth saml+;设计+;ADFS发行,ruby-on-rails-4,devise,activeadmin,omniauth,adfs3.0,Ruby On Rails 4,Devise,Activeadmin,Omniauth,Adfs3.0,我正在尝试将我们的ADFS登录与我们的应用程序集成,该应用程序将ActiveAdmin与Deviate结合使用。为此,我成功地添加了omniauth saml。应用程序现在重定向到ADFS,登录成功,但回调失败。我收到了错误无效票证 当我尝试在omniauth saml库中查看服务器上的响应时,我可以看到它说:@document=和@解密的文档= 初始化器/designe.rb的内容如下: config.omniauth :saml, assertion_cons

我正在尝试将我们的ADFS登录与我们的应用程序集成,该应用程序将ActiveAdmin与Deviate结合使用。为此,我成功地添加了omniauth saml。应用程序现在重定向到ADFS,登录成功,但回调失败。我收到了错误
无效票证

当我尝试在omniauth saml库中查看服务器上的响应时,我可以看到它说:
@document=
@解密的文档=

初始化器/designe.rb
的内容如下:

config.omniauth :saml,
                assertion_consumer_service_url: 'https://my_server/admin/auth/saml/callback',
                issuer: 'https://my_server/',
                authn_context: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport',
                idp_sso_target_url: 'https://my_adfs_server/adfs/ls/',
                assertion_consumer_service_binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
                assertion_consumer_logout_service_binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
                idp_sso_target_url_runtime_params: {original_request_param: :mapped_idp_param},
                name_identifier_format: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
                idp_cert: idp_certificate,
                request_attributes: {},
                attribute_statements: {email: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'],
                                       name: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'],
                                       first_name: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname'],
                                       last_name: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname']},
                private_key: sp_key,
                certificate: sp_certificate,
                security: {authn_requests_signed: true,
                           logout_requests_signed: true,
                           logout_responses_signed: true,
                           metadata_signed: true,
                           digest_method: XMLSecurity::Document::SHA1,
                           signature_method: XMLSecurity::Document::RSA_SHA1,
                           embed_sign: false}
我怎样才能解决这个问题

添加:
似乎REXML::Document无法解密SAML响应中的密码。它无法做到这一点而不会出错。当我尝试自己使用时,我发现它没有问题。

我从ADFS元数据xml中选择了错误的证书。需要选择签名,而不是加密证书


通过使用进行调试发现此问题。

我最终如何修复它可以在我的博客上找到: