OpenID Connect für ein OpenSearch-Cluster konfigurieren

Konfigurieren Sie ein OpenSearch-Cluster für die Verwendung eines OpenID Connect-Identitätsproviders, wie Oracle Identity Cloud Service, zur Authentifizierung und Autorisierung.

Voraussetzungen

  • Ein OpenSearch-Cluster basierend auf OpenSearch Version 2.3.0 oder höher. Für Cluster, die auf älteren Versionen von OpenSearch basieren, müssen Sie das Cluster upgraden, siehe OpenSearch Cluster-Softwareupgrades.
  • Der Sicherheitsmodus des Clusters OpenSearch ist auf ENFORCING gesetzt. Informationen hierzu finden Sie unter Clustersicherheitsmodus in "Durchsetzen" aktualisieren.
  • Sie haben einen OpenID Connect-Identitätsprovider, wie Oracle Identity Cloud Service, für die Verwendung eingerichtet und konfiguriert.
  • Sie haben die OpenID Connect-URL für Ihren Identitätsprovider. Dabei handelt es sich um die URL für den Zugriff auf die OpenID Connect-Metadaten und Konfigurationseinstellungen des Providers.

Aktivieren Sie OpenID mit den REST-APIs des Sicherheits-Plug-ins OpenSearch

Verwenden Sie die Konfigurations-API des Sicherheits-Plug-ins OpenSearch, um OpenID Connect für ein OpenSearch-Cluster zu aktivieren.

Das folgende Beispiel zeigt, wie Sie OpenID Connect für ein Cluster mit einem OpenID Connect-URL-Beispiel für Oracle Identity Cloud Service aktivieren. Der Code umfasst auch das Festlegen des Sicherheitsmodus für die Durchsetzung im Konfigurations-API-Aufruf.

PUT _plugins/_security/api/securityconfig/config
{
  "dynamic": {
    "security_mode": "ENFORCING",
    "http": {
      "anonymous_auth_enabled": false,
      "xff": {
        "enabled": false
      }
    },
    "authc": {
      "openid_auth_domain": {
                    "http_enabled": true,
                    "transport_enabled": true,
                    "order": 0,
                    "http_authenticator": {
                        "challenge": false,
                        "type": "openid",
                        "config": {
                            "subject_key": "sub",
                            "roles_key": "sub",
                            "openid_connect_url": "https://idcs-<IDCS_Instance_ID>.identity.oraclecloud.com/.well-known/openid-configuration"
                        }
                    },
                    "authentication_backend": {
                        "type": "noop",
                        "config": {}
                    },
                    "description": "Authenticate using OpenId connect"
                },
                "basic_internal_auth_domain": {
                    "http_enabled": true,
                    "transport_enabled": true,
                    "order": 1,
                    "http_authenticator": {
                        "challenge": true,
                        "type": "basic",
                        "config": {}
                    },
                    "authentication_backend": {
                        "type": "intern",
                        "config": {}
                    },
                    "description": "Authenticate via HTTP Basic against internal users database"
                }
    },
    "authz": null
  }
}

Zusätzliche OpenID Connect-Konfigurationsoptionen, die für ein OpenSearch-Cluster verfügbar sind, finden Sie unter OpenSearch - OpenID Connect.

OpenID Connect verwenden

Nachdem Sie OpenID Connect für ein OpenSearch-Cluster aktiviert haben, müssen Sie das Zugriffstoken vom verwendeten OpenID Connect-Provider abrufen. Die Vorgehensweise zum Abrufen des Zugriffstokens hängt vom verwendeten Identitätsprovider ab. Informationen dazu, wie Sie dies für Oracle Identity Cloud Service ausführen, finden Sie unter Zugriffstokenautorisierung mit meiner Services-API verwenden.

Anschließend senden Sie das Zugriffstoken als Bearer-Token im Autorisierungsheader, wenn Sie eine Verbindung zum Cluster OpenSearch herstellen, wie im folgenden Beispiel einer GET-Anforderung an die Cluster-Zustands-API gezeigt:

GET /_cluster/health
Authorization: Bearer <access_token>