くりにっき

フルスタックキュアエンジニアです

SAML連携したChatWorkアカウントでOAuthログインする方法

先日のブログの続編です

sue445.hatenablog.com

うちの会社ではChatWorkをSAML連携させて利用しています。

SAML連携したChatWorkアカウントだと普通のやり方ではOAuth認証できません。一応できるんですがやり方が難しすぎて初見だとエラーが出てハマるので現時点でのやり方を書いておきます。*1

やり方

  1. https://www.chatwork.com/login.php 経由でログインしてブラウザに予めChatWorkのセッションを作っておく。*2
  2. コンセント画面(omniauth-chatworkでは/auth/chatworkでリダイレクトした先の画面)では普通のログインボタンではなく、新規登録ボタンの真下の「KDDI ChatWorkをご利用の方はこちら」のリンク先からでログイン

このログイン画面だと普通赤いログインボタンを押すやろ・・・

f:id:sue445:20171116174813p:plain

omniauth-chatwork実装時にリファレンス通りにやってもOAuthログインできなくて、ChatWorkのサポートに問い合わせてメールで何往復かしてようやく上記の手順が分かりました。

一応断片的にはドキュメントには書いてあるんですが、非常に分かりづらいのでサポートに改善要望を投げています。

*1:最後に書いてるけど改善要望は投げているので今後仕様が変わる可能性はある

*2: http://developer.chatwork.com/ja/oauth.html の「OAuth2専用ログイン画面ではSAML認証には対応しておりません。通常のログイン画面を経由してSAML認証でログインした後、再度コンセント画面にアクセスしてください。」参照