Instalar e configurar o SSO do Edge

Edge para nuvem privada v. 4.17.09

Para instalar e configurar o módulo de SSO do Edge, primeiro você precisa gerar dois conjuntos de chaves e certificados TLS. O módulo SSO do Edge usa TLS para proteger a transmissão de informações como parte do processo de handshake SAML com o IdP SAML.

Observação: por padrão, o módulo SSO do Edge pode ser acessado por HTTP na porta 9099 do nó em que está instalado. Você pode ativar o TLS no módulo SSO do Edge. Para isso, você precisa criar um terceiro conjunto de chaves e certificados TLS usados pelo Tomcat para oferecer suporte a TLS. Saiba mais em Configurar o apigee-sso para acesso HTTPS (em inglês).

Criar as chaves e os certificados TLS

As etapas abaixo criam certificados autoassinados que podem ser bons para seu ambiente de teste, mas normalmente você precisa de certificados assinados por uma CA para um ambiente de produção.

Para criar a chave de verificação e de assinatura e o certificado autoassinado:

  1. > sudo mkdir -p /opt/apigee/customer/application/apigee-sso/jwt-keys
  2. > cd /opt/apigee/customer/application/apigee-sso/jwt-keys/
  3. > sudo openssl genrsa -out privkey.pem 2048
  4. > sudo openssl rsa -pubout -in privkey.pem -out pubkey.pem
  5. > sudo chown apigee:apigee *.pem

Para criar a chave e o certificado autoassinado, sem senha longa, para se comunicar com o IdP SAML:

  1. > sudo mkdir -p /opt/apigee/customer/application/apigee-sso/saml/
  2. > cd /opt/apigee/customer/application/apigee-sso/saml/
  3. Gere a chave privada com uma senha longa:
    > sudo openssl genrsa -aes256 -out server.key 1024
  4. Remova a senha longa da chave:
    > sudo openssl rsa -in server.key -out server.key
  5. Gere a solicitação de assinatura de certificado para a CA:
    > sudo openssl req -x509 -sha256 -new -key server.key -out server.csr
  6. Gere um certificado autoassinado com 365 dias de validade:
    > sudo openssl x509 -sha256 -days 365 -in server.csr -signkey server.key -out autoassinado.crt
  7. > sudo chown apigee:apigee server.key (em inglês)
  8. > sudo chown apigee:apigee autoassinado.crt

Se você quiser ativar o TLS no módulo SSO do Edge, definindo SSO_TOMCAT_PROFILE como SSL_TERMINATION ou SSL_PROXY, não será possível usar um certificado autoassinado. É preciso gerar um certificado de uma CA. Para saber mais, consulte Configurar o apigee-sso para acesso HTTPS.

Instalar e configurar o SSO do Edge para acesso HTTP

Para instalar o módulo SSO do Edge, apigee-sso, use o mesmo processo usado para instalar o Edge. Como apigee-sso é representado por um arquivo RPM, isso significa que o usuário que executa a instalação precisa ser o usuário raiz ou um usuário com acesso total ao sudo. Consulte Visão geral da instalação do Edge para saber mais.

Transmita um arquivo de configuração para o instalador. O arquivo de configuração tem o seguinte formato:

IP1=hostname_or_ip_of_management_server
IP2=hostname_or_ip_of_UI_and_apigge_sso

## Management Server configuration.
MSIP=$IP1
MGMT_PORT=8080
# Edge sys admin username and password as set when you installed Edge.
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
# Set the protocol for the Edge management API. Default is http. 
# Set to https if you enabled TLS on the management API.
MS_SCHEME=http

## Postgres configuration. 
PG_HOST=$IP1
PG_PORT=5432
# Postgres username and password as set when you installed Edge.
PG_USER=apigee
PG_PWD=postgres

# apigee-sso configuration.
SSO_PROFILE="saml"
# Externally accessible IP or DNS name of apigee-sso.
SSO_PUBLIC_URL_HOSTNAME=$IP2
# Default port is 9099. If changing, set both properties to the same value.
SSO_PUBLIC_URL_PORT=9099
SSO_TOMCAT_PORT=9099
# Set Tomcat TLS mode to DEFAULT to use HTTP access to apigee-sso.
SSO_TOMCAT_PROFILE=DEFAULT
SSO_PUBLIC_URL_SCHEME=http

# SSO admin user name. The default is ssoadmin.
SSO_ADMIN_NAME=ssoadmin
# SSO admin password using uppercase, lowercase, number, and special chars. 
SSO_ADMIN_SECRET=Secret123

# Path to signing key and secret from "Create the TLS keys and certificates" above.
SSO_JWT_SIGNING_KEY_FILEPATH=/opt/apigee/customer/application/apigee-sso/jwt-keys/privkey.pem
SSO_JWT_VERIFICATION_KEY_FILEPATH=/opt/apigee/customer/application/apigee-sso/jwt-keys/pubkey.pem

# Name of SAML IDP. For example, okta or adfs. 
SSO_SAML_IDP_NAME=okta
# Text displayed to user when they attempt to access Edge UI.
SSO_SAML_IDP_LOGIN_TEXT="Please log in to your IDP"

# The metadata URL from your IDP.
# If you have a metadata file, and not a URL, 
# see "Specifying a metadata file instead of a URL" below.
SSO_SAML_IDP_METADATA_URL=https://dev-343434.oktapreview.com/app/exkar20cl/sso/saml/metadata

# Specifies to skip TLS validation for the URL specified
# by SSO_SAML_IDP_METADATA_URL. Necessary if URL uses a self-signed cert. 
# Default value is "n".
SSO_SAML_IDPMETAURL_SKIPSSLVALIDATION=n

# SAML service provider key and cert from "Create the TLS keys and certificates" above.
SSO_SAML_SERVICE_PROVIDER_KEY=/opt/apigee/customer/application/apigee-sso/saml/server.key
SSO_SAML_SERVICE_PROVIDER_CERTIFICATE=/opt/apigee/customer/application/apigee-sso/saml/selfsigned.crt
# The passphrase used when you created the SAML cert and key. 
# The section "Create the TLS keys and certificates" above removes the passphrase, 
# but this property is available if you require a passphrase.
# SSO_SAML_SERVICE_PROVIDER_PASSWORD=samlSP123

# Must configure an SMTP server so Edge SSO can send emails to users.
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com  
# omit for no username
SMTPPASSWORD=smtppwd    
# omit for no password
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"

Para instalar o módulo SSO do Edge:

  1. Faça login no nó do servidor de gerenciamento. Esse nó já deve ter o apigee-service instalado, conforme descrito em Instalar o utilitário de configuração apigee-setup do Edge.
    É possível instalar o SSO do Edge em outro nó. No entanto, esse nó precisa ser capaz de acessar o servidor de gerenciamento pela porta 8080.
  2. Instalar e configurar o apigee-sso:
    > /opt/apigee/apigee-setup/bin/setup.sh -p sso -f configFile

    em que configFile é o arquivo de configuração mostrado acima.
  3. Instale o utilitário apigee-ssoadminapi.sh usado para gerenciar usuários administrativos e de máquinas no módulo apigee-sso:
    /opt/apigee/apigee-service/bin/apigee-service apigee-ssoadminapi install.
  4. Saia do shell e faça login novamente para adicionar o utilitário apigee-ssoadminapi.sh ao seu caminho.

Especificar um arquivo de metadados em vez de um URL

Se o IdP não for compatível com um URL de metadados HTTP/HTTPS, use um arquivo XML de metadados para configurar o SSO do Edge:

  1. Copie o conteúdo do XML de metadados do seu IdP para um arquivo no nó SSO do Edge. Por exemplo, copie o XML para:
    /opt/apigee/customer/application/apigee-sso/saml/metadata.xml
  2. Mudar a propriedade do arquivo para apigee:apigee:
    > chown apigee:apigee /opt/apigee/customer/application/apigee-sso/saml/metadata.xml
  3. Defina o valor de SSO_SAML_IDP_METADATA_URL como o caminho absoluto do arquivo:
    SSO_SAML_IDP_METADATA_URL=file:///opt/apigee/customer/application/apigee-sso/saml/metadata.xml

    Você precisa prefixar o caminho do arquivo com "file://", seguido pelo caminho absoluto da raiz (/).