LoginSignup
0
0

More than 3 years have passed since last update.

YellowfinでJWTを使ってSSOする

Posted at

Json Web TokenでのSSOログイン

先日のYellowfin9.5アップデートでJWTでのログインが可能となったそうなので試しにやってみました。
といってもwikiを見たらすぐできたのでそこまで難しくはなかったです。自サービスからJWTを作成すること自体はhttps://jwt.io/ にあるライブラリを使ったり、参考にさせていただいたこちらの記事をご覧ください。

使用するための設定

wikiに記載のある通り、管理→システム構成→認証→認証方法からJWTシングルサインオンのトグルを有効にします。
その後JWT Configurationから設定していきます。今回はURL ParameterにTokenを追加する方式を試します。
image.png
せめてものセキュリティとして「JWT Validation Key」に「yellowfin」を入力して更新、必要最低限な「JWT User Id Attribute」にプロパティ名として「UserId」を入力して保存します。

Tokenを使ってログインしてみる

https://jwt.io/ のフォームから今回設定したバリデーションキーをシグネチャーに設定し、ペイロードにUserIdとして初期ユーザーのユーザーIDを設定するとEncodedの部分にHeader、Payload、VerifySignatureそれぞれを暗号化したものがドットで繋がれて生成されます。
image.png
ブラウザからYellowfinのログインページの後ろに「JWTLogin.i4?jwtToken=」のパラメーターを追加して、その後にEncodedにあった文字列をつなげます。
image.png
そのまま移動するとログイン後のページに遷移することができました。
image.png

所感

発行されたトークン自体を使ってログインするのはとても簡単ですが、JWTの発行部分を実装するほうが力がいりそうです。とはいえライブラリがあったりするのでそこまで大変ではなさそうですね。このJWTを使って新規ユーザーも作成できるそうなのですが、それは画面でやればいいんじゃ・・と思いつつ一斉にユーザー作成して用意するためには有効なのかなと。使い方によるのかな。
実際に結構ガチガチにするならJWTをCookieに保存させるのが一番ぽい気がします。また、ここでは触れてないですが、ログイン後に何を表示させるかといったことも設定できるようですので実装する際には参考にしたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0