Class: Onelogin::Saml::Authrequest

Inherits:
Object
  • Object
show all
Defined in:
lib/onelogin/saml/authrequest.rb

Instance Method Summary collapse

Instance Method Details

#create(settings) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/onelogin/saml/authrequest.rb', line 8

def create(settings)
  uuid = "_" + UUID.new.generate
  time = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ")
  request =
      "<samlp:AuthnRequest xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\" xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\" ID=\"#{uuid}\" Version=\"2.0\" IssueInstant=\"#{time}\" Destination=\"#{settings.idp_sso_target_url}\" AssertionConsumerServiceURL=\"#{settings.assertion_consumer_service_url}\" ProtocolBinding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\">" +
      "<saml:Issuer>#{settings.issuer}</saml:Issuer>" +
      "<samlp:NameIDPolicy Format=\"#{settings.name_identifier_format}\" AllowCreate=\"true\"/>" +
      "</samlp:AuthnRequest>"
  request_params    = XMLSecurity.request_params(request)
  request_params = XMLSecurity.sign_query(request_params, settings)
  settings.idp_sso_target_url + "?" + request_params
end