Я интегрирую OKTA в мое приложение Rails с ruby -2.5.2 и rails 5.1. Я использую SAML и гем ruby -saml. Я могу успешно аутентифицировать пользователя, но не могу получить время окончания сеанса OKTA. ниже мой код: -
SamlController.rb
class SamlController < ApplicationController
skip_before_action :verify_authenticity_token
def init
request = OneLogin::RubySaml::Authrequest.new
redirect_to(request.create(saml_settings))
end
def consume
response = OneLogin::RubySaml::Response.new(params[:SAMLResponse])
request = OneLogin::RubySaml::Authrequest.new
response.settings = saml_settings
if response.is_valid?
session[:okta_fmno] = response.attributes[:FMNO]
redirect_to root_path
else
render :json => {'error': 'OKTA authentication not detected'}
end
end
private
def saml_settings
settings = OneLogin::RubySaml::Settings.new
settings.assertion_consumer_service_url = SAML_CONSUMER_SERVICE_URL
settings.issuer = SAML_ISSUER
settings.idp_sso_target_url = IDP_SSO_TARGET_URL
settings.idp_cert = IDP_CERT
settings.name_identifier_format = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
settings
end
end
Я также пытался использовать response.not_on_or_after
, но, похоже, он не возвращает правильное время истечения сеанса, потому что по умолчанию время истечения сеанса OKTA установлено на 2 часа, но этот метод возвращает 10 минут. Пожалуйста, помогите мне узнать правильное время истечения сессии. Заранее спасибо.