Configurando o OpenID Connect para um Cluster OpenSearch

Configure um cluster OpenSearch para usar um provedor de identidades do OpenID Connect, como o Oracle Identity Cloud Service, para autenticação e autorização.

Pré-requisitos

  • Um cluster OpenSearch baseado no OpenSearch versão 2.3.0 ou mais recente. Para clusters baseados nas versões mais antigas do OpenSearch que você precisa fazer upgrade do cluster, consulte OpenSearch Upgrades de Software do Cluster.
  • O modo de segurança do cluster OpenSearch está definido como ENFORCING. Consulte Updating Cluster Security Mode to ENFORCING.
  • Você tem um provedor de identidades do OpenID Connect, como o Oracle Identity Cloud Service, configurado para uso.
  • Você tem o URL do OpenID Connect do seu provedor de identidades, que é o URL para acessar os metadados e as definições de configuração do OpenID Connect do provedor.

Ative o OpenID com as APIs REST do Plug-in de Segurança OpenSearch

Use a API de Configuração do plug-in de Segurança OpenSearch para ativar o OpenID Connect para um cluster OpenSearch.

O exemplo a seguir mostra como ativar o OpenID Connect para um cluster, com um exemplo de URL do OpenID Connect para o Oracle Identity Cloud Service. O código também inclui a definição do modo de segurança para imposição na chamada da API de Configuração.

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

Para obter opções adicionais de configuração do OpenID Connect disponíveis para um cluster OpenSearch, consulte OpenSearch - OpenID Connect.

Usando o OpenID Connect

Depois de ativar o OpenID Connect para um cluster do OpenSearch, você precisará obter o token de acesso do provedor do OpenID Connect que está usando. O procedimento para obter o token de acesso depende do provedor de identidades que você está usando. Para saber como fazer isso no Oracle Identity Cloud Service, consulte Usando a Autorização do Token de Acesso com a API Meus Serviços.

Em seguida, envie o token de acesso como o token de portador no cabeçalho de autorização ao estabelecer conexão com o cluster OpenSearch, conforme mostrado no exemplo a seguir de uma solicitação GET para a API de integridade do Cluster:

GET /_cluster/health
Authorization: Bearer <access_token>