Para instalar e configurar o módulo SSO da Apigee com um IDP externo, faça o seguinte:
- Crie as chaves e os certificados TLS: o módulo SSO da Apigee usa TLS para proteger a transmissão de informações com entidades externas.
- Definir a configuração de SSO de base da Apigee:o arquivo base precisa incluir as propriedades comuns a todas as configurações de SSO.
- Adicionar propriedades de configuração específicas do IdP:use um dos seguintes blocos de propriedades de configuração específicos do IdP no arquivo de configuração:
- Instalar o SSO da Apigee:instale o módulo de SSO da Apigee e transmita o arquivo de configuração para o instalador.
Cada uma dessas etapas é descrita nas seções a seguir.
Criar as chaves e os certificados TLS
Nesta seção, descrevemos como criar certificados autoassinados, o que pode ser bom para seu ambiente de teste, mas é preciso usar certificados assinados por uma autoridade de certificação (CA) para um ambiente de produção.
Para criar a chave de verificação e assinatura e o certificado autoassinado:
- Como usuário sudo, crie este novo diretório:
sudo mkdir -p /opt/apigee/customer/application/apigee-sso/jwt-keys
- Mude para o novo diretório:
cd /opt/apigee/customer/application/apigee-sso/jwt-keys/
- Gere a chave privada com o seguinte comando:
sudo openssl genrsa -out privkey.pem 2048
- Gere a chave pública na chave privada com o seguinte comando:
sudo openssl rsa -pubout -in privkey.pem -out pubkey.pem
- Altere o proprietário do arquivo PEM de saída para o usuário "apigee":
sudo chown apigee:apigee *.pem
Para criar a chave e o certificado autoassinado, sem senha longa, para se comunicar com o IdP:
- Como um usuário sudo, crie um novo diretório:
sudo mkdir -p /opt/apigee/customer/application/apigee-sso/idp/
- Mude para o novo diretório:
cd /opt/apigee/customer/application/apigee-sso/idp/
- Gere sua chave privada com uma senha longa:
sudo openssl genrsa -aes256 -out server.key 1024
- Remova a senha longa da chave:
sudo openssl rsa -in server.key -out server.key
- Gerar solicitação de assinatura de certificado para CA:
sudo openssl req -x509 -sha256 -new -key server.key -out server.csr
- Gere o certificado autoassinado com prazo de validade de 365 dias:
sudo openssl x509 -sha256 -days 365 -in server.csr -signkey server.key -out selfsigned.crt
- Mude o proprietário da chave e do arquivo crt para o proprietário "apigee":
sudo chown apigee:apigee server.key
sudo chown apigee:apigee selfsigned.crt
Para ativar o TLS no módulo SSO da Apigee,
defina SSO_TOMCAT_PROFILE
como SSL_TERMINATION
ou
como SSL_PROXY
. Não é possível usar um certificado autoassinado. É preciso gerar um certificado de uma CA. Para mais informações, consulte Configurar o SSO da Apigee para
acesso HTTPS.
Configurações de SSO da Apigee
Antes de instalar o módulo SSO da Apigee, você precisa definir um arquivo de configuração. Esse arquivo de configuração é transmitido para o instalador quando você instala o módulo SSO da Apigee.
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. # Management Server IP address and port 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. # Postgres IP address and port PG_HOST=$IP1 PG_PORT=5432 # Postgres username and password as set when you installed Edge. PG_USER=apigee PG_PWD=postgres ## Apigee SSO module configuration. #Choose either "saml" or "ldap". SSO_PROFILE="[saml|ldap]" # Externally accessible IP or DNS name of apigee-sso. SSO_PUBLIC_URL_HOSTNAME=$IP2 SSO_PG_DB_NAME=database_name_for_sso # 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 # Enable the ability to sign an authentication request with SAML SSO. SSO_SAML_SIGN_REQUEST=y # 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 ########################################################### # Define External IDP # # Use one of the following configuration blocks to # # define your IDP settings: # # - SAML configuration properties # # - LDAP Direct Binding configuration properties # # - LDAP Indirect Binding configuration properties # ########################################################### INSERT_IDP_CONFIG_BLOCK_HERE (SAML, LDAP direct, or LDAP indirect, below) # Configure an SMTP server so that the Apigee SSO module 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 # The address from which emails are sent SMTPMAILFROM="My Company <myco@company.com>"
Propriedades de configuração do SSO via SAML
Se você usa o SAML para seu IdP, use o seguinte bloco de propriedades de configuração no arquivo de configuração definido acima:
## SAML Configuration Properties # Insert this section into your base configuration file, as described previously. # 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 # Determines whether to skip TLS validation for the URL specified # by SSO_SAML_IDP_METADATA_URL. # This is necessary if the URL uses a self-signed certificate. # The 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 # Requires that SAML responses be signed by your IDP. # This property is enabled by default since release 4.19.06.12. SSO_SAML_SIGNED_ASSERTIONS=y
Propriedades de configuração da vinculação direta LDAP
Se você estiver usando a vinculação direta LDAP para seu IdP, use o seguinte bloco de propriedades de configuração no arquivo de configuração, conforme mostrado no exemplo acima:
## LDAP Direct Binding configuration # Insert this section into your base configuration file, as described previously. # The type of LDAP profile; in this case, "direct" SSO_LDAP_PROFILE=direct # The base URL to which SSO connects; in the form: "ldap://hostname_or_IP:port SSO_LDAP_BASE_URL=LDAP_base_URL # Attribute name used by the LDAP server to refer to the user's email address; for example, "mail" SSO_LDAP_MAIL_ATTRIBUTE=LDAP_email_attribute # Pattern of the user's DN; for example: =cn={0},ou=people,dc=example,dc=org # If there is more than one pattern, separate with semicolons (";"); for example: # =cn={0},ou=people,dc=example,dc=org;=cn={0},ou=people,dc=example,dc=com SSO_LDAP_USER_DN_PATTERN=LDAP_DN_pattern
Propriedades de configuração da vinculação indireta LDAP
Se você estiver usando a vinculação indireta LDAP no seu IdP, use o seguinte bloco de propriedades de configuração no arquivo de configuração, como mostrado no exemplo acima:
## LDAP Indirect Binding configuration # Insert this section into your base configuration file, as described previously. # Type of LDAP profile; in this case, "indirect" SSO_LDAP_PROFILE=indirect # Base URL to which SSO connects; in the form: "ldap://hostname_or_IP:port SSO_LDAP_BASE_URL=LDAP_base_URL # DN and password of the LDAP server's admin user SSO_LDAP_ADMIN_USER_DN=LDAP_admin_DN SSO_LDAP_ADMIN_PWD=LDAP_admin_password # LDAP search base; for example, "dc=example,dc=org" SSO_LDAP_SEARCH_BASE=LDAP_search_base # LDAP search filter; for example, "cn={0}" SSO_LDAP_SEARCH_FILTER=LDAP_search_filter# Nome do atributo usado pelo servidor LDAP para se referir ao endereço de e-mail do usuário, por exemplo, "mail" SSO_LDAP_MAIL_ATTRIBUTE=LDAP_email_attribute
Instalar o módulo SSO da Apigee
Depois de criar as chaves e configurar o arquivo de configuração, instale o módulo SSO da Apigee.
Para instalar o módulo SSO da Apigee:
- Faça login no nó do servidor de gerenciamento. Esse nó já deve ter
apigee-service
instalado, conforme descrito em Instalar o utilitário de configuração da Apigee do Edge.Se preferir, é possível instalar o módulo SSO da Apigee em um nó diferente. No entanto, esse nó precisa acessar o servidor de gerenciamento pela porta 8080.
- Instale e configure o
apigee-sso
executando o seguinte comando:/opt/apigee/apigee-setup/bin/setup.sh -p sso -f configFile
Em que configFile é o arquivo de configuração que você definiu acima.
- Instale o utilitário
apigee-ssoadminapi.sh
usado para gerenciar usuários administradores e de máquina no móduloapigee-sso
:/opt/apigee/apigee-service/bin/apigee-service apigee-ssoadminapi install
- 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 da Apigee.
Se quiser usar um arquivo de metadados em vez de um URL para configurar o SSO da Apigee:
- Copie o conteúdo do XML de metadados do seu IdP para um arquivo no nó SSO da Apigee. Por
exemplo, copie o XML para:
/opt/apigee/customer/application/apigee-sso/saml/metadata.xml
- Mude a propriedade do arquivo XML para o usuário "apigee":
chown apigee:apigee /opt/apigee/customer/application/apigee-sso/saml/metadata.xml
- 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
O caminho do arquivo precisa ser prefixado com "
file://
", seguido pelo caminho absoluto da raiz (/).