30日間の無料評価版をお試しいただけます。

概要

Yellowfin 9.5では、シングルサインオン(SSO)セッションの開始時に、JWTトークンを使用できるオプションを導入しました。

YellowfinはJWTトークンを受け入れ、その内容を使用して新しいセッションをプロビジョニングします。JWTトークンの内容、またはグローバル構成を使用して、以下を指定することができます。

  • ログインするユーザーID
  • ユーザーのロール
  • プロビジョニングのためのユーザーの姓名
  • プロビジョニングのためのユーザーの電子メールアドレス
  • ユーザーのデフォルトダッシュボード
  • Yellowfinログイン後のランディングページ

ユーザーが存在しない場合は、JWTエントリーポイントを使用してユーザーをプロビジョニングすることもできます。


JWTシングルサインオンの有効化

JWT SSOは、Yellowfinのシステム構成ページで有効化します。

  1. レフトサイドナビゲーションから、管理システム構成を選択します。
  2. 認証をクリックして、認証方法項目を展開します。



  3. JWTシングルサインオンのトグルを有効にします。
    新しくJWT設定項目が表示されます。こちらから、JWT SSOに関連するすべての設定を行います。



  4. JWT設定項目を展開します。各オプションの詳細は、以下の表に示します。



JWT SSO データベースオプションの設定

YellowfinのJWT設定項目には、JWT SSOを実装するための様々な設定が含まれており、最大限の柔軟性を提供します。次の表および手順に示すように、必要最小限の情報を含めるか、必要に応じてトークンをカスタマイズし、追加の詳細情報を含めるかを選択できます。

JWT設定項目を展開します。各オプションの詳細は、以下の表に示します。

パラメーター名パラメーターの説明必須項目かどうかデフォルト設定
JWTトークンの配信方法

JWTトークンの配信方法を、URLパラメーター、またはCookieから選択します。

Cookieを選択した場合、JWTトークンは、JWT Cookie名項目のCookie名から取得されます。

NoURLパラメーター
JWT Cookie名この項目は、JWTトークンの配信方法で、Cookieを選択すると表示されます。このパラメーターは、使用されるCookie名を定義します。Noなし
JWT検証キー

JWTトークンの署名を検証するための検証キーを入力します。これはプレーンテキストです。バイナリキーは、Base 64でエンコードすることで渡すことができます。この場合、バイナリ検証キー項目はプレーンテキストに設定する必要があります。

これを使用する場合は、検証キーを入力した後でパスワードを更新ボタンをクリックしてください。
JWTトークンの作成時に、同じ検証キーを入力します。

Yesなし
バイナリ検証キーデフォルトでは、このパラメーターはプレーンテキストに設定されています。セキュリティを強化するには、Base64エンコードを選択します。Noプレーンテキスト
JWTの署名アルゴリズム

デフォルトでは、HMAC256に設定されています。その他のオプションは以下の通りです

HMAC512 , RSA256, RSA384, RSA512, ECD256, ECD384, ECD512

NoHMAC256
JWT発行者このパラメーターは、JWTトークン内の発行者属性を検証します。これを設定した場合、この項目の値は、JWTトークンの発行者項目と比較され、一致しない場合は、トークン検証が失敗します。Noなし
JWT User Id Attributeこのパラメーターは、Yellowfin UserIdを提供します。Yesなし
JWTクライアント参照ID Attributeこのパラメーターは、ユーザーが属するクライアント組織のクライアント参照IDの場所を提供します。通常、関連するクライアント組織を持たないYellowfin インスタンスの場合は、「1」に設定されます。Noなし
SSOエントリーオプション

このパラメータは、JWT SSOプロセスで作成されたセッションに渡されるコンマ区切りのWebサービスセッションパラメータ値を保持するJWT属性を取ります。

より詳細な情報は、カスタムパラメーターおよびパラメーターを使用したデータのカスタマイズ項目を参照してください。

Noなし
SSOカスタムセッション変数Attribute

このパラメーターを使用すると、SSO web サービス呼び出しのパラメーターをオプションを介して渡すことができるオプションを、JWT SSOプロセスにより作成されたセッションに渡すことができます。

これは属性ベースなので、個別のユーザーに適用できます。

より詳細な情報は、カスタムパラメーターおよびパラメーターを使用したデータのカスタマイズ項目を参照してください。

Noなし
JWTオンボーディングこのトグルを有効にすると、新規ユーザーが存在しない場合に、最初のログイン試行時にそのユーザーをプロビジョニングできます。NoOff



JWTオンボーディングのデータベースオプション

JWTオンボーディングトグルを有効にした場合、新規ユーザーを最初のログイン試行時に自動的にプロビジョニングすることができます。

パラメーター名パラメーターの説明必須項目かどうかデフォルト設定
First Name Attribute

このパラメーターは、新規ユーザーの名を取得するためのJWT属性の名前を定義します。

新規ユーザーの最初のログイン試行時に自動的にプロビジョニングをするには、これをFirstに設定します。

Yesなし
Surname Attribute

このパラメーターは、新規ユーザーの姓を取得するためのJWT属性の名前を定義します。

新規ユーザーの最初のログイン試行時に自動的にプロビジョニングをするには、これをLastに設定します。

Yesなし
Email Attribute

このパラメーターは、新規ユーザーの電子メールアドレスを取得するためのJWT属性の名前を定義します。これは、Yellowfinログイン時に、ユーザー名として使用されます。

新規ユーザーの最初のログイン試行時に自動的にプロビジョニングをするには、これをUserIdに設定します。

Yesなし
Language Attributeこのパラメーターは、新規ユーザーの言語コードを取得するためのJWT属性の名前を定義します。Noシステムのデフォルト
Password Attributeこのパラメーターは、新規ユーザーのパスワードを取得するためのJWT属性の名前を定義します。Noランダムのパスワード(32の英数字文字列)
Role Attribute

このパラメーターは、新規ユーザーのロールを取得するためのJWT属性の名前を定義します。これを省略した場合は、新規ユーザーにデフォルトのロールが割り当てられます。

Noデフォルトに設定してあるロール(詳細は、こちらを参照してください)
予備のロールこのドロップダウンリストでは、Role Attribute項目に入力したロールが、新規ユーザーのプロビジョニングに使用できない場合の予備のロールを選択できます。Noデフォルトに設定してあるロール(詳細は、こちらを参照してください)



Yellowfinで使用するJWTトークンの作成

JWTトークンの作成は、サードパーティ製ソフトウェアを介して行われるため、次の手順は、前述のオプションを独自のJWTトークンに統合する方法の例を紹介しています。これらの手順は、基本的なガイドとしてのみご利用ください。

既存のYellowfin ユーザーのためのJWTトークンを作成

  1. お好みのJWT トークンクリエイターへ移動します(今回の例では、 https://jwt.io/を使用しています)
  2. 最低限として、右側のPayload項目にユーザー名を追加します。



    これは、YellowfinのJWT User Id Attribute項目に追加した内容と一致しなくてはいけません。



  3. JWT検証キー項目で検証キーを使用している場合は、右下のsignature項目内のテキスト項目に同じキーを入力します。


    参考として、左側のカラーコーディングは、JWTトークンがどのように作成されるかを示しています。
  4. 左側のエンコードされたトークンをコピーします。
  5. Yellowfin URLの最後に、JWTトークンログインおよびクエリー文字列を追加します。
    JWTLogin.i4?jwtToken=
  6. クエリー文字列の最後に、エンコードされたトークンを貼り付けます。



    JWT payloadで指定したユーザーが、自動的にログインします。


新規Yellowfin ユーザーのためにJWTトークンを作成

  1. お好みのJWT トークンクリエイターへ移動します(今回の例では、 https://jwt.io/を使用しています)
  2. 最低限として、右側のPayload項目にユーザー名、姓、名を追加します。



    これは、それぞれ対応するYellowfinの項目に追加した内容と一致しなくてはいけません。



  3. JWT検証キー項目で検証キーを使用している場合は、右下のsignature項目内のテキスト項目に同じキーを入力します。


    参考として、左側のカラーコーディングは、JWTトークンがどのように作成されるかを示しています。
  4. 左側のエンコードされたトークンをコピーします。
  5. Yellowfin URLの最後に、JWTトークンログインおよびクエリー文字列を追加します。
    JWTLogin.i4?jwtToken=
  6. クエリー文字列の最後に、エンコードされたトークンを貼り付けます。


JWT payloadで指定した新規ユーザーが、自動的にログインします。クライアント組織が複数設定されている場合は、所属する組織を選択するように促されます。



JWTトークンを含むCookieの作成

セキュリティを強化するために、JWTトークンをCookieに格納するオプションもあります。これにより、クロスサイトリクエストフォージェリのリスクをさらに軽減することができます。

  1. JWT設定項目を展開し、JWTトークンの配信方法Cookieを選択します。


    新しい項目として、JWT Cookie名が表示されます。
  2. JWT Cookie名項目に、Cookie名を入力します。



  3. ブラウザで開発者ツールコンソールを開き、ツールを使用して既存のCookieを表示します。



  4. ブラウザの開発者ツールを使用して、新しいCookieを追加します。以下を確認してください。
    ・YellowfinのJWT Cookie名項目と名前が一致していること
    ・トークン作成に使用したツールからエンコードされたJWTトークンをコピーし、新しいCookieの値カラム(列)に貼り付けます。


  5. Yellowfinのインスタンスにアクセスするために、JWT ログインURLを入力します(例: http://localhost:8080/JWTLogin.i4



カスタムパラメーターおよびパラメーターを使用したデータのカスタマイズ

SSO web サービスの呼び出しで、カスタムパラメーターおよびパラメーターオプションを既に利用している場合は、SSOエントリーオプションおよびSSOカスタムセッション変数Attribute項目を使用して、これらをJWTトークンに追加することもできます。


SSOエントリーオプション属性

SSOエントリーオプション属性を使用することで、SSO web サービスのカスタムパラメーターオプションを介して渡すことができるユーザーごとのカスタムデータを、JWT SSOプロセスにより作成されたセッションに渡すことができます。これは属性ベースではないため、すべてのユーザーに適用されます。

SSOエントリーオプションの属性フィールドでは、JWTシングルサインオンを使用する際に、カスタムセッション変数をセッションごとに設定することができます。この属性には、JWT SSOプロセスで作成されたセッションに適用されるWebサービスのSSOセッションオプションを含めることができます。

例えば、ログイン時にすべてのユーザーがお気に入りに登録したレポートやダッシュボード、ストーリーなどを表示できるようにする場合は、TIMELINEおよびDISABLEHEADERパラメーター(または、ログインセッションオプションの定義に記載されているその他のパラメーター)を使用できます。以下の例では、これらを使用します。

  1. YellowfinのJWT設定を展開し、SSOエントリーオプション属性項目を表示します。
  2. 使用するパラメーターをカンマ区切りで入力します。
    JWT属性の名前を入力します。


  3. 設定を保存し、変更内容を保存します。

JWTトークンを使用してログインし、指定したログインオプションが表示されることを確認することで、変更が機能していることをテストできます。



SSOカスタムセッション変数Attribute

SSOカスタムセッション変数Attribute項目を使用することで、SSO web サービス呼び出しのパラメーターをオプションを介して渡すことができるオプションを、JWT SSOプロセスにより作成されたセッションに渡すことができます。これは属性ベースなので、個別のユーザーに適用できます。

この項目を使用するためには、独自のJavaプラグインを記述しなくてはいけません。Yellowfin セッションには任意の数の変数を渡すことができるため、カスタム要件に対して柔軟性を高めることができます。

例えば、一般的なYellowfinヘッダーを置き換えるカスタムヘッダーを実装する場合は、この項目にヘッダーの情報を抽出してページの上部に表示できるJSON配列を配置できます。これには、ユーザーのロールやプロフィール写真、作業した最新の3つのレポートへのリンクなど、ユーザー固有の詳細情報も含めることもできます。

Yellowfinでの唯一の要件は、SSOカスタムセッション変数Attribute項目に、これらの詳細を追加することです。


  • No labels