Edge para nuvem privada v4.18.01
Ao usar o SAML com a API Edge, o processo usado para receber tokens de acesso e tokens 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 de uso único que será usada para receber tokens do 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 contínua/implantação contínua (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/colar uma senha de um navegador.
O Edge oferece suporte à geração automática de tokens usando usuários de máquina. Um usuário de máquina pode receber tokens OAuth2 sem precisar especificar uma senha. Isso significa que é possível automatizar completamente o processo de obtenção e atualização de tokens OAuth2 usando a API Management 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. É possível criar um único usuário de máquina usado por todas as suas 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 IU do Edge e a API de gerenciamento do Edge.
Ao criar o usuário de máquina, especifique um endereço de e-mail e uma senha. Depois de criar o usuário de máquina, atribua-o a uma ou mais organizações.
Para criar um usuário de máquina:
- Use o seguinte comando apigee-ssoadminapi.sh 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
Em que:- 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, conforme especificado 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 de 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 IU do Edge, adicione o e-mail do usuário da máquina às suas organizações e atribua o usuário da máquina ao papel necessário. Consulte Como adicionar usuários globais para mais informações.
Obter e atualizar o token de 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 receber tokens OAuth2 para o usuário da máquina:
- Use a seguinte chamada de API para gerar os tokens de acesso e de 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 '
A chamada mostra os tokens de acesso e de atualização na tela. Salve os tokens para uso posterior. - Transmita o token de acesso para uma chamada de API de gerenciamento do Edge como o cabeçalho do portador:
> 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 posteriormente, 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'
Criar um usuário de máquina usando a API Management do Edge
É possível criar um usuário de máquina usando a API Management do Edge em vez do utilitário apigee-ssoadminapi.sh. Para criar um usuário de máquina:
- Use o seguinte comando cURL para receber um token para o usuário ssoadmin, o nome de usuário da conta de administrador para 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 definida quando você instalou apigee-sso, conforme especificado pela propriedade SSO_ADMIN_SECRET no arquivo de configuração.
Esse comando exibe um token necessário para fazer a próxima chamada. - Use o seguinte comando cURL para criar o usuário da máquina, transmitindo o token do portador 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 nas etapas posteriores. - Faça login na IU do Edge, adicione o e-mail do usuário da máquina às suas organizações e atribua o usuário da máquina ao papel necessário. Consulte Como adicionar usuários globais para mais informações.