OpenSearchによる検索でのSAML認証

OpenSearchでのSAML認証OCI検索の使用について学習します。

OpenSearchを使用したOCI検索では、OpenSearchクラスタおよびOpenSearchダッシュボードへのアクセスおよび制御のためのアイデンティティ・プロバイダの使用がサポートされています。これは、OpenSearchセキュリティ・プラグインのSAMLシングル・サインオン・サポートを介して使用できます。

SAML統合では、OCI OpenSearchが、SAMLサービス・プロバイダとしてアイデンティティ・プロバイダに接続してユーザーを認証し、OpenSearchクラスタおよびOpenSearchダッシュボードにアクセスするために認証トークンをOCI OpenSearchに渡すようにクラスタを構成できます。OpenSearchダッシュボードを構成して、ユーザーがOpenSearchダッシュボードにアクセスするときに認証のためにアイデンティティ・プロバイダのサインイン・ページにリダイレクトされるようにすることもできます。

次の表に、OpenSearchを使用した検索に適用可能なSAML構成設定を示します。

SAML構成 摘要 フィールドまたは属性名
SAMLメタデータ アイデンティティ・プロバイダの機能と構成を説明するメタデータ・ファイル。必須。
  • コンソール: メタデータ・コンテンツ
  • CLI: idp-metadata-content
  • API: idpMetadataContent
アイデンティティID アイデンティティ・プロバイダの名前。必須。
  • コンソール: アイデンティティID
  • CLI: ipd-identity-id
  • API: ipdIdentityId
OpenSearchダッシュボードURL クラスタのOpenSearchダッシュボードのURL。オプション。
  • コンソール: ダッシュボードURL
  • CLI: opendashboard-url
  • API: opendashboardUrl
管理バックエンド・ロール クラスタに対する完全な管理者権限を持つユーザーのアイデンティティ・プロバイダ内のバックエンド・ロール。オプション。
  • コンソール: 管理バックエンド・ロール
  • CLI: admin-backend-role
  • API: adminBackendRole
サブジェクト・キー アイデンティティ・プロバイダがユーザーNameIDのデフォルト要素名を使用する場合は、ここで何も指定する必要はありません。それ以外の場合は、この要素を使用して、ユーザーを含むSAMLレスポンスの要素を指定します。オプション。
  • コンソール: サブジェクト・キー
  • CLI: サブジェクトキー
  • API: subjectKey
ロール・キー バックエンド・ロールを使用している場合は、ユーザー・ロールを含むSAMLレスポンスの要素名を指定します。オプション
  • コンソール: ロール・キー
  • CLI: ロールキー
  • API: rolesKey

制限事項および考慮事項

  • OpenSearchで検索すると、コンソールでの既存のクラスタに対するSAML認証の有効化のみがサポートされます。コンソールで新しいクラスタを作成する場合、SAML認証を有効にできません。CLIまたはAPIを使用して新しいOpenSearchクラスタを作成するときにSAML認証を有効にできます。
  • 新しいクラスタを作成し、CLIまたはAPIを使用してSAML認証を有効にする場合は、セキュリティ・モードを適用するように設定して、クラスタのロールベースのアクセス制御も有効にする必要があります。

前提条件

  • 既存のアイデンティティ・プロバイダ。
  • コンソールの場合のみ、既存のOpenSearchクラスタを作成する必要があります。
  • コンソールの既存のクラスタに対してのみSAMLを有効にできます。

    1. 「クラスタ」リスト・ページで、操作するクラスタを検索します。リスト・ページまたはクラスタの検索に関するヘルプが必要な場合は、OpenSearchクラスタのリストを参照してください。
    2. 「クラスタ」リストで、SAMLを有効にするクラスタの名前をクリックします。
    3. クラスタの詳細ページで、「その他のアクション」をクリックし、「SAML認証の追加」を選択します。
    4. 「メタデータ・コンテンツ」フィールドに、アイデンティティ・プロバイダのSAMLメタデータ・ファイルのコンテンツを貼り付けます。
      SAMLメタデータ・ファイルには、アイデンティティ・プロバイダの機能と構成が記述されます。これには、アイデンティティ・プロバイダの証明書が含まれます。
    5. 「アイデンティティID」でアイデンティティ・プロバイダの名前を指定します。
    6. オプションで、次の構成詳細を指定できます。
      • ダッシュボードURL: クラスタのOpenSearch.Dashboard URL。
      • 管理バックエンド・ロール: OpenSearchクラスタの管理者権限を持つユーザーのアイデンティティ・プロバイダ内のバックエンド・ロール。
      • ロール・キー: ユーザー・ロールを含むSAMLレスポンスの属性を指定します。
      • サブジェクト・キー: ユーザーを含むSAMLレスポンスの属性を指定します。
    7. 「Save changes」を選択します。
  • CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドのフラグおよびオプションの完全なリストは、CLIコマンドライン・リファレンスを参照してください。

    クラスタ作成時のSAMLの有効化

    CLIでclusterオブジェクトのcreateコマンドを使用してクラスタを作成するときに、SAML認証を有効にできます。createコマンドの必須パラメータに加えて、次のパラメータも含める必要があります。

    • ロールベースのアクセス制御パラメータ(security-modesecurity-master-user-nameおよびsecurity-master-user-password-hashを含む)。security-modeパラメータをENFORCINGに設定する必要があります。
    • SAML構成を含むsecuritySamlConfigパラメータ。次に、このパラメータのSAML構成を使用したJSONの例を示します。
      {
          "isEnabled": true,
          "idpEntityId": "<identity_provider_name>",
          "idpMetadataContent": "xml content"
          "opendashboardUrl": "https://localhost:5601",
          "adminBackendRole": "<admin_role_name>",
          "subjectKey": "<NameID>",
          "rolesKey": "<group_name>"
          }

      前述のサンプルには使用可能なすべてのSAML構成フィールドが含まれていますが、isEnabledidpEntityIdおよびidpMetadataContentフィールドのみが必要です。

    createコマンドの例:

    oci opensearch cluster create --compartment-id <compartment_ocid> --securitySamlConfig <SAML_Config_JSON> --security-mode ENFORCING --security-master-user-name <username> --security-master-user-password-hash <password> ...remaining required fields

    クラスタの更新時のSAMLの有効化

    CLIでclusterオブジェクトのupdateコマンドを使用してクラスタを更新するときに、既存のクラスタのSAML認証を有効にできます。securitySamlConfigパラメータをupdateコマンドに含める必要があります。このパラメータに指定する内容の例については、前の項のSAML構成JSONを参照してください。

    updateコマンドの例:

    oci opensearch cluster update --display-name<cluster_name> --opensearch-cluster-id <cluster_ocid --securitySamlConfig <SAML_Config_JSON>

    ロールベースのアクセス制御がクラスタに対して有効になっていない場合は、security-modesecurity-master-user-nameおよびsecurity-master-user-password-hashパラメータも含めて有効にする必要があります。security-modeパラメータをENFORCINGに設定する必要があります。

  • APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

    クラスタ作成時のSAMLの有効化

    SAML認証は、CreateOpensearchCluster操作を使用してクラスタを作成するときに有効にできます。次の例に示すように、新しいsecuritySamlConfig属性を使用して、SAML構成の詳細をCreateOpensearchClusterDetailsに渡します。

    POST https://opensearch.us-ashburn-1.oci.oraclecloud.com/20180828/opensearchClusters/
    {
      ...
      "securitySamlConfig": {
        "isEnabled": true,
        "idpEntityId": "<identity_provider_name>",
        "idpMetadataContent": "xml content"
        "opendashboardUrl": "https://localhost:5601",
        "adminBackendRole": "<admin_role_name>",
        "subjectKey": "<NameID>",
        "rolesKey": "<group_name>"
      },
      ...
    }

    クラスタの更新時のSAMLの有効化

    UpdateOpensearchCluster操作を使用してクラスタを更新するときに、既存のクラスタのSAML認証を有効にできます。次の例に示すように、新しいsecuritySamlConfig属性を使用して、SAML構成の詳細をUpdateOpensearchClusterDetailsに渡します。

    PUT https://opensearch.us-ashburn-1.oci.oraclecloud.com/20180828/opensearchClusters/ocid1.opensearchcluster.oc1.<unique_ID>
    {
      ...
      "securitySamlConfig": {
        "isEnabled": true,
        "idpEntityId": "<identity_provider_name>",
        "idpMetadataContent": "xml content"
        "opendashboardUrl": "https://localhost:5601",
        "adminBackendRole": "<admin_role_name>",
        "subjectKey": "<NameID>",
        "rolesKey": "<group_name>"
      },
      ...
    }