ruby-saml を使ったSSOを本番環境で試してみる

こんにちは!kossyです!

さて、今回はSAML認証のクライアント側を実装できるGem「ruby-saml」でLINE WORKSのSAML2.0でSSOをHerokuにデプロイした環境で試してみたので、備忘録としてブログに残してみたいと思います。




環境
Ruby 2.6.8
Rails 6.0.4.1
MacOS Catalina




以前、レポジトリのセットアップからruby-samlの導入、ローカル環境での動作確認までを以下ブログで書いております。

今回の記事で以下で作成したレポジトリをherokuにデプロイしてSSOを試してみたいと思います。

kossy-web-engineer.hatenablog.com



herokuへのデプロイ

こちらのガイドを参考にしました。

devcenter.heroku.com

ガイドに記載されてない点で実行したことは環境変数の設定です。

$ heroku config:set IDP_GROUP_NAME=your_group_name

$ heroku config:set IDP_FINGERPRINT=38:5A:8C:53:CC:8A:C8:53:C3:32:C2:00:34:C1:A5:8A:00:23:0A:C8:0C:6A:36:CF:41:EA:42:5F:3E:62:07:85

これで環境変数ソースコード内で参照できるようになります。

LINE WORKSの設定

開発環境の設定とは別で新規で作成するのがいいでしょう。

f:id:kossy-web-engineer:20211023163655p:plain

herokuへのアプリケーションデプロイに成功するとURLが発行されると思いますので、そちらのURLをyour_domainの箇所と置き換えてください。

これで一通り動作が確認できる環境は整ったかと思います。


トラブルシューティング

heroku logs --tail コマンドを実行すると、起動中のアプリケーションのログをリアルタイムで確認することができます。

$ heroku logs --tail

私の場合、ACS URLが間違っていて Routing Errorが発生していたので、ログを確認することで間違いに気が付くことができました。。。

まとめ

動作確認はローカル環境の時とほとんど変わらない(URLが違うだけ)なので割愛します。

今回はデプロイ先にHerokuを選択しましたが、AWSでもGCPでもやることは変わらないかと思います。

ruby-saml、本当に優秀です。


余談

完全に余談なんですがLINE WORKSのdevelopers画面はだいぶ簡素な作りなので改善の余地があるかと思われます。。。