Commit 5fa53a9
2017-11-01 23:03:49
1 parent
4d660b2
Changed files (7)
airport
app
controllers
config
initializers
proof
saml-kit
lib
saml
kit
airport/app/controllers/metadata_controller.rb
@@ -7,8 +7,7 @@ class MetadataController < ApplicationController
def to_xml
builder = Saml::Kit::ServiceProviderMetadata::Builder.new
- builder.entity_id = "airport.dev"
- builder.acs_url = "http://localhost:4000/session"
+ builder.add_assertion_consumer_service(session_url, binding: :post)
builder.to_xml
end
end
airport/app/controllers/sessions_controller.rb
@@ -18,7 +18,7 @@ class SessionsController < ApplicationController
def query_params
{
- 'SAMLRequest' => Saml::Kit::Request.authentication,
+ 'SAMLRequest' => Saml::Kit::Request.authentication(assertion_consumer_service: session_url),
'RelayState' => JSON.generate(inbound_path: '/'),
}.map do |(x, y)|
"#{x}=#{CGI.escape(y)}"
airport/config/initializers/saml_kit.rb
@@ -1,4 +1,3 @@
Saml::Kit.configure do |configuration|
configuration.issuer = ENV['ISSUER']
- configuration.acs_url = ENV['ACS_URL']
end
airport/.env
@@ -1,4 +1,3 @@
-ACS_URL=http://localhost:3000/session
API_CLIENT_ID=''
API_CLIENT_SECRET=''
AUTHENTICATION_HOST=https://auth.dev/auth
airport/Gemfile.lock
@@ -2,9 +2,11 @@ PATH
remote: ../saml-kit
specs:
saml-kit (0.1.0)
+ activemodel (~> 5.1)
activesupport (~> 5.1)
builder (~> 3.2)
nokogiri (~> 1.8)
+ xmldsig (~> 0.6)
GEM
remote: https://rubygems.org/
@@ -223,6 +225,8 @@ GEM
websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
+ xmldsig (0.6.4)
+ nokogiri (>= 1.6.8, < 2.0.0)
xpath (2.1.0)
nokogiri (~> 1.3)
proof/Gemfile.lock
@@ -2,9 +2,11 @@ PATH
remote: ../saml-kit
specs:
saml-kit (0.1.0)
+ activemodel (~> 5.1)
activesupport (~> 5.1)
builder (~> 3.2)
nokogiri (~> 1.8)
+ xmldsig (~> 0.6)
GEM
remote: https://rubygems.org/
@@ -219,6 +221,8 @@ GEM
websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
+ xmldsig (0.6.4)
+ nokogiri (>= 1.6.8, < 2.0.0)
xpath (2.1.0)
nokogiri (~> 1.3)
saml-kit/lib/saml/kit/request.rb
@@ -5,8 +5,11 @@ module Saml
Base64.encode64(compress(document.to_xml))
end
- def self.authentication
- encode(AuthenticationRequest::Builder.new)
+ def self.authentication(assertion_consumer_service:, entity_id: nil)
+ builder = AuthenticationRequest::Builder.new
+ builder.acs_url = assertion_consumer_service
+ builder.entity_id = entity_id unless entity_id.blank?
+ encode(builder)
end
def self.compress(content)