Jenkins seguro com autenticação básica Apache

Se você estiver executando sua instância do Jenkins em um servidor com acesso aberto, provavelmente deseja protegê-la. Usar um servidor da web Apache com autenticação básica é uma maneira eficiente de conseguir isso.

Supondo que o Jenkins seja executado usando um pacote de distribuição Linux padrão na porta 8080, adicione a seguinte configuração ao servidor Apache:

<VirtualHost *:80>
ServerName jenkins.mydomain.com

ProxyPass / http://localhost:8080/

ProxyPassReverse / http://localhost:8080/

ProxyPreserveHost on

<Proxy *>
AuthType basic

AuthName "jenkins"

AuthUserFile "/etc/apache2/.htpasswd"

Require valid-user

</Proxy>
</VirtualHost>

Em seguida, crie um usuário administrador em seu arquivo .htpasswd usando o comando:

htpasswd /etc/apache2/.htpasswd admin

Certifique-se de que a senha digitada corresponda à senha do usuário administrador no Jenkins. Agora, ao acessar http://jenkins.mydomain.com, você será solicitado a fornecer as credenciais de administrador e será automaticamente conectado ao Jenkins com seu usuário administrador . Muito legal!

Você também pode autenticar usando um ID de usuário e um token de API. Muito conveniente se você deseja configurar um gancho de seu repositório para disparar compilações em commits. Digamos que você queira acionar compilações do BitBucket no envio de código.
Crie um bitbucket de usuário na instância do Jenkins e recupere seu token de API e, em seguida, configure a senha de usuário bitbucket na configuração do Apache usando seu token de API:

htpasswd /etc/apache2/.htpasswd bitbucket

Em seu projeto BitBucket, você pode criar um gancho Jenkins usando o endpoint: http: // bitbucket: [API_Token] @ jenkins.domain.com

A única desvantagem é que você precisa criar um usuário Apache para cada usuário Jenkins.