

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration d'un domaine personnalisé pour votre portail
<a name="configure-custom-domains"></a>

## Comment ça marche
<a name="custom-domains-how-it-works"></a>

Lorsque vous configurez un domaine personnalisé :
+ Vous créez et configurez un proxy inverse avec votre domaine personnalisé pour acheminer le trafic vers le point de terminaison du portail.
+ Les utilisateurs accèdent à votre portail via votre domaine personnalisé au lieu du point de terminaison du portail par défaut.
+ Les certificats SSL garantissent des connexions sécurisées tout au long du processus.

## Conditions préalables
<a name="custom-domains-prerequisites"></a>

Avant de configurer des domaines personnalisés, assurez-vous de disposer des éléments suivants :
+ Nom de domaine que vous gérez par le biais d'un fournisseur de services DNS tel qu'Amazon Route53.
+ Un portail WorkSpaces Secure Browser. Pour plus d'informations sur la création d'un portail, consultez[Création d'un portail Web pour Amazon WorkSpaces Secure Browser](getting-started-step1.md).
+ Assurez-vous de disposer des autorisations nécessaires pour gérer AWS Certificate Manager et CloudFront les configurations DNS.

**Important**  
Les utilisateurs doivent activer les cookies tiers pour le domaine personnalisé dans leur navigateur afin de garantir le bon fonctionnement du portail.  
Assurez-vous de posséder et de gérer correctement le domaine personnalisé et ses enregistrements DNS afin de garantir la sécurité et les fonctionnalités de votre portail.

**Note**  
Pour activer l'extension d'authentification unique pour les domaines personnalisés, les utilisateurs doivent installer l'extension dans leur navigateur avec une version ultérieure à 1.0.2505.6608.  
Les utilisateurs sont invités à installer l'extension lorsqu'ils se connectent à un portail. Pour en savoir plus sur l’expérience utilisateur avec l’extension, consultez [Extension d'authentification unique pour Amazon WorkSpaces Secure Browser](extension.md).

## Prise en main
<a name="custom-domains-getting-started"></a>

Vous pouvez configurer votre domaine personnalisé en tant qu'attribut de paramètres de portail lors de la création d'un nouveau portail ou lors de la modification d'un portail existant. Cela peut être effectué à l'aide des commandes de la AWS console, du SDK CloudFormation ou de la AWS CLI.

Nous vous recommandons de configurer une CloudFront distribution Amazon en tant que proxy inverse qui achemine le trafic de votre domaine personnalisé vers le point de terminaison du portail WorkSpaces Secure Browser.

**Note**  
Bien qu'Amazon CloudFront soit recommandé comme solution de proxy inverse, vous pouvez utiliser d'autres configurations de proxy inverse. Assurez-vous de respecter les paramètres d'origine et de configuration du cache requis, comme indiqué dans les étapes de CloudFront configuration d'Amazon.

## Configuration en CloudFront tant que proxy inverse
<a name="custom-domains-getting-started"></a>

Pour terminer la configuration d'un proxy inverse, vous devez :
+ Un certificat SSL via AWS Certificate Manager (ACM)
+ Une CloudFront distribution Amazon
+ Enregistrements DNS
+ Portail configuré avec votre domaine personnalisé

**SSL Certificate (Certificat SSL)**

Si vous n'en avez pas déjà un, procédez comme suit pour en faire la demande par le biais d'ACM :

1. Accédez à la console ACM à [https://console.aws.amazon.com/acm](https://console.aws.amazon.com/acm) l'adresse.
**Important**  
Utilisez la région de l'est des États-Unis (Virginie du Nord), CloudFront car les certificats doivent y être stockés.

1. Demandez un certificat :
   + Pour les nouveaux utilisateurs d'ACM : choisissez **Get started** sous **Provisionner des certificats**
   + Pour les utilisateurs ACM existants : choisissez **Demander un certificat**

1. Choisissez **Demander un certificat public**, puis choisissez **Demander un certificat**.
**Note**  
Vous pouvez également importer un certificat existant. Pour plus d'informations, consultez la section [Importation de certificats dans ACM](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) dans le guide de l'*utilisateur d'ACM*.

1. Entrez votre nom de domaine principal (par exemple,**myportal.example.com**).

1. Choisissez une méthode de validation :
   + **Validation DNS** (recommandée pour les utilisateurs de Route 53) : permet la création automatique d'ensembles d'enregistrements dans votre zone hébergée. Pour plus d'informations, consultez la section [Validation DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) dans le *guide de l'utilisateur d'ACM*.
   + **Validation des e-mails** — Pour plus d'informations, consultez la section [Validation des e-mails](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html) dans le *guide de l'utilisateur d'ACM*.

1. Vérifiez vos paramètres, puis sélectionnez **Confirmer et demander**.

**CloudFront distribution**

Créez une CloudFront distribution pour les demandes de proxy depuis votre domaine personnalisé vers le point de terminaison du portail.

1. Accédez à la CloudFront console à l'adresse[https://console.aws.amazon.com/cloudfront](https://console.aws.amazon.com/cloudfront).

1. Choisissez **Create Distribution**.
   + **Nom de la distribution** : entrez le nom de la distribution
   + **Type de distribution** : site Web ou application unique
**Note**  
Si votre domaine personnalisé est géré dans Route 53 dans le même compte AWS, nous CloudFront pouvons gérer automatiquement votre DNS pour vous. Entrez votre domaine personnalisé et cliquez sur « Vérifier le domaine ». Si vous avez un domaine d'un autre fournisseur DNS, ignorez cette étape et configurez votre domaine ultérieurement. 

1. Configurez les paramètres d'origine :
   + **Type d'origine** : Autre
   + **Origine personnalisée** : entrez le point de terminaison du portail *<portalId>* .workspaces-web.com
   + **Chemin d'origine** : laisser le champ vide (par défaut)

1. Personnalisez les paramètres d'origine :
   + Ajout d'en-tête personnalisé
**Important**  
L'accès au portail via un domaine personnalisé ne fonctionnera que si cet en-tête est présent dans les demandes par proxy. Assurez-vous que le nom et la valeur de l'en-tête sont spécifiés exactement comme indiqué.
     + **Nom de l'en-tête** : workspacessecurebrowser-custom-domain
     + **Valeur** : votre domaine personnalisé (par exemple,**myportal.example.com**)
   + **Protocole** : HTTPS uniquement
   + **Port HTTPS** : 443 (conserver la valeur par défaut)
   + **Protocole SSL d'origine minimal** : TLSv1 .2 (par défaut)
   + **Type d'adresse IP d'origine** : IPv4 uniquement (Amazon WorkSpaces Secure Browser n'est pas compatible IPv6 au moment de la rédaction de ce guide d'administration.)

1. Personnalisez les paramètres du cache :
   + **Politique de protocole de visualisation** : rediriger le HTTP vers HTTPS
   + **Méthodes HTTP autorisées** : GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
   + **Politique de cache** : CachingDisabled
   + **Politique de demande d'origine** : AllViewerExceptHostHeader
**Important**  
L'accès au portail via un domaine personnalisé ne fonctionnera que si la politique de demande d'origine est définie sur AllViewerExceptHostHeader. Comme son nom l'indique, cette politique filtre uniquement l'en-tête de l'hôte des en-têtes de demande et transmet tous les en-têtes restants à l'origine.

1. Vous pouvez configurer le WAF si vous le souhaitez, mais cela n'est pas nécessaire aux fins de cette configuration.

1. Dans Obtenir un certificat TLS, sélectionnez le certificat TLS créé à l'étape 1.

1. Vérifiez les paramètres et choisissez **Créer une distribution**.

**Enregistrements DNS**

Cloudfront peut mettre à jour vos enregistrements DNS dans Route 53 pour acheminer le trafic des domaines spécifiés vers la distribution créée à l'étape 2, si votre zone hébergée se trouve dans le même compte AWS.

1. Accédez aux CloudFront paramètres

1. Cliquez sur « Router les domaines vers CloudFront » 

1. Cliquez sur « Configurer le routage automatiquement » 

Si vous avez configuré le DNS pour le domaine personnalisé chez un autre fournisseur de services ou un autre compte AWS, configurez votre fournisseur DNS pour acheminer le trafic de votre domaine vers la distribution. Les étapes suivantes décrivent comment procéder à l'aide de la Route 53.

1. Ouvrez la console Amazon Route 53 à l'adresse[https://console.aws.amazon.com/route53](https://console.aws.amazon.com/route53).

1. Gestion des accès DNS :
   + Si vous utilisez Route 53 pour la première fois avec ce AWS compte, la page de présentation d'Amazon Route 53 s'ouvre. Sous Gestion du DNS, choisissez **Commencer maintenant**.
   + Si vous avez déjà utilisé Route 53 avec ce AWS compte, passez à l'étape suivante.

1. Dans le panneau de navigation, choisissez **Zones hébergées**.

1. Créez une zone hébergée si vous n'en avez pas déjà une :
   + Pour acheminer le trafic Internet vers vos ressources, consultez la section [Création d'une zone hébergée publique](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html) dans le *guide du développeur Amazon Route 53*.
   + Pour acheminer le trafic dans votre VPC, consultez la section [Création d'une zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) dans le guide du *développeur Amazon Route 53*.

1. Sur la page **Zones hébergées**, choisissez le nom de la zone hébergée que vous souhaitez administrer.

1. Choisissez **Create Record Set (Créer un ensemble d’enregistrements)**.

1. Créez une entrée pour votre domaine (par exemple,**myportal.example.com**) :
   + **Type** : A — IPv4 adresse
   + **Alias** : Oui
   + **Alias cible** : URL CloudFront de distribution

   Conservez les valeurs par défaut pour tous les autres paramètres.

**Note**  
Si vous n'utilisez pas Route 53 pour gérer le DNS de votre domaine, utilisez votre fournisseur de services DNS et ajoutez les entrées DNS qui pointent vers votre domaine à l'URL de votre CloudFront distribution.

**Vous pouvez également utiliser le CloudFormation modèle suivant pour créer votre CloudFront distribution :**

Ce CloudFormation modèle crée automatiquement la CloudFront distribution, configure les paramètres du proxy inverse et crée éventuellement des enregistrements DNS Route53 :

**Example workspaces-web-custom-domain-modèle.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Description: 'CloudFront Distribution for custom domain configuration with existing AWS WorkSpaces Secure Browser Portal'

Parameters:
  PortalEndpoint:
    Type: String
    Description: 'The endpoint of your existing WorkSpaces Web Portal (e.g., abc123.workspaces-web.com)'
    AllowedPattern: '^[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)?\.workspaces-web\.com$'
    ConstraintDescription: 'Must be a valid WorkSpaces Web portal endpoint'
  
  CustomDomainName:
    Type: String
    Description: 'Custom domain name for the portal (e.g., myportal.example.com)'
    AllowedPattern: '^([a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\.)+[a-zA-Z0-9]+)$'
    ConstraintDescription: 'Must be a valid domain name'
  
  CertificateArn:
    Type: String
    Description: 'ARN of the validated SSL certificate in ACM (must be in us-east-1 region for CloudFront)'
    AllowedPattern: 'arn:aws:acm:us-east-1:[0-9]{12}:certificate/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}'
    ConstraintDescription: 'Must be a valid ACM certificate ARN in us-east-1 region'
  
  CreateRoute53Record:
    Type: String
    Description: 'Create Route53 record for custom domain (requires existing hosted zone)'
    Default: 'No'
    AllowedValues:
      - 'Yes'
      - 'No'
  
  HostedZoneId:
    Type: String
    Description: 'Route53 Hosted Zone ID for the custom domain (required if creating Route53 record)'
    Default: ''

Conditions:
  ShouldCreateRoute53Record: !And
    - !Equals [!Ref CreateRoute53Record, 'Yes']
    - !Not [!Equals [!Ref HostedZoneId, '']]

Resources:
  # CloudFront Distribution
  CloudFrontDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Aliases:
          - !Ref CustomDomainName
        Comment: !Sub 'CloudFront distribution for WorkSpaces Web Portal - ${CustomDomainName}'
        Enabled: true
        HttpVersion: http2
        IPV6Enabled: false  # WorkSpaces Secure Browser does not support IPv6
        PriceClass: PriceClass_All
        
        # Origin Configuration
        Origins:
          - Id: WorkSpacesWebOrigin
            DomainName: !Ref PortalEndpoint
            CustomOriginConfig:
              HTTPSPort: 443
              OriginProtocolPolicy: https-only
              OriginSSLProtocols:
                - TLSv1.2
            OriginCustomHeaders:
              - HeaderName: workspacessecurebrowser-custom-domain
                HeaderValue: !Ref CustomDomainName
        
        # Default Cache Behavior
        DefaultCacheBehavior:
          TargetOriginId: WorkSpacesWebOrigin
          ViewerProtocolPolicy: https-only
          AllowedMethods:
            - GET
            - HEAD
            - OPTIONS
            - PUT
            - POST
            - PATCH
            - DELETE
          Compress: false
          # Cache Policy: CachingDisabled (using predefined managed policy)
          CachePolicyId: 4135ea2d-6df8-44a3-9df3-4b5a84be39ad
          # Origin Request Policy: AllViewerExceptHostHeader (using predefined managed policy)
          OriginRequestPolicyId: b689b0a8-53d0-40ab-baf2-68738e2966ac
        
        # SSL Configuration
        ViewerCertificate:
          AcmCertificateArn: !Ref CertificateArn
          SslSupportMethod: sni-only
          MinimumProtocolVersion: TLSv1.2_2021
      
      Tags:
        - Key: Name
          Value: !Sub '${AWS::StackName}-cloudfront'

  # Route 53 Record (optional - requires hosted zone to exist)
  Route53Record:
    Type: AWS::Route53::RecordSet
    Condition: ShouldCreateRoute53Record
    Properties:
      HostedZoneId: !Ref HostedZoneId
      Name: !Ref CustomDomainName
      Type: A
      AliasTarget:
        DNSName: !GetAtt CloudFrontDistribution.DomainName
        HostedZoneId: Z2FDTNDATAQYW2  # CloudFront Hosted Zone ID
        EvaluateTargetHealth: false

Outputs:
  PortalEndpoint:
    Description: 'WorkSpaces Web Portal endpoint used as origin'
    Value: !Ref PortalEndpoint
    Export:
      Name: !Sub '${AWS::StackName}-PortalEndpoint'
  
  CustomDomainEndpoint:
    Description: 'Custom domain endpoint for the portal'
    Value: !Sub 'https://${CustomDomainName}'
    Export:
      Name: !Sub '${AWS::StackName}-CustomDomainEndpoint'
  
  CloudFrontDistributionId:
    Description: 'CloudFront Distribution ID'
    Value: !Ref CloudFrontDistribution
    Export:
      Name: !Sub '${AWS::StackName}-CloudFrontDistributionId'
  
  CloudFrontDomainName:
    Description: 'CloudFront Distribution Domain Name'
    Value: !GetAtt CloudFrontDistribution.DomainName
    Export:
      Name: !Sub '${AWS::StackName}-CloudFrontDomainName'
  
  CertificateArn:
    Description: 'SSL Certificate ARN used by CloudFront'
    Value: !Ref CertificateArn
    Export:
      Name: !Sub '${AWS::StackName}-CertificateArn'

Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      - Label:
          default: "Existing Portal Configuration"
        Parameters:
          - PortalEndpoint
      - Label:
          default: "Custom Domain Configuration"
        Parameters:
          - CustomDomainName
          - CertificateArn
          - CreateRoute53Record
          - HostedZoneId
    ParameterLabels:
      PortalEndpoint:
        default: "Portal Endpoint"
      CustomDomainName:
        default: "Custom Domain Name"
      CertificateArn:
        default: "SSL Certificate ARN"
      CreateRoute53Record:
        default: "Create Route53 Record"
      HostedZoneId:
        default: "Hosted Zone ID"
```

Pour utiliser ce modèle :

1. Enregistrez le modèle ci-dessus sous `workspaces-web-custom-domain-template.yaml`

1. Déployez à l'aide de la AWS console, de la AWS CLI ou du AWS SDK avec vos valeurs de paramètres spécifiques

1. Après le déploiement, configurez votre portail avec le domaine personnalisé, comme décrit à l'étape 4 ci-dessous

**Configuration du portail**

Enregistrez votre domaine personnalisé en tant qu'attribut de paramètres de portail à l'aide de la AWS console, de UpdatePortal l'API ou de la commande update-portal AWS CLI.

1. Ouvrez la console WorkSpaces Secure Browser à l'adresse[https://console.aws.amazon.com/workspaces-web/home](https://console.aws.amazon.com/workspaces-web/home).

1. Dans le panneau de navigation, sélectionnez **Portails web**.

1. Sélectionnez le portail Web que vous souhaitez configurer et choisissez **Modifier**.

1. Dans les paramètres du portail, ajoutez votre domaine personnalisé.

1. Enregistrez la configuration du portail.

**Testez votre configuration**

Pour tester votre configuration, procédez comme suit :

1. Ouvrez un navigateur Web et accédez à l'URL de votre domaine personnalisé (par exemple,**https://myportal.example.com**).

1. Si tout est correctement configuré, vous devriez voir la page de connexion de votre portail.

1. Ensuite, entrez l'URL du portail dans votre navigateur, vous devriez être redirigé vers le domaine personnalisé après vous être connecté à votre IdP.

1. Enfin, connectez-vous à votre IdP et cliquez sur la vignette de l'application correspondant à votre portail. Vous devriez être redirigé vers un domaine personnalisé.