omniauthを既に使っていてたため、omniauth-samlを使ってSAML対応することになったけど、SAMLの承認自体は通るもののその後セッションが持続せず毎回ログアウトされるようになっていた。
結論
omniauth_callbacks_controller.rb
protect_from_forgery except: [:saml]
自前のstrategyを持っていたりしてどこでtokenが消失するのかとかを追っていたけど、単純にprotect_from_forgeryで消されていただけだった。
今まで使っていたomniauth-google-oauth2がexceptしなくても動いていたので気づくのに時間がかかった。