OpenSearchを使用した検索でのSAML認証

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

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

SAML統合では、SAMLサービス・プロバイダがアイデンティティ・プロバイダに接続してユーザーを認証し、認証トークンをOCI OpenSearchに渡してOpenSearchクラスタおよび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: roles-key
  • 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. 「変更の保存」をクリックします。
  • CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、CLIコマンド・リファレンスを参照してください。

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

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

    • security-modesecurity-master-user-namesecurity-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の有効化

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

    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属性を使用して、UpdateOpensearchClusterDetailsにSAML構成の詳細を渡します。

    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>"
      },
      ...
    }