Configuration d'OpenID Connect pour un cluster OpenSearch

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

Prérequis

  • Un cluster OpenSearch basé sur OpenSearch version 2.3.0 ou ultérieure. Pour les clusters basés sur des versions antérieures de OpenSearch, vous devez mettre à niveau le cluster, reportez-vous à OpenSearch Mises à niveau logicielles de cluster.
  • Le mode de sécurité du cluster OpenSearch est défini sur ENFORCING. Reportez-vous à la section Updating Cluster Security Mode to Enforcement.
  • Un fournisseur d'identités OpenID Connect, tel qu'Oracle Identity Cloud Service, est configuré pour être utilisé.
  • Vous disposez de l'URL OpenID Connect pour votre fournisseur d'identités, qui est l'URL permettant d'accéder aux métadonnées et aux paramètres de configuration OpenID Connect du fournisseur.

Activer OpenID avec les API REST de module d'extension de sécurité OpenSearch

Utilisez l'API de configuration du module d'extension de sécurité OpenSearch pour activer OpenID Connect pour un cluster OpenSearch.

L'exemple suivant montre comment activer OpenID Connect pour un cluster, avec un exemple d'URL OpenID Connect pour Oracle Identity Cloud Service. Le code inclut également la définition du mode de sécurité à appliquer dans l'appel d'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 obtenir des options de configuration OpenID Connect supplémentaires disponibles pour un cluster OpenSearch, reportez-vous à OpenSearch - OpenID Connect.

Utilisation d'OpenID Connect

Une fois que vous avez activé OpenID Connect pour un cluster OpenSearch, vous devez obtenir le jeton d'accè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, reportez-vous à 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 de porteur dans l'en-tête d'autorisation lors de la connexion au cluster OpenSearch, comme indiqué dans l'exemple suivant d'une demande GET à l'API d'intégrité du cluster :

GET /_cluster/health
Authorization: Bearer <access_token>