Para seguir este flujo de trabajo, asegúrese de contar con lo siguiente:
- Un inquilino de desarrollo de Auth0 configurado con Universal Login y un dominio personalizado.
- Una aplicación de primera parte de Auth0
- Identifier First Authentication habilitado en su inquilino de Auth0.
- Una cuenta de AWS con permisos para crear roles de IAM, buckets de S3 y configurar CloudFront
- Un repositorio de GitHub que contenga sus pantallas de inicio de sesión personalizadas
- Compilar los paquetes de recursos de sus pantallas
- El flujo de trabajo lee el archivo config/deploy_config.yml para determinar qué pantallas están marcadas para su implementación.
- Si encuentra destinos de implementación, el flujo de trabajo compila sus recursos de ACUL con Vite y genera el código en el directorio
/dist. - Cargar sus recursos en AWS S3
- El flujo de trabajo se autentica de forma segura en AWS mediante OpenID Connect (OIDC).
- Carga el contenido del directorio
/disten su bucket de S3.
- Configurar su inquilino de Auth0
- El flujo de trabajo usa Auth0 CLI con una aplicación M2M para configurar las pantallas en su inquilino.
- Asigna cada pantalla a la pantalla correcta de Auth0 mediante el archivo config/screen-to-prompt-mapping.js.
- Actualiza la configuración de personalización de pantallas de Auth0 para que apunte a sus recursos en la CDN de CloudFront.
git push a la rama main de su proyecto inicia el flujo de trabajo de GitHub.
Para consultar un ejemplo completo del flujo de trabajo de implementación de ACUL en producción, lea ACUL GITHUB ACTIONS en GitHub.
1. Configuración de Auth0
- Vaya a Auth0 Dashboard > Applications.
- Seleccione Create Application.
- Seleccione Machine to Machine Applications.
- En Name, introduzca un nombre descriptivo, por ejemplo:
GitHub ACUL Deployment. - Seleccione Create.
- En Authorize Machine to Machine Application, seleccione Auth0 Management API.
- Seleccione estos permisos específicos:
read:brandingupdate:brandingread:promptsupdate:promptsread:custom_domains
- Seleccione Authorize.
- Vaya a la pestaña Settings y tome nota de lo siguiente:
DomainClient IDClient Secret
2. Cargue y publique sus recursos con Amazon Web Services
- Cree un bucket de AWS S3. Bloquee todo el acceso público para que este bucket sea privado. Este bucket privado almacena sus recursos.
- Configure una distribución de CloudFront. Este CDN publica sus recursos de forma segura. Debe configurarse para usar su bucket de S3 como
Originmediante Origin Access Control (OAC).
3. Cree un rol de IAM de AWS para GitHub Action
- Este rol de IAM debe usar Web Identity (OIDC) y confiar en
token.actions.githubusercontent.com. - El rol necesita una política que otorgue los permisos
s3:PutObject,s3:DeleteObjectys3:ListBucketen su bucket de S3.
4. Configure el repositorio de GitHub
- Vaya a GitHub > Settings.
- Seleccione Secrets and Variables y, a continuación, Actions.
- Seleccione New repository secret.
AWS_S3_ARN: El ARN del rol de IAM que creó.S3_BUCKET_NAME: El nombre de su bucket de S3.AWS_REGION: La región en la que se encuentra su bucket de S3. Por ejemplo,us-east-1.S3_CDN_URL: El nombre de dominio de su distribución de CloudFront. No agregue una barra diagonal al final. Por ejemplo, https://d1234abcdef.cloudfront.net.AUTH0_DOMAIN: El dominio de su inquilino de Auth0.AUTH0_CLIENT_ID: El ID de cliente de su aplicación M2M.AUTH0_CLIENT_SECRET: El Secreto del cliente de su aplicación M2M.
5. Configure su implementación
.github/config/:
config/deploy_config.yml: Su panel de control principal. Configure una pantalla contruepara desplegarla o confalsepara omitirla.config/screen-to-prompt-mapping.js: Asocia los nombres internos de directorio de sus pantallas con el nombre oficial del prompt de Auth0. Ejemplo:mfa-sms-challengecon el nombre oficial del prompt de Auth0mfa-sms.config/context-configuration.js: Define los datos de contexto de Auth0. Ejemplo: la configuración de marca debe estar disponible para sus pantallas personalizadas.