🔥
Omniauth::MicrosoftGraph実践メモ
Omniauth::MicrosoftGraphでOAuth2認証をしようとしたときにハマった点の個人的なメモです。Rails 7.1.2です。まだ開発環境での動作確認までです。
使用したStrategy → Omniauth::MicrosoftGraph
トラブルシューティング
config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
# 認証可能なユーザーをテナントのユーザーに限定する場合はproviderにclient_optionsを渡す必要がある(by ChatGPT)
provider :microsoft_graph, ENV['ENTRA_APPLICATION_CLIENT_ID'], ENV['ENTRA_APPLICATION_CLIENT_SECRET'], client_options: {
site: "https://login.microsoftonline.com/#{ENV['ENTRA_TENANT_ID']}",
authorize_url: "https://login.microsoftonline.com/#{ENV['ENTRA_TENANT_ID']}/oauth2/v2.0/authorize",
token_url: "https://login.microsoftonline.com/#{ENV['ENTRA_TENANT_ID']}/oauth2/v2.0/token"
}
# Google Cloud Shellで実行しているためかfull_hostを指定しないとAADSTS50011エラーがでた
configure do |config|
config.full_host = "https://8***********.cs-asia-east1-vger.cloudshell.dev"
end
end
参考にした記事:
Rails上でOmniAuthを使う時のredirect_uriの設定
config/initializers/session_store.rb
# Cookieを利用しているとActionDispatch::Cookies::CookieOverflowエラーになったためcache_storeに変更
# 自作アプリはシングルサーバー&サーバー再起動でセッションリセットされても問題ない
Rails.application.config.session_store :cache_store
以下のコマンドでキャッシュを有効にする
rails dev:cache
参考にした記事:
omniauthを使った認証時にsessionが消える時の対処法, Rails 6 で omniauth-cognito-idp を使って Amazon Cognito 認証を実装するサンプル
Discussion