Configuration de OpenID Connect pour une recherche avec une grappe OpenSearch

Configurez une grappe OpenSearch pour utiliser un fournisseur d'identités OpenID Connect, tel qu'Oracle Identity Cloud Service, à des fins d'authentification et d'autorisation.

Préalables

Activer OpenID avec les API REST du plugiciel de sécurité OpenSearch

Utilisez l'API de configuration du plugiciel de sécurité OpenSearch pour activer OpenID Connect pour une grappe OpenSearch.

L'exemple suivant montre comment activer OpenID Connect pour une grappe, avec un exemple d'URL OpenID Connect pour Oracle Identity Cloud Service. Le code inclut également la définition du mode de sécurité pour l'application dans l'appel de l'API de configuration.

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

Pour plus d'options de configuration OpenID Connect disponibles pour une grappe OpenSearch, voir OpenSearch - OpenID Connect.

Utilisation d'OpenID Connect

Après avoir activé OpenID Connect pour une grappe OpenSearch, vous devez obtenir le jeton d'accès auprès du fournisseur OpenID Connect que vous utilisez. La procédure d'obtention du jeton d'accès dépend du fournisseur d'identités que vous utilisez. Pour savoir comment procéder pour Oracle Identity Cloud Service, voir Utilisation de l'autorisation par jeton d'accès avec l'API Mes services.

Vous envoyez ensuite le jeton d'accès en tant que jeton porteur dans l'en-tête d'autorisation lors de la connexion à la grappe OpenSearch, comme illustré dans l'exemple suivant de demande GET à l'API d'état de la grappe :

GET /_cluster/health
Authorization: Bearer <access_token>