Okta を使用した SAML の構成
Security Assertion Markup Language (SAML) は認証と承認のためのデータ形式です。SAML で シングル サインオン (SSO) を有効化すると、ユーザーが Web サイトや アプリケーションにアクセスするためにログオンする回数を減らすことができます。
SAML はサードパーティ製品による認証用に構成することができます。Okta では、 認証は ID プロバイダー (IdP) またはサービス プロバイダー (SP) によって開始されます。
シングル サインオンを ID プロバイダーから開始する場合
ID プロバイダーがユーザーを認証します。ID プロバイダーがユーザーの ID を断言すると、サービス プロバイダーはユーザーにサービスへのアクセスが提供できるようになります。ID プロバイダーによって SSO が有効にされているため、ユーザーは各サイトにログインしなくても、複数のサービス プロバイダーのサイトやアプリケーションにアクセスできます。
シングル サインオンをサービス プロバイダーから開始する場合
サービス プロバイダーはユーザーを ID プロバイダーにリダイレクトし、そこで認証が行われます。認証プロセスでは、Qlik Sense がサービス プロバイダーとなります。認証が正常に行われた後、ユーザーはさらにログインすることなく、複数のサービス プロバイダー サイトおよびアプリケーションにアクセスできます。
Okta を使用して SAML SSO をセットアップするには、Qlik Sense での仮想プロキシの構成が必要です。また、ID プロバイダーである Okta の構成も必要です。
仮想プロキシの作成および構成
次の手順を実行します。
-
QMC を開く:https://<QPS サーバー名>/qmc
-
QMC で、[仮想プロキシ] を開きます。
-
データ マネージャーでテーブルの 新規作成
-
右側の [Properties] (プロパティ) で、[Identification] (ID)、[Authentication] (認証)、[Load balancing] (負荷分散)、および [Advanced] (詳細設定) の各セクションを選択していることを確認します。
-
[Identification] (ID) で、[Description] (説明) と [Prefix] (プレフィックス) に「okta」と入力します。
-
[Session cookie header name] (セッション クッキー ヘッダー名) で、既存の名前の末尾に「-okta」を追加し、ヘッダー名を X-Qlik-Session-okta にします。
-
[Authentication method] (認証方法) に [SAML] を指定します。
-
[SAML single logout] (SAML シングル ログアウト) を選択します。SAML シングル ログアウト は、すべての SSO セッションが適切に閉じるようにするためのセキュリティ対策です。
-
[SAML host URI] (SAML ホスト URI) に、Qlik Sense へのアクセスにユーザーが使用する URL (サーバー名) を https://myhost.company.com の形式で入力します。
-
[SAML entity ID] (SAML エンティティ ID) に「okta」と入力します。
これは Okta 構成の一意の識別子です。
情報メモ[SAML IdP metadata] (SAML IdP メタデータ) は以降の段階で追加されます。 -
[SAML attribute for user ID] (ユーザー ID に使用する SAML 属性) に「email」と入力します。
これは Okta に保存されるユーザーの電子メール アドレスです。Okta 構成内で、別の標準項目またはカスタム項目をユーザー ID として使用するように指定することができます。
-
[SAML attribute for user directory] (ユーザー ディレクトリに使用する SAML 属性) に「[okta]」と入力します。
これは、括弧を必要とする静的属性です。
-
[SAML signing algorithm] (SAML 署名アルゴリズム) に [SHA-1] を指定します。
-
[SAML attribute mapping] (SAML 属性マッピング) で、 [Add new attribute] (新しい属性の追加) をクリックします。
-
[SAML attribute] (SAML 属性) として「groups」、[Qlik Sense attribute] (Qlik Sense 属性) として「group」を入力します。[Mandatory] (必須) の選択を解除します。
名前 groups は SAML アサーションでの属性名です。セキュリティ ルールでこの属性を使用している場合、Qlik Sense はこの属性名 group に応答します。
-
[Load balancing nodes] (負荷分散ノード) で、 [Add new server node] (新しいサーバー ノードの追加) をクリックします。
-
この仮想プロキシが接続を負荷分散するエンジン ノードを選択します。
-
[Advanced] (詳細設定) の [Host white list] (ホスト許可リスト) セクションで、 [Add new value] (新しい値の追加) をクリックします。
-
Qlik Sense サーバー ([SAML host URI] (SAML ホスト URI) で入力したのと同じサーバー) のホスト名を追加します。
-
[Apply] (適用) をクリックし、[OK] をクリックしてサービスを再起動します。
-
右側の [Associated items] (関連するアイテム) メニューで、[Proxies] (プロキシ) を選択します。
-
[Link] (リンク) をクリックし、この構成を使用するプロキシ (1 つまたは複数) に仮想プロキシをリンクさせます。
プロキシ サービスが再起動します。
-
[Virtual proxies] (仮想プロキシ) 概要ページに移動します。
-
作成した okta 構成を選択し、操作バーの [Download SP metadata] (SP メタデータのダウンロード) をクリックします。
-
Qlik Sense で生成されたメタデータを開きます。以下を確認してください。
-
entityID: この値は、Okta が Qlik Sense サーバーと通信できるようにするために必要です。
-
SingleLogoutServiceURL (Location): これは、SAML ホスト URI を入力して末尾に仮想プロキシ パスを追加すると Qlik Sense によって生成される URL です。末尾に samlauthn と slo が追加されていることに留意してください。これは、Okta が SAML シングル ログアウト を ID プロバイダーに伝達するために使用する URL です。
-
AssertionConsumerService URL (Location): これは、SAML ホスト URI を入力して末尾に仮想プロキシ パスを追加すると Qlik Sense によって生成される URL です。末尾に samlauthn が追加されていることに留意してください。これは、Okta が SAML アサーションを Qlik Sense に伝達するために使用する URL です。
-
NameIDFormat: 既定では、transient 名の形式はメタデータとして指定されます。SAML 構成においてこの方法で設定することが常に必要とは限りませんが、適切な操作性を確保するには、この値を記録しておき構成に適切に適用する必要があります。
-
これで、とりあえず仮想プロキシの設定が完了しました。このページに戻り、IdP メタデータ ファイル (ID プロバイダーの Web ページから入手可能) をアップロードします。次のステップでは、Okta を構成します。
Okta の構成
Okta は構成での ID プロバイダーとなるため、Okta の構成を行う前にアカウントを登録する必要があります。詳細については https://www.okta.com/ を参照してください。
次の手順を実行します。
-
Okta でトップ メニューの [Developer Console] (開発者コンソール) にマウスを合わせ、[Classic UI] (クラシック UI) を選択します。
-
トップ メニューで、[Applications] (アプリケーション) を選択します。
-
[Add Application] (アプリケーションの追加) をクリックします。
-
[Create New App] (アプリの新規作成) をクリックします。
-
[Platform] (プラットフォーム) として [Web] を選択します。
-
[Sign on method] (サインオン方法) として [SAML 2.0] を選択します。
-
[Create] (作成) をクリックします。
構成画面が表示されます。
-
このアプリに「Qlik Sense SAML configuration」という名前をつけます。
-
オプション: ロゴを追加します。
-
[Next] (次へ) をクリックします。
[SAML Settings] (SAML 設定) ページが表示されます。
-
[Single sign on URL] (シングル サインオン URL) として、SP メタデータ ファイルからの AssertionConsumerService URL を項目に入力します。samlauthn の後ろに必ず末尾のスラッシュを挿入してください。これを怠ると、Qlik Sense で SAML アサーションが受け入れられません。
-
[Audience URI (SP Entity ID)] (オーディエンス URI (SP エンティティ ID)) として、前に開いた SP メタデータからの entityID 値を入力します (okta)。
-
[Name ID format] (名前 ID の形式) に [Transient] (一時的) を指定します。
-
[Show Advanced Settings] (詳細設定の表示) をクリックします。
-
[Enable Single Logout] (シングル ログアウトの有効化) に、[Allow application to initiate Single Logout] (シングル ログアウトの開始をアプリケーションに許可する) を指定します。
-
[Single Logout URL] (シングル ログアウト URL) には、https://<machine_name>/<vp_prefix>/samlauthn/slo/ の形式を使用します。
-
[SP issuer] (SP 発行元) には、仮想プロキシの SAML entity ID を使用します (okta)。
-
QMC > [仮想プロキシ] からダウンロードしたサービス プロバイダーのメタデータ ファイルから証明書を抽出します。関連する仮想プロキシの [SP メタデータのダウンロード] をクリックします。
-
ファイル内のタグ <X509Certificate> と </ X509Certificate> の間にある証明書をコピーします。
-
新しいファイルで、ファイルの最初に -----BEGIN CERTIFICATE----- を追加し、ファイルの最後に -----END CERTIFICATE----- を追加します。
-
拡張子が .pem または .crt のファイルを保存します。
- [Upload Certificate] (証明書のアップロード) をクリックします。
-
[ATTRIBUTE STATEMENTS] (属性ステートメント) セクションで、[Name] (名前) に「email」と入力し、[値] には [user.email] を指定します。
-
[GROUP ATTRIBUTE STATEMENTS] (グループ属性ステートメント) セクションで、[Name] (名前) に「groups」と入力し、[Filter] (フィルター) に [Regex] を指定して文字列「^[A-Za-z0-9_.]+$」を追加します。
情報メモ正規表現を使用して検索パターンを定義します。検索パターンの条件に適合する文字列のみが検索されます。検索パターンが ^[A-Za-z0-9_.]+$ の場合、グループ名は、A ~ Z と a ~ z の文字、0 ~ 9 の数字、アンダースコア (_)、ピリオド (.) のいずれかが含まれている場合にのみ検索されます。名前にダッシュ (-) が含まれている場合は、検索パターンに適合しないため検索されません。詳しくは、「Wikipedia: 正規表現」を参照してください。 -
[次へ] をクリックします。
フィードバック セクションが開きます。
-
[Are you a customer or partner?] (顧客/パートナーのいずれに該当しますか?) の問いに対し、[I'm an Okta customer adding an internal app] (社内アプリを追加しようとしている Okta 顧客です) を選択します。
-
オプション: [This is an internal app that we have created] (これは社内アプリとして作成したアプリです) を選択します。
-
[Finish] (完了) をクリックします。
[Sign On] (サインオン) ページが表示されます。このページから IdP メタデータをダウンロードできます。
-
下にスクロールして、[dentity Provider metadata] (IDプロバイダーメタデータ) リンクをクリックします。 Qlik Sense ではメタデータ ファイルの拡張子が xml でなければならないため、ファイルは必ず metadata.xml として保存してください。
-
上向きにスクロールし、トップ メニューで [People] (ユーザー) を選択します。
-
作成した接続をユーザーが使用できるように、ユーザーをアプリに割り当てる必要があります。[Assign to People] (ユーザーへの割り当て) をクリックし、ユーザーを追加します。(ユーザーが Okta アカウントを持っていることが前提となります。)
これで Okta の構成が完了しました。接続をテストするには、最後のステップとして IdP メタデータを仮想プロキシにアップロードする必要があります。
IdP メタデータ ファイルのアップロード
次の手順を実行します。
-
QMC に戻り、編集のために okta 仮想プロキシを開きます。
-
[Authentication] (認証) の [SAML IdP metadata] (SAML IdP メタデータ) で、[Choose File] (ファイルの選択) をクリックします。
-
Okta からダウンロードしたメタデータ ファイルを選択します。
-
[View content] (コンテンツを表示) をクリックしてメタデータを確認します。
-
[Apply] (適用) をクリックします。
-
[OK] をクリックし、 仮想プロキシへの変更を承諾します。
-
[Refresh QMC] (QMC データの更新) をクリックします。
これで構成をテストできます。
Okta SAML 構成のテスト
前述したように、シングル サインオン (SSO) はサービス プロバイダーまたは ID プロバイダーを介して開始できます。
シングル サインオンをサービス プロバイダーから開始する場合
次の手順を実行します。
-
新しいブラウザー ウィンドウを開いて、仮想プロキシ パスを含む Qlik Sense サーバー URL に移動します。例: https://myhost.company.com/okta/
ログイン要求の認証のために、ブラウザーが Okta にリダイレクトされます。
-
ユーザー資格情報を入力します。
Okta によって Qlik Sense ハブにリダイレクトされます。
シングル サインオンを ID プロバイダーから開始する場合
-
ブラウザーを開いて www.okta.com に移動します。
-
ユーザー資格情報を使用してログインします。
-
上部のメニューで、[My Applications] (マイ アプリケーション) をクリックします。
使用可能なアプリケーションが表示されます。
-
Qlik Sense SAML アプリケーションをクリックします。
Qlik Sense ハブが新しいタブで開きます。