Edge para nuvem privada v. 4.17.09
Ao usar o SAML com a API Edge, o processo usado para receber tokens de acesso e de atualização do OAuth2 da declaração SAML é chamado de fluxo de senha. Com o fluxo de senha, você usa um navegador para receber uma senha única que será usada para receber tokens OAuth2.
No entanto, seu ambiente de desenvolvimento pode oferecer suporte à automação de tarefas comuns de desenvolvimento, como automação de testes ou integração/implantação contínuas (CI/CD). Para automatizar essas tarefas quando o SAML estiver ativado, você precisa de uma maneira de receber e atualizar tokens OAuth2 sem precisar copiar e colar uma senha de um navegador.
O Edge oferece suporte à geração automática de tokens pelo uso de usuários de máquina. Um usuário de máquina pode receber tokens OAuth2 sem precisar especificar uma senha. Isso significa que você pode automatizar completamente o processo de recebimento e atualização de tokens OAuth2 usando a API de gerenciamento do Edge.
Criar um usuário de máquina
Use o utilitário apigee-ssoadminapi.sh para criar um usuário de máquina para uma organização SAML. Consulte Como usar apigee-ssoadminapi.sh para mais informações. Você pode criar um único usuário de máquina usado por todas as organizações ou criar um usuário de máquina separado para cada organização.
O usuário da máquina é criado e armazenado no repositório de dados do Edge, não no provedor de identidade SAML. Portanto, você não é responsável por manter o usuário da máquina usando a API Edge UI e Edge Management.
Ao criar o usuário da máquina, você precisa especificar um endereço de e-mail e uma senha. Depois de criar o usuário da máquina, atribua-o a uma ou mais organizações.
Para criar um usuário de máquina:
- Use o comando apigee-ssoadminapi.sh abaixo para criar o usuário da máquina:
> apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME --secret SSO_ADMIN_SECRET --host edge_sso_IP_or_DNS -u machine_user_email -p machine_user_password
onde:- SSO_ADMIN_NAME é o nome de usuário do administrador definido pela propriedade SSO_ADMIN_NAME no arquivo de configuração usado para configurar o módulo de SSO do Edge. O padrão é ssoadmin.
- SSO_ADMIN_SECRET é a senha de administrador especificada pela propriedade
SSO_ADMIN_SECRET
no arquivo de configuração.
Neste exemplo, é possível omitir os valores de --port e --ssl porque o módulo apigee-sso usa os valores padrão 9099 para --port e http para --ssl. Se a instalação não usar esses padrões, especifique-os conforme apropriado.
- Faça login na interface do Edge, adicione o e-mail do usuário da máquina às suas organizações e atribua ao usuário da máquina o papel necessário. Consulte Adicionar usuários globais para mais informações.
Conseguir e atualizar o token do usuário da máquina
Use a API Edge para receber e atualizar tokens OAuth2 transmitindo as credenciais do usuário da máquina, em vez de uma senha.
Para conseguir tokens OAuth2 para o usuário da máquina:
- Use a seguinte chamada de API para gerar os tokens de acesso e atualização iniciais:
> curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" /
-H "accept: application/json;charset=utf-8" /
-H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST /
http://edge_sso_IP_DNS:9099/oauth/token -s /
-d 'grant_type=password&username=m_user_email&password=m_user_password '
Para a autorização, transmita uma credencial de cliente OAuth2 reservada no cabeçalho Authorization. A chamada imprime os token de acesso e de atualização na tela. Salve os tokens para uso posterior. - Transmita o token de acesso a uma chamada da API de gerenciamento do Edge como o cabeçalho Bearer:
> curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName
em que orgName é o nome da organização que contém o usuário da máquina. - Para atualizar o token de acesso mais tarde, use a seguinte chamada que inclui o token de atualização:
> curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" /
-H "Accept: application/json;charset=utf-8" /
-H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST /
http://edge_sso_IP_DNS:9099/oauth/token /
-d 'grant_type=refresh_token&refresh_token=refreshToken'
Para a autorização, transmita uma credencial de cliente OAuth2 reservada no cabeçalho Authorization.
Criar um usuário de máquina usando a API Edge Management
É possível criar um usuário de máquina usando a API de gerenciamento do Edge em vez do utilitário apigee-ssoadminapi.sh. Para criar um usuário de máquina:
- Use o comando cURL a seguir para receber um token para o usuário ssoadmin, o nome de usuário da conta de administrador do apigee-sso:
> curl "http://edge_sso_IP_DNS:9099/oauth/token" -i -X POST /
-H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' /
-d "response_type=token" -d "grant_type=client_credentials" /
--data-urlencode "client_secret=SSO_ADMIN_SECRET" /
--data-urlencode "client_id=ssoadmin"
em que SSO_ADMIN_SECRET é a senha de administrador que você definiu ao instalar o apigee-sso, conforme especificado pela propriedade SSO_ADMIN_SECRET no arquivo de configuração.
Esse comando mostra um token necessário para fazer a próxima chamada. - Use o comando cURL a seguir para criar o usuário da máquina, transmitindo o token que você
recebeu na etapa anterior:
> curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST /
-H "Accept: application/json" -H "Content-Type: application/json" /
-d '{"userName" : "machine_user_email", "name" : {"formatted":"DevOps", "familyName" : "last_name", "givenName" : "first_name"}, "emails" : [ {"value" : "machine_user_email", "primary" : true } ], "active" : true, "verified" : true, "password" : "machine_user_password" }' /
-H "Authorization: Bearer token"
Você vai precisar da senha do usuário da máquina em etapas posteriores. - Faça login na interface do Edge, adicione o e-mail do usuário da máquina às suas organizações e atribua ao usuário da máquina o papel necessário. Consulte Adicionar usuários globais para mais informações.