SAMLの使用

SAML概要

セキュリティアサーションマークアップ言語(SAML)は、サービスプロバイダ(SP)とIDプロバイダ(IdP)間の認証要求と応答の交換の標準規格です。これにより、SPはIdPが提供するシングルサインオン(SSO)認証サービスを使用して複数セキュリティドメイン経由でアプリケーションへのユーザーアクセスを付与できます。認証リクエストを受信すると、IdPはSAMLアサーション(ユーザーが認証されたかどうかを示すメッセージ)を返します。

Tanium ServerをSPとして構成すると、以下のタイプのSAML SSO認証を使用してTanium Consoleへのユーザーアクセスを付与できます。

  • Tanium Server 7.2.314.3181以降は、Oktaと統合されてIdPとして動作し、IdPが開始するSSOをサポートします。
  • Tanium Server 7.2.314.3476以降は、任意のIdPと統合されて、IdPおよびSPが開始するSSOをサポートします。
Tanium Serverは、SAMLを経由するユーザー承認(RBAC)はサポートしていません。Tanium Consoleにアクセスした後にユーザーが表示して使用できる機能、設定、および情報を制御するには、ユーザーロールのアクセス許可を構成します。詳細については、RBACの概要を参照してください。

管理者予約ロールを持つユーザーのみが、[Configuration (構成)] > [Authentication (認証)] > [SAML Configuration (SAML構成)]ページを表示して使用できます。

IdP主導SSO

IdP主導ワークフローには次のフェーズがあります。

  1. ユーザーは、企業ユーザー名とパスワードを使用して、IdP SSOポータルにサインインし、目的のアプリケーションのアプリケーションタイルをクリックします(この例ではTanium Console)。
  2. IdPは、ユーザーが認証されたことを示す署名済みSAMLアサーションを生成します。ユーザーブラウザは自動的にSPにアサーションを転送します(この例ではTanium Server)。
  3. SPはIdP証明書を使用して、SAMLアサーション署名が有効であることを確認します。
  4. SPは、アプリケーションへのユーザーアクセス権を提供します。
F: 図1: IdP主導SAML SSO

SP主導SSO

SP主導ワークフローには、次のフェーズがあります。

  1. ユーザーは、SPを介してアプリケーション(この例ではTanium Console)に直接アクセスしようとします(この例ではTanium Server)。
  2. SPは、IdPを通じて認証するようにユーザーをリダイレクトします。ユーザーのブラウザは自動的にリダイレクトを処理します。
  3. ユーザーがIdPにログインします。
  4. IdPは、ユーザーが認証されたことを示す署名済みSAMLアサーションを返します。ユーザー ブラウザは自動的にSPにアサーションを転送します。
  5. SPはIdP証明書を使用して、SAMLアサーション署名が有効であることを確認します。
  6. SPは、アプリケーションへのユーザーアクセス権を提供します。
F: 図2: SP主導SAML SSO

使用を開始する前に

  • IdP管理者と協力して、IdP経由でTanium Consoleにアクセスする必要があるユーザーを指定します。IdP管理者は、Active DirectoryまたはLDAPサーバ経由の認証の構成およびIdP経由のユーザーアクセスの管理を担当します。IdP経由のアプリケーションのセットアップについては、IdPのドキュメントを参照してください。

    Tanium管理者は、ドメイン参加のActive Directoryバックエンド経由でユーザーを認証する場合(ユーザーを作成するを参照)、またはLDAP Syncコネクタを構成してユーザーをインポートする場合(LDAPの活用を参照)にTanium Consoleユーザーを作成する必要があります。

  • Tanium ConsoleユーザーがIdP SSOポータルにアクセスするURLの変更を公開するときは、IdP管理者と協力してください(IdPが開始するSSOのみ)。

SAML認証を構成する

  1. [Configuration (構成)] > [Authentication (認証)] > [SAML] に移動し、[Choose an IdP (IdPを選択)]をクリックします。
  2. [Tanium URIs for <IdP> Configuration (IdP構成のTanium URI)]セクションで、[Single sign on URL (シングルサインオンURL)]値と[Audience URI (SP entity ID) (対象者URI (SPエンティティID))]値をコピーし、IdP管理者と共有します。管理者は、Tanium ConsoleアプリケーションをサポートするためのIdPの構成にこの情報を必要とします。

    残りの手順を実行する前に、IdP管理者はTanium ServerがIdPサービスから受信したSAMLメッセージを検証するために使用するIdP証明書を送信する必要があります。

  3. [<IdP> Configuration Information (IdPの構成情報)]セクションで、コントロールを使用してIdP証明書ファイルをアップロードします。この手順の後半で構成のすべての変更を保存した後に、このセクションには証明書名がリンクとして表示されます。これをクリックすると証明書のコンテンツを含むポップアップが開きます。
  4. (カスタムIdPのみ)[Custom IdP Settings (カスタムIdPの設定)]セクションで以下の設定を構成します。別の記載がないかぎり、すべての設定が必要です。これらの設定は、ユーザーが認証を試みた後にIdPがTanium Serverに送信するXMLベースのSAML応答メッセージの要素、属性、および値を参照します。
  5. T: 表3: カスタムIdPの設定
    設定 ガイドライン
    Name (名前) IdPを識別する名前。
    elt_response Response要素の名前。通常の場合、これはトップノードで、ピリオド「.」 で指定します。
    elt_response_sig Response要素内のSignature要素の名前。例:Signature
    elt_assertion Response要素内のAssertion要素の名前。例:Assertion
    elt_assertion_sig Assertion要素内のSignature要素の名前。例:Signature
    xp_response_destination Response要素内の応答先のXpathセレクタ。例:@Destination。送信先は、IdPがSAML応答を送信するURLです。Tanium Serverは、[sec_response_allowed_destination]の設定を使用して、送信先を検証します。
    xp_response_issuer Response要素内の応答発行者識別子のXpathセレクタ。例:Issuer/text()。Tanium Serverは、[sec_response_allowed_issuer]の設定を使用して、発行者識別子を検証します。
    xp_response_status Response要素内の応答ステータスコードのXpathセレクタ。例:Status/StatusCode/@Value。ステータスコードは、IdPで認証が成功したかどうかを示します。
    xp_response_id Response要素内の応答識別子のXpathセレクタ。例:@ID。Tanium Serverは、識別子を使用して応答の署名が正しい要素を参照できるようにします。
    xp_response_issue_instant Response要素内の応答発行時間のXpathセレクタ。例:@IssueInstant。Tanium Serverは、発行インスタントを使用して応答が期限切れにならないようにします。
    xp_assertion_issuer Assertion要素内のアサーション発行者識別子のXpathセレクタ。例:Issuer/text()。Tanium Serverは、[sec_assertion_allowed_issuer]の設定を使用して、発行者識別子を検証します。
    xp_assertion_audience Assertion要素内で想定されるアサーション対象者のXpathセレクタ。例:Conditions/AudienceRestriction/Audience/text()。Tanium Serverは、[sec_assertion_allowed_audience]の設定を使用して、想定される対象者を検証します。
    xp_assertion_username Assertion要素内のユーザー名のXpathセレクタ。例:Subject/NameID/text()。Tanium Serverは、この設定を使用して、認証を試みたユーザーのユーザー名を取得します。
    xp_assertion_recipient Assertion要素内の受信者値のXpathセレクタ。例:Subject/SubjectConfirmation/SubjectConfirmationData/@Recipient。受信者は、IdPがSAMLアサーションを送信する宛先です。Tanium Serverは、sec_assertion_allowed_recipientの設定を使用して、受信者を検証します。
    xp_assertion_auth_class Assertion要素内の認証クラスのXpathセレクタ。例:AuthnStatement/AuthnContext/AuthnContextClassRef/text()。認証クラスは、IdPがユーザーを認証するために使用した方法を表します。Tanium Serverは、[sec_assertion_allowed_auth_context_classes]設定を使用して認証クラスを検証します。
    xp_assertion_cond_before Assertion要素内のnot-before条件のXpathセレクタ。例:Conditions/@NotBefore。not-before条件は、それ以前はアサーションが有効ではない日時を示します。[sec_check_assertion_time_constraints]trueに設定する場合は、[xp_assertion_cond_before]に値が必要です。
    xp_assertion_cond_after Assertion要素内のnot-on-or-after条件のXpathセレクタ。例:Conditions/@NotOnOrAfter。not-on-or-after条件は、アサーションが無効になる日時を示します。[sec_check_assertion_time_constraints]trueに設定する場合は、[xp_assertion_cond_after]に値が必要です。
    xp_signature_info Signature要素内の署名された情報のXpathセレクタ。例:SignedInfo。この情報には、参照要素のメタデータが含まれます。
    xp_siginfo_reference SignedInfo要素内の署名参照のXpathセレクタ。例:Reference。参照には、署名された要素の情報が含まれます。
    xp_reference_uri Reference要素内の参照URIのXpathセレクタ。例:@URI。Tanium Serverは、正しい要素に署名の検証が実行されるように、URIを署名された要素のIDと比較します。
    xp_reference_digest_method Reference要素内の参照ダイジェストメソッドのXpathセレクタ。例:DigestMethod/@Algorithm。ダイジェストメソッドは、ダイジェストを作成するために使用するアルゴリズムを示します。
    xp_reference_digest_value Reference要素内の参照ダイジェスト値のXpathセレクタ。例:DigestValue/text()。ダイジェスト値は、特定のアルゴリズムを使用して計算される参照要素のハッシュです。Tanium Serverは、ダイジェスト値を使用して、実行時に参照要素に対して計算されるダイジェストを検証します。2つの値に差異がある場合は、参照要素の改ざんを示唆します。
    xp_siginfo_signature_method SignedInfo要素内の署名メソッドのXpathセレクタ。例:SignatureMethod/@Algorithm。署名メソッドは、署名を作成するために使用するアルゴリズムを示します。
    xp_signature_value Signature要素内の署名値のXpathセレクタ。例:SignatureValue/text()。値は、特定のアルゴリズムを使用して計算される署名された情報の署名です。Tanium Serverは、Tanium Console ([Custom Configuration Information (カスタム構成情報)]セクション)にアップロードされるIdP証明書を使用して署名を検証します。署名の検証の失敗は、署名された情報の改ざんを示唆します。
    xp_signature_certificate SignedInfo要素内の署名証明書のXpathセレクタ(オプション)。例:KeyInfo/X509Data/X509Certificate/text()。Tanium Serverは、xp_signature_certificateを使用してSAML応答から証明書を取得し、Tanium Console ([Custom Configuration Information (カスタム構成情報)]セクション)にアップロードされるIdP証明書と比較します。証明書が異なる場合、SAML応答は無効であると見なされます。
    sec_check_assertion_time_constraints アサーションのnot-before ([xp_assertion_cond_before])とnot-on-or-after ([xp_assertion_cond_after])の日時の条件の検証を有効(チェックボックスがオン)または無効(チェックボックスがオフ)にする設定(オプション)。
    sec_assertion_allowed_auth_context_classes IdPがユーザーを認証するために使用したメソッドを表す認証クラスに設定可能な値のコンマ区切りのリスト(オプション)。例:urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
    sec_assertion_allowed_issuer アサーション発行者識別子の検証値(オプション)。例:http://www.saml-provider.com/YWJjZGVmMTIzNA
    sec_assertion_allowed_recipient アサーション受信者URLの検証値(オプション)。例:https://myhost.company.com/saml2/auth/custom
    sec_assertion_allowed_audience アサーション対象者の想定値(オプション)。例:tanium-saml2
    sec_response_allowed_issuer 応答発行者識別子の検証値(オプション)。例:http://www.saml-provider.com/YWJjZGVmMTIzNA
    sec_response_allowed_destination 応答送信先URLの検証値(オプション)。例:https://myhost.company.com/saml2/auth/custom
    sec_response_expiration 応答が有効で再利用可能な場合の秒単位の期間(オプション)。値を指定しない場合のデフォルト期間は300秒(5分)です。
  6. (SPが開始するSSOのみ)[Service Provider Initiated SSO (サービスプロバイダが開始するSSO)]セクションで、[Enable SP-initiated SSO (SPが開始するSSOを有効化)]を選択し、以下の必須フィールドを構成します。
  7. T: 表4: SPが開始するSSOの設定
    設定 ガイドライン
    idp_sso_service_url ユーザーがIdP経由でサービスにアクセスするSSOのURL。例:https://company.saml-provider.com/app/companyinc_tanium/dGFuaXVtc2FtbA/sso/saml
    idp_sso_issuer SAML応答に想定される発行者識別子。例:http://www.saml-provider.com/YWJjZGVmMTIzNA。値は、[sec_assertion_allowed_issuer]値と[sec_response_allowed_issuer]値に一致する必要があります。
    idp_sso_force_reauth 非アクティブ状態または手動のログアウトイベントによって終了した前回のTanium Consoleセッションですでに認証されている場合にも、新しいセッションを開始するユーザーにログイン資格情報の入力を求める場合は、[Enabled (有効)]を選択します。このオプションはデフォルトで無効になっており、ユーザーはログイン資格情報を入力せずに[Login with SSO (SSOでログイン)]をクリックするだけで別のTanium Consoleセッションを開始できます。
  8. 変更を保存します。Tanium Server SAML SPサービスが開始されます。

構成変更時のパスワードの確認をオフにする

SSOの重要なメリットは、ユーザーがアプリケーションにアクセスして使用する際に、パスワードのプロンプトに応答する回数を最小限にできることです。ユーザーが構成を変更するたびに、パスワードのプロンプトを表示するようにTanium Serverを以前に構成している場合は、[Yes/Cancel (はい/キャンセル)]のプロンプトに変更してユーザー体験を簡素化することもできます。

  1. [Configuration (構成)] > [Miscellaneous (その他)] > [Confirmation Prompt (確認用プロンプト)]に移動します。
  2. [Show a Yes/Cancel prompt (はい/キャンセルのプロンプトを表示)]を選択します。
  3. 変更を保存します。

セキュアSAML通信

Tanium Serverからの認証リクエストにデジタル署名し、IdPからの応答(アサーション)を暗号化することによって、SAML通信のセキュリティを向上することもできます。Tanium Serverのインストールには、リクエストと自己署名証明書に署名して応答を暗号化するためのRSAプライベートキーを生成するユーティリティが含まれます。証明書は、暗号化にAES-256-CBC暗号を使用します。

  1. Tanium Server CLIにアクセスし、ディレクトリをTanium Serverのインストールディレクトリ(D:\Program Files\Tanium\Tanium Serverなど)に変更します(cdコマンドommand))。
  2. 以下のコマンドを実行して、証明書とプライベートキーを作成します。<hostname>に対しては、Tanium ServerのFQDNを指定します。高可用性(HA)のデプロイでは、コンマ(ts1.example.com,ts2.example.comなど)でホスト名を区切ります。出力(<out>)には、証明書とキー名(SAMLEncryptionなど)を指定します。ユーティリティは、証明書とキーのファイル名にそれぞれ.crtと.keyの拡張子を自動的に追加します。

    KeyUtility selfsign <hostname> <out>

    ユーティリティは、Tanium Serverのインストールディレクトリの最上位に証明書とキー(SAMLEncryption.certSAMLEncryption.keyなど)を作成します。証明書とキーをこの場所に保管する限り、Tanium Serverは自動的にSAML認証リクエストへの署名に証明書を使用し、IdP応答の復号化にプライベートキーを使用します。

    または、Tanium ServerにSAMLEncryptionCertPathとSAMLEncryptionKeyPathの設定を追加して、証明書とキーを保存するための別の場所を構成することもできます。詳細は、テクニカルアカウントマネージャ(TAM)にお問い合わせください。

  3. 証明書をIdPに提供します。IdP管理者と協力して、安全なキーの転送のためにRSA-OAEP-MGF1P (推奨)またはRSAバージョン1.5を使用して、SAML応答の暗号化のために証明書を使用するようにIdPを構成します。

CLI経由でSPが開始するSSOを無効にする

Tanium ConsoleにアクセスせずにSPが開始するSSOを無効にする必要がある場合は、CLI経由でグローバルに[console_saml_sp_enabled]を設定できます。

  1. Tanium Server CLIにアクセスします(詳細については、Tanium Core Platformデプロイガイド(Windows):Tanium Server CLIを参照)。
  2. Tanium Serverのインストールディレクトリに移動します。
  3. 次のコマンドを実行します。

    TaniumReceiver global-settings set console_saml_sp_enabled 0

    変更が適用されるまで1分間待機するか、Tanium Serverを再起動して変更を即座に適用します。

Tanium ServerのSAML SPサービスをオフにする

Tanium ServerのSAML SPとしての機能を停止する必要がある場合は、IdPの設定を削除することによってSPサービスを停止できます。

  1. [Configuration (構成)] > [Authentication (認証)] > [SAML]に進みます。
  2. [Choose an IdP (IdPを選択)][No Provider (プロバイダなし)]に設定してから変更を保存します。

最終更新:2020/01/1219:03| フィードバック

Powered by Translations.com GlobalLink OneLink Software