我有这个,我想是遵循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开始有语法更改。