SmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の JWSの生成周りのソースコードを読んでみる

こんにちは!kossyです! 今回はSmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の JWSの生成周りのソースコードを読んでみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.1.3.1 MacOS Catalina lates…

SmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の 公開鍵検証周りのソースコードを読んでみる

こんにちは!kossyです! 今回は SmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の、公開鍵の検証周りのソースコードを読んでみたいと思います。 環境 Ruby 3.0.3 Rails 6.1.3.1 MacOS Catalina latest HealthCards::Verifier APIドキ…

Railsのcofig_forメソッドでアプリケーションのカスタム値を設定してみる

こんにちは!kossyです! 今回はcofig_forメソッドでカスタム値を設定する方法について、ブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.1.4 使い方 # config/environments/development.rb Rails.application.configure do config.custom_value …

Smart Health Cardの発行と検証を行えるGem 「health_cards」をRails開発環境で動かす

こんにちは!kossyです! 今回はSmart Health Cardの発行と検証を行えるGem 「health_cards」をRails開発環境で動かす手順について、ブログに残してみたいと思います。 環境 Ruby 2.7.4 Rails 6.1.3.1 MacOS Catalina 環境構築 以下のページからソースコード…

RubyのOpenStrictクラスの使い方をGemのコードで理解を試みる

こんにちは!kossyです! 今回は、RubyのOpenStrictクラスの使い方を saml-idp という Gem のコード内での使い方を見て、理解を深めてみたいと思います。 ドキュメントを見る 公式のOpenStrictクラスのドキュメントを見てみます。docs.ruby-lang.org 要素を…

sendgridでメールの一斉配信をする際に宛先ごとに異なる文字列を仕込む方法

こんにちは!kossyです! さて、今回はsendgridでメールの一斉配信をする際に宛先ごとに異なる文字列を仕込む方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 X-SMTPAPIの Substitution Tags を使う 以下のドキュメントによる…

ruby-samlでX509証明書の有効期限を取得したい

こんにちは!kossyです! 今回は ruby-saml でX509証明書の有効期限を取得する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 ruby-saml 1.13.0 not_afterメソッド 結論から言うと、OpenSSL::X509::Certificate#n…

deviseのencrypted_passwordに値が保存される仕組みを調べてみた

こんにちは!kossyです! 今回はdeviseで認証機能を利用する際に必要になるカラムである、「encrypted_password」カラム に値が保存される仕組みを調べてみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.0.4 devise 4.8.1 …

deviseのdestroyアクションを実行すると何が起こるか調べてみた

こんにちは!kossyです! 今回は、deviseのdestroyアクションを実行すると何が起こるか調べてみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.0.4 devise 4.8.1 前準備 pry-railsとpry-byebugをGemfileに記載してbundleし…

devise-securityのparanoid_verificationのソースコードを追ってみた

こんにちは!kossyです! 今回はdevise-securityのparanoid_verificationのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.0.4 devise-security 0.16.0 paranoid_verificationってなに? paranoid_ve…

RailsでPostgreSQLを使う際にgen_random_uuid関数を有効化したい

こんにちは!kossyです! 今回はRailsでPostgreSQLを使う際にgen_random_uuid関数を有効化する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 PostgreSQL 13系 マイグレーションファイルの作成 gen_random_uuid関…

devise-two-factorでの2要素認証設定時にdigestを変更したい

こんにちは!kossyです! 今回はdevise-two-factorでの2要素認証設定時にdigestを変更する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 MacOS BigSur devise-two-factor 4.0.1 otpメソッドのオーバーライド devise-two-fact…

Rubyで五捨五超入を計算する

こんにちは!kossyです! さて、今回はRubyで五捨五超入する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 五捨五超入とは 主に薬価の計算を行う時に用いる端数処理で、薬価の円を点数に直して計算するときに使われます。www…

graphql-rubyで認可制御を行うready?メソッドとauthorized?メソッド

こんにちは!kossyです! さて、今回はgraphql-rubyで認可制御を行うready?メソッドとauthorized?メソッドについて、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 MacOS BigSur graphql-ruby 1.13.0 graphql-rubyでの認可制御…

パスワードリセット機能を提供するdeviseのrecoverableモジュールのソースコードを追ってみた

こんにちは!kossyです! 今回はパスワードリセット機能を提供するdeviseのrecoverableモジュールのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 MacOS BigSur createアクション まずはcreate…

devise-securityのsession_limitableモジュールのソースコードを追ってみた

こんにちは!kossyです! さて、今回はdevise-securiyのsession_limitableのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur devise-security 0.16.1 前提 devise-securityのsession…

devise-securityのsession_limitableを使ってみる

こんにちは!kossyです! さて、今回は認証機能を提供するGem「devise」のextensionで、エンタープライズな認証機能を実現するdevise-securityのsession_limitableを使ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.…

ruby-samlで「Invalid Signature on SAML Response」が返ってきた場合の調査方法

こんにちは!kossyです! 今回はSSOを実現するGem「ruby-saml」で「Invalid Signature on SAML Response」が返ってきた場合の調査方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur ruby-saml 1.13.0 …

ruby-samlで「Invalid settings, idp_sso_service_url is not set!」が発生した場合の対処法

こんにちは!kossyです! 今回はSSOを実現するGem「ruby-saml」で「Invalid settings, idp_sso_service_url is not set!」が発生した場合の対処法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur ruby-sa…

devise_saml_authenticatableのSamlAuthenticatable::SamlResponseのソースコードを追ってみる

こんにちは!kossyです! 今回は、前回のブログで追いきれなかった、SamlAuthenticatable::SamlResponseのソースコードを追ってみようと思います。前回のブログkossy-web-engineer.hatenablog.com 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur devise_saml_aut…

DeviseベースでSAML SSOを実現する 「devise_saml_authenticatable」のソースコードを追ってみた

こんにちは!kossyです! 今回は、DeviseベースでSAML SSOを実現する 「devise_saml_authenticatable」のソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur devise 4.8.0 devise_saml_…

devise_saml_authenticatable + LINE WORKS で SAMLを使ったSSOを実装してみる

こんにちは!kossyです! さて、今回はdevise_saml_authenticatable + LINE WORKS で SAMLを使ったSSOを実装してみたので、備忘録としてブログに残してみたいと思います。 偉大なる本家レポジトリgithub.com 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina R…

Rack::MockRequestとRack::Requestを使ってRack::Requestのbodyのrack.inputをいじっていて気づいたこと

こんにちは!kossyです! 今回はRack::MockRequestのenv_forメソッドとRack::Requestクラスを使って、Rack::Requestのbodyのrack.inputをいじっていて気づいたことがあったので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4…

graphql-rubyでCustom Scalarsを定義してみる

こんにちは!kossyです! 今回はgraphql-rubyでCustom Scalarsを定義する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur graphql-ruby 1.12.19 CustomScalarsとは graphqlにはデフォルトで組み込ま…

punditのpolicy_classで別モデルのPolicyを実行する

こんにちは!kossyです! 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur pundit 2.1.1 なお、Userモデル、Postモデル、Commentモデルが存在するものとします。 policy_classの使い方 例えば、CommentクラスのインスタンスにPostモデルのPolicyを実行したいケー…

SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみる(Metadata編)

こんにちは!kossyです! 今回は、SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみた(SamlResponseだけ)ので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina なお、IdPにはLINE WORKSを用い…

RailsのActiveRecordにおいて保存していない親レコードに紐づく子レコードへのpluckは空配列が返る件

こんにちは!kossyです! 今回は保存していない親レコードに紐づく子レコードにpluckメソッドを使って、意図通り動作しない事象に遭遇したため、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur pluckメソッド Rail…

SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみる(SamlResponse編)

こんにちは!kossyです! 今回は、SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみた(SamlResponseだけ)ので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina なお、IdPにはLINE WORKSを用い…

SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみる(SamlRequest編)

こんにちは!kossyです! 今回は、SAMLでのSSOを実現するGem「ruby-saml」のソースコードを追ってみた(SamlRequestだけ)ので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 MacOS Catalina なお、IdPにはLINE WORKSを用い…

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

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