如何在rails中生成和共享SP SAML 2.0元数据

时间:2016-07-05 12:59:48

标签: ruby-on-rails ruby ruby-on-rails-3 saml-2.0

我有这个,我想是遵循SAML 1.1,我想知道如何在Rails中使用SAML 2.0生成新的SP元数据并与其他用户共享,这将有助于其他团队在IDp配置SAML(身份提供商结束)?

require 'onelogin/saml'
class Account < ActiveRecord::Base
    def get_settings
        settings = Onelogin::Saml::Settings.new    
        settings.issuer                          = "https://example.com/test"    
        settings.idp_sso_target_url                ="https://testexample.com"  
        settings.idp_cert_fingerprint             ="########"
        settings.relying_party_identifier         = "knsdfnsdf"    
        settings.assertion_consumer_service_url   = "https://www.example.com/consume?http_referer=https://testexample.com"
        settings.idp_confirmation_method          = "urn:oasis:names:tc:SAML:1.0:cm:bearer"
        settings.asserting_party_id               = "23424dfsdf"            
        settings.referer_url = "https://textexample.com" 
        settings.groups                           = ["USER"]
        return settings, Onelogin::Saml::Metadata.new
      end
   end
     def saml_metadata
         settings, meta = Account.get_settings
         render :xml => meta.generate(settings)
      end

我有什么方法可以生成它并与IDp共享以配置SAML过程。

更新

我现在可以使用上面的代码获取元数据。我只是想确定它是SAML 2.0。我该怎么说呢?

我从上面的代码得到的xml:

  <md:EntityDescriptor entityID="https://example.com/test">
    <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" AuthnRequestsSigned="false" WantAssertionsSigned="true">
     <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://www.example.com/consume?http_referer=https://testexample.com" isDefault="true" index="0"/>
    </md:SPSSODescriptor>
   </md:EntityDescriptor>
  

请注意:上述代码仅在您使用ruby-saml时才有效   版本0.7.x,因为从0.8.x开始有语法更改。

0 个答案:

没有答案