Configurazione di OpenID Connect per un cluster OpenSearch

Configurare un cluster OpenSearch per utilizzare un provider di identità OpenID Connect, ad esempio Oracle Identity Cloud Service, per l'autenticazione e l'autorizzazione.

Requisiti indispensabili

  • Un cluster OpenSearch basato su OpenSearch versione 2.3.0 o successiva. Per i cluster basati su versioni precedenti di OpenSearch, è necessario eseguire l'upgrade del cluster, vedere OpenSearch Cluster Software Upgrades.
  • La modalità di sicurezza del cluster OpenSearch è impostata su ENFORCING. Vedere Aggiornamento della modalità di sicurezza del cluster all'applicazione.
  • Si dispone di un provider di identità OpenID Connect, ad esempio Oracle Identity Cloud Service, impostato e configurato per l'uso.
  • Si dispone dell'URL OpenID Connect per il provider di identità, ovvero l'URL per accedere alle impostazioni di configurazione e metadati OpenID Connect del provider.

Abilita OpenID con le API REST del plugin di sicurezza OpenSearch

Utilizzare l'API di configurazione del plugin Sicurezza OpenSearch per abilitare OpenID Connect per un cluster OpenSearch.

L'esempio riportato di seguito mostra come abilitare OpenID Connect per un cluster, con un esempio di URL OpenID Connect per Oracle Identity Cloud Service. Il codice include anche l'impostazione della modalità di sicurezza da applicare nella chiamata API di configurazione.

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
  }
}

Per ulteriori opzioni di configurazione OpenID Connect disponibili per un cluster OpenSearch, vedere OpenSearch - OpenID Connect.

Uso di OpenID Connect

Dopo aver abilitato OpenID Connect per un cluster OpenSearch, è necessario ottenere il token di accesso dal provider OpenID Connect in uso. La procedura per ottenere il token di accesso dipende dal provider di identità in uso. Per informazioni su come eseguire questa operazione per Oracle Identity Cloud Service, vedere Uso dell'autorizzazione token di accesso con l'API My Services.

Inviare quindi il token di accesso come token bearer nell'intestazione di autorizzazione quando si esegue la connessione al cluster OpenSearch, come mostrato nell'esempio riportato di seguito di una richiesta GET all'API di integrità del cluster:

GET /_cluster/health
Authorization: Bearer <access_token>