...
Yellowfinは、セキュリティを強化するために、アイデンティティプロバイダーからの署名付きリクエストを管理することができます。この機能はデフォルトで有効になっていますが、いくつかの設定を必要とします。Yellowfinが受信する署名付きリクエストを復号できるようにするために、アイデンティティプロバイダーの署名付き証明書および署名付きアルゴリズムを提供しなくてはいけません。アイデンティティプロバイダーは、これらの値を構成内で明確にする必要があります。
Anchor EncryptedRequests EncryptedRequests
EncryptedRequests | |
EncryptedRequests |
暗号化されたリクエスト
Yellowfinは、さらにセキュリティを強化するために、アイデンティティプロバイダーからの暗号化されたリクエストを管理するよう設定することができます。これは、署名付きリクエストの設定とは別に有効化することができます。また、Yellowfinに渡すSSLキーペアを生成しなくてはいけません (こちらのwikiページに記載された表から、onelogin.saml2.sp.x509certおよびonelogin.saml2.sp.privatekeyを参照してください)。これは、システムにより提供されません。これらを取得したら、Yellowfinの対応する設定項目に秘密鍵と証明書を提供するとともに、アイデンティティプロバイダーでこの設定を行い、その設定内でSSL暗号化証明書を設定する必要があります。
...
YellowfinにSAMLを設定する前に、対応しなくてはいけない項目を十分理解していることを確認します。以下の表では、各項目に関する詳細を示します。
IdPは、以下の項目を必要とします。
パラメーター | 説明 | 必須かどうか | デフォルト |
サービスプロバイダーSSO URL | IdPが、Yellowfin |
ログインページに到達するために使用する Single Sign OnエンドポイントURLです。これは通常、レポート外部アクセス時BaseURLの後に続く/SAMLLogin.i4を付けたものです。 | 必須 | ext_base_url/SAMLLogin.i4 | |
オーディエンス制限 | これは、「サービスプロバイダーエンティティId」または「発行者Id」と呼ばれることもあります。これは、Yellowfin SAML サービスの識別子です。これは通常、レポート外部アクセス時BaseURLの後に続く/SAMLMetadata.i4を付けたものです。 | 必須 | ext_base_url/SAMLMetadata.i4 |
暗号証明書 | この証明書は、IdPがYellowfinに向かうトラフィックを暗号化するために使用します。前述したように、独自のSSLキーペアを生成し、この項目に暗号化証明書を提供する必要があります。 | 受信リクエストの暗号化を有効にしている場合は必須 | なし |
Yellowfinは、以下の項目を必要とします。
パラメーター | 説明 | 必須かどうか | デフォルト | |
アイデンティティプロバイダーエンティティIdアイデンティティプロバイダーのEntityId | 「オーディエンスURl」、または「オーディエンス制限」と呼ばれることもあります。これは、サービスプロバイダーのエンティティを特定します。 <your_idp_domain>/<sp_id> 例えば、 www.okta.com/ekti172b2ac0843Xf | 必須 | なし | |
アイデンティティプロバイダーSSO アイデンティティプロバイダーのSSO URL | SAMLアイデンティティプロバイダーのSSO SAMLアイデンティティプロバイダーの Single Sign On エンドポイントURLであり、 IdPは独自の設定ページ内で明確に表示しなくてはいけません。 これは、次のような形式になります。 <your_sso_domain>/<path_to_sp_sso_login> 例えば、 login.mybusiness.com/app/yellowfin1/ekti172b2ac0843Xf/sso | 必須 | なし | |
アイデンティティプロバイダーSLO URL | ||||
アイデンティティプロバイダー証明書 | この証明書は、アイデンティティプロバイダーからのリクエストを復号化します。アイデンティティプロバイダーは、構成内でこの証明書を明確にしなくてはいけません。 | 必須 | なし | |
受信証明書検証アルゴリズム | このアルゴリズムは、受信するアイデンティティプロバイダー証明書を検証します。受信する証明書に合わせて、3つの異なるハッシュ長から一致するものを選択します。
| 必須 | SHA256 | |
受信するリクエストの暗号化 | こちらのトグルは、受信するSAMLリクエストが、アイデンティティプロバイダーにより暗号化されるかどうかを示します。有効にすることで、より強力なセキュリティを提供します。 | トグル | 無効 | |
暗号化秘密鍵 | この秘密鍵は、アイデンティティプロバイダーから受信する暗号化されたSAMLリクエストを復号化します。前述したように、独自のSSLキーペアを生成し、こちらの項目に秘密鍵を提供する必要があります。 | 受信するリクエストの暗号化を有効にしている場合は必須 | なし | |
暗号化証明書 | この証明書は、アイデンティティプロバイダーから受信する暗号化されたSAMLリクエストを検証します。前述したように、独自のSSLキーペアを生成し、こちらの項目に暗号化証明書を提供しなくてはいけません。 | 受信するリクエストの暗号化を有効にしている場合は必須 | なし | |
ユーザーId属性 | SAML ID プロバイダのシングル・ログアウト・エンドポイントの URL であり、IdP は自身の設定ページに明確に表示する必要があります。このオプションは、YellowfinにSLOのレスポンスをどこに向けるかを指示します。 次のような形式になります。 <your_slo_domain>/<path_to_idp_slo_logout> 例えば、 login.mybusiness.com/app/yellowfin1/ekti172b2ac0843Xf/slo | 必須 | なし | |
アイデンティティプロバイダー SLO URL 回答 | これは、IdpのSLO回答のエンドポイントとSLOリクエスト用のエンドポイントが異なる場合のみ必要となるオプションのパラメーターです。何も入力されていない場合、YellowfinはアイデンティティプロバイダーSLO URLフィールドに入力されたURLを使います。 これは、次のような形式になります。 <your_slo_domain>/<path_to_idp_slo_logout_response> 例えば、 login.mybusiness.com/app/yellowfin1/ekti172b2ac0843Xf/sloreponse | 任意 | なし | |
アイデンティティプロバイダー証明書 | この証明書は、アイデンティティプロバイダーからのリクエストを復号化します。アイデンティティプロバイダーは、この証明書を設定で明らかにする必要があります。 | 必須 | なし | |
サービスプロバイダー秘密鍵 | この秘密鍵は、アイデンティティプロバイダーから受信する暗号化されたSAMLリクエストを復号化します。このパラメーターを有効にする場合、独自のSSLキーペアを生成し、秘密鍵をここで提供する必要があります。 これは任意ではありますが、Yellowfinがリクエストにサインするために、この秘密鍵を提供することをお勧めします。 | 任意 | なし | |
サービスプロバイダー証明書 | この証明書はサービスプロバイダーのアイデンティティを確認し、アイデンティティプロバイターがサービス間の通信を暗号化することを可能にします。このパラメーターを有効にする場合、独自のSSLキーペアを生成し、ここで暗号化証明書を提供する必要があります。 これは任意ではありますが、Yellowfinがリクエストにサインするために、この秘密鍵を提供することをお勧めします。 | 任意 | なし | |
シグネチャーアルゴリズム | このアルゴリズムは、受信したアイデンティティプロバイダーの証明書を検証します。ハッシュの長さは3種類から選べますので、受信する証明書の種類に合わせてお選びください。
どれか分からない場合は、デフォルトを使用してください。 | 必須 | RSA-SHA256 | |
ダイジェストアルゴリズム | このアルゴリズムは、受信したアイデンティティプロバイダーの証明書を検証します。ハッシュの長さは3種類から選べますので、受信する証明書の種類に合わせてお選びください。
どれか分からない場合は、デフォルトを使用してください。 | 必須 | SHA256 | |
受信したリクエストの暗号化 | このトグルは、受信する SAML リクエストを ID アイデンティティプロバイダーが暗号化するかどうかを決定します。セキュリティを高めるには、スイッチをオンにしてください。 | トグル | ||
ユーザーID 属性 | こちらの項目は、Yellowfin ユーザーIDを保持します (システム構成に応じて、これは通常ユーザー名、または電子メールアドレスになります)。 | 必須 | なしクライアント参照Id属性 | |
クライアント参照ID 属性 | このパラメーターは、ユーザーが所属するクライアント組織のクライアント参照Idの位置を提供します。通常、関連するクライアント組織を持たないYellowfin インスタンスでは、空欄、または「1」に設定します。 | 必須ではない | なし | SSO エントリーオプション |
これは、セッションパラメーターのカンマ区切りの一覧であり、ユーザーを自動的に特定のページやログインに誘導したい場合に使用します。ユーザーをデフォルトのエントリーページに誘導する場合は、空欄のままにします。SSOエントリーオプション属性 | このパラメータには、SAML SSOプロセスで作成されたセッションに渡されるカンマ区切りのWebサービスセッションパラメータ値を保持するSAML属性を指定します。ユーザーをデフォルトの入力ページに誘導する場合は、空白にします。詳細および例については、「CustomParameters と Parameters でデータをカスタマイズする」セクションを参照してください。 | 必須ではない | なし | |
カスタムセッションパラメーター属性 | こちらの項目は、SAML SSOが作成したセッションに渡すカスタム変数の値を保持します。渡すカスタムデータがない場合は、空欄のままにします。カスタムセッションパラメーター 属性 | このパラメーターは、SSO Webサービスの呼び出しの時に、パラメーターオプションを、SAML SSLプロセスで作成されるセッションに渡すことができます。 | 必須ではない | なし |
新規ユーザーのオンボーティング新規ユーザー作成 | こちらのトグルを有効にすることで、SAMLは自動的に新規ユーザーをプロビジョニングします。新規ユーザーをプロビジョニングしない場合は、こちらのトグルを有効にしてはいけません。 | 必須ではない | 無効 |
...
- Yellowfin レフトサイドメニューから、管理をクリックし、システム構成を選択します。
- 認証タブをクリックし、認証方法項目へ移動します。
- SAML シングルサインオンのトグルをクリックし、有効にします。
SAML 設定という新しい項目が表示されます。こちらから、SAML SSOに関連するすべての設定を行います。
SAML 設定
SAML設定をクリックして、項目を展開します。 - 前述の表を参考にして、必要な項目に値を入力します。
- 前述の表を参考にして、必要に応じて、必須ではないその他の項目に値を入力します。前述の表を参考にして、必要な項目に値を入力します。:IdPのEntityId、IdPのSSO URL、Idp SLO URL、IdPの証明書、シグネチャーアルゴリズム、ダイジェストアルゴリズム、ユーザーアイデンティティ属性
- 前述の表を参考にして、必要に応じて、必須ではないその他項目に値を入力します(以下のイメージを参照してください)。
SAML オンボーディングの有効化
Yellowfinは、システム内に存在しないユーザーの新規ユーザーアカウントを作成するよう設定することができます。この機能は「オンボーディング」と呼ばれ、SAMLリクエストから新規ユーザーを作成するために必要な情報と合わせて、Yellowfinにいくつかの追加設定を提供しなくてはいけません。以下のパラメーターはすべて、上記の他の属性マッピングパラメーターと一致するように、アイデンティティプロバイダーとYellowfinで設定・構成する必要があります。
First Name
このパラメーターは、新規ユーザーの名を取得するために、SAML属性の名前を定義します。
Last Name
このパラメーターは、新規ユーザーの姓を取得するために、SAML属性の名前を定義します。
このパラメーターは、新規ユーザーの電子メールアドレスを取得するために、SAML属性の名前を定義します。
Language
このパラメーターは、新規ユーザーの言語コードを取得するために、SAML属性の名前を定義します。SAML応答のコンテンツは、管理コンソールの地域設定で既に設定された既存の言語コードと一致しなくてはいけません。言語コードは標準的なISO形式で、言語を2文字で表し、必要に応じてアンダースコアとさらなる2文字で国を表します。
Password
このパラメーターは、新規ユーザーのパスワードを取得するために、SAML属性の名前を定義します。こちらを空欄にすると、新規ユーザーにはランダムなパスワードが作成されます。
Role
このパラメーターは、新規ユーザーのロールを取得するために、SAML属性の名前を定義します。こちらを省略した場合、新規ユーザーにはデフォルトロールが割り当てられます。SAML応答のコンテンツは、管理コンソールで既に設定された既存のロールコードと一致しなくてはいけません。
Fallback Role
こちらのドロップダウンリストには、新規ユーザーのプロビジョニング時に、Role Attribute項目に入力したロールが利用できない場合に、フォールバックするロールを選択する方法を提供します。こちらを省略した場合、新規ユーザーにはデフォルトロールが割り当てられます。
SAML オンボーディングを設定するには、以下の手順に従います。
前述の手順で説明したのと同じ設定画面にいることを確認します。
新規ユーザーのオンボーディングトグルをクリックして有効化します。
前述の表を参考にして、必要な項目に値を入力します。
前述の表を参考にして、必要に応じて、必須ではないその他の項目に値を入力します。
(以下のイメージを参照してください)
CustomParametersおよびParametersを使用したデータのカスタマイズ
SSO web サービスの呼び出しで、既にCustomParametersおよびParameters オプションを使用している場合は、SSO エントリーオプションおよびSSO カスタムセッション変数属性項目を使用して、これらをSAMLに追加することもできます。
SSO エントリーオプション
SSO エントリーオプション項目は、ユーザーが SAML経由でログインした後に生成されるYellowfin セッションで利用できる機能を設定することができます。これらは、「CustomParameters」オプションを使用してweb サービスのSSO ログインに設定できるオプションと同様です。これは属性ベースではないため、すべてのユーザーに適用されます。
例えば、ユーザーのログイン時に、お気に入りに登録したレポートやダッシュボード、ストーリーが表示されるようにしたい場合、TIMELINEおよびDISABLEHEADER パラメーター (または、ログインセッションオプションの定義ページに表示されている任意のパラメーター) を使用することができます。
今回は、こちらの例を使用して説明します。
YellowfinのSAML 設定項目で、SSO エントリーオプション項目に移動します。
使用する任意のパラメーターを、カンマ区切りで入力します。
今回の例では、ENTRY=TIMELINE,DISABLEHEADER=TRUEを使用します。
保存ボタンをクリックし、変更内容を保存します。
JWT トークンを使用してログインし、指定したログインオプションが表示されていることを確認することで、変更内容が機能していることを確認することができます。
カスタムセッションパラメーター属性
カスタムセッションパラメーター属性項目は、ユーザーが SAML経由でログインした後に生成されるYellowfin セッションに、カスタム値を渡すことができます。これらは、「Parameters」オプションを使用してweb サービスのSSO ログインに渡すことのできるオプションと同様です。これは属性ベースのため、個別のユーザーに適用することができます。
この項目を使用するためには、独自のJava プラグインを記述しなくてはいけません。Yellowfin セッションには、任意の数の変数を渡すことができるので、カスタム要件にさらなる柔軟性を提供します。
例えば、Yellowfinの一般的なヘッダーを置き換えるために、カスタムヘッダーを実装したい場合、この項目にJSON配列を配置することで、ヘッダーは情報を取得し、ページの上部に表示することができます。これには、ロールやプロフィール写真などのユーザー固有の詳細や、ユーザーが作業をしていた最新の3つのレポートへのリンクなどを含めることができます。
...