2021-01-01から1年間の記事一覧

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 …

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_…

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…

ruby-saml を使ってSSOを試してみる with LINE WORKS

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

過去に使用されたパスワードの再設定を制限するdevise-securityの「PasswordArchivable」のソースコードを追ってみる

こんにちは!kossyです! 今回は、過去に使用されたパスワードの再設定を制限するdevise-securityの「PasswordArchivable」のソースコードを追う機会があったので、ブログに残してみたいと思います。 偉大なる本家レポジトリ 環境 Ruby 2.6.8 Rails 6.0.4.1 …

railsで開発途中からdocker環境を構築する場合の注意点

こんにちは!kossyです! 今回はアプリ開発環境に開発途中でdockerを用いた環境構築を行った際に軽くハマったことをブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4.1 Docker-Compose 1.27.0 docker-compose build が通らない 以下のようなdo…

環境変数を管理できるGem「figaro」を使ってみる

こんにちは!kossyです! 今回は環境変数を管理できるGem「figaro」を個人開発アプリに導入してみたので、備忘録としてブログに残してみたいと思います。 偉大なる本家レポジトリgithub.com 環境 Ruby 2.6.8 Rails 6.0.4.1 docker-compose 1.27.0 導入 まず…

RailsのActionDispatch::Http::URLのsubdomainメソッドのソースコードを覗いてみる

こんにちは!kossyです! 今回は、ActionDispatch::Http::URLのsubdomainメソッドのソースコードを読む機会があったので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.1.0 MacOS BigSur subdomainメソッド ソースコードの位置は…

ログイン周りの情報の追跡を実現する、deviseの「trackable」のソースコードを追ってみる

こんにちは!kossyです! 今回は、ログイン周りの追跡を実現する、deviseの「trackable」のソースコードを追ってみたので、ブログに残してみたいと思います。 環境 Ruby 2.6系 Rails 6.0.4 devise 4.8.0 github.com trackableモジュールとは ソースコード内…