> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accéder aux portails

> Dirigez les utilisateurs vers un portail Universal à partir d'une application Web ou d'une application native, ou dans le cadre d'une organisation.

> [!WARNING]
>
> **La fonctionnalité Auth0 Universal Portals est en .**

Chaque Auth0 Universal Portal dispose d’une URL; ainsi, les utilisateurs déjà connectés à votre application peuvent ouvrir le portail sans passer par une invite de connexion.

Portals propose plusieurs points d’entrée. Sélectionnez celui qui correspond à votre expérience utilisateur.

```mermaid theme={null}
flowchart TD
    start("Où l’utilisateur commence-t-il?") --> web["Application Web"]
    start --> native["Application native"]
    web --> url["URL du portail"]
    native --> token["Jeton de transfert de session"] --> url
    url --> org{"Un contexte d’organisation<br/>est-il requis?"}
    org -- "Yes" --> param["Inclure le paramètre organization"]
    org -- "No" --> open["Ouvrir le portail"]
    param --> open
```

| Point d'entrée | Quand l'utiliser | Section |
| - | - | - |
| Application Web | Les utilisateurs partent d'une application Web qui utilise le même domaine Auth0 | [Ouvrir un portail à partir d'une application Web](#open-a-portal-from-a-web-application) |
| Application native | Les utilisateurs partent d'une application native et le portail s'ouvre dans un navigateur intégré à l'application | [Ouvrir un portail à partir d'une application native](#open-a-portal-from-a-native-application) |
| Contexte d'[Organisation](https://auth0.com/docs/fr-ca/manage-users/organizations.md) | Le portail gère une Organisation Auth0 ou les utilisateurs appartiennent à plusieurs Organisations | [Ouvrir un portail dans un contexte d'Organisation](#open-a-portal-in-an-organization-context) |

## Informations requises

* Un Portal et son application. Pour les créer, consultez [Démarrage rapide des Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/quickstart.md). Pour configurer l’application vous-même, consultez [Configurer une application pour les Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/configure-portal-application.md).

* L’URL du portail :

  ```text theme={null}
  https://YOUR_DOMAIN/portals/{slug}
  ```

  `YOUR_DOMAIN` correspond à votre domaine personnalisé ou, si vous n’en avez pas, à votre domaine Auth0. `{slug}` correspond au slug du portail.

  L’URL ouvre la page par défaut du Portal. Si le Portal n’a pas de page par défaut, les utilisateurs voient s’afficher le message d’erreur « Page not found ». Pour configurer une page par défaut, consultez [Configurer les Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/customize-portals.md#set-the-default-page).

* Si vous souhaitez utiliser les Portals avec les Organisations :
  * L’application du portail autorise les Organisations. Pour en savoir plus, consultez [Configurer une application pour les Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/configure-portal-application.md#organization-context).
  * L’utilisateur est membre de l’Organization.
  * Pour un Portal d’entreprise, l’utilisateur dispose des autorisations d’Organization nécessaires aux composants. Pour en savoir plus, consultez [API My Organization](https://auth0.com/docs/fr-ca/manage-users/my-organization-api.md).

## Ouvrir un portail à partir d'une application Web

Ajoutez un lien vers l'URL du portail dans votre application :

```html wrap lines theme={null}
<a href="https://YOUR_DOMAIN/portals/{slug}">Manage your account</a>
```

Lorsque l'utilisateur dispose d'une session Auth0 sur le même domaine que le Portal, Auth0 le connecte au Portal grâce à l'authentification unique (Authentification unique (SSO) : service qui, après la connexion d'un utilisateur à une application, le connecte automatiquement à d'autres applications. La déconnexion unique fonctionne de manière similaire, mais en sens inverse.), sans afficher d'invite de connexion. Si l'utilisateur n'a pas de session, Auth0 affiche la page de connexion, puis le redirige vers le Portal.

## Ouvrir un portail à partir d’une application native

L’[authentification unique d’une application native à une application Web](https://auth0.com/docs/fr-ca/authenticate/single-sign-on/native-to-web) transfère la session de l’utilisateur de votre application native vers le portail. L’application native échange son jeton d’actualisation contre un jeton de transfert de session à usage unique, puis ouvre le portail dans un navigateur intégré à l’application en incluant ce jeton dans l’URL.

Avant de commencer, configurez l’authentification unique d’une application native à une application Web dans votre application native. Pour en savoir plus, consultez [Configurer et mettre en œuvre l’authentification unique d’une application native à une application Web](https://auth0.com/docs/fr-ca/authenticate/single-sign-on/native-to-web/configure-implement-native-to-web.md). Configurez ensuite l’application du portail pour qu’elle accepte les jetons de transfert de session. Pour en savoir plus, consultez [Configurer une application pour les portails Universal](https://auth0.com/docs/fr-ca/customize/portals/configure-portal-application.md#native-application).

### Échanger le jeton d'actualisation contre un jeton de transfert de session

Effectuez cette requête immédiatement avant d'ouvrir le navigateur intégré à l'application. Le jeton expire au bout de 60 secondes et n'est utilisable qu'une seule fois.

```bash wrap lines theme={null}
curl --request POST \
  --url "https://YOUR_DOMAIN/oauth/token" \
  --header "content-type: application/json" \
  --data '{
    "grant_type": "refresh_token",
    "client_id": "{nativeClientId}",
    "refresh_token": "{refreshToken}",
    "audience": "urn:YOUR_DOMAIN:session_transfer"
  }'
```

Le jeton `access_token` de la réponse correspond au jeton de transfert de session.

### Ouvrir le navigateur intégré à l'application

Ouvrez l'URL du portail avec le jeton :

```text theme={null}
https://YOUR_DOMAIN/portals/{slug}?session_transfer_token={sessionTransferToken}
```

Le Portal transmet le jeton à Auth0 et connecte l'utilisateur.

### Masquer la navigation du portail dans les navigateurs intégrés

Par défaut, un Portal affiche une barre supérieure, une barre latérale et un menu utilisateur. Dans un navigateur intégré, votre application native fournit déjà la navigation et le contexte de l’utilisateur; vous pouvez donc masquer ces éléments à l’aide de paramètres d’URL :

| Paramètre | Effet |
| - | - |
| `hide_sidebar=true` | Retire la barre latérale de navigation et son menu utilisateur. |
| `hide_topbar=true` | Retire la barre supérieure. |
| `hide_user_menu=true` | Retire l’avatar et le menu utilisateur de la barre supérieure et de la barre latérale. |

Les maquettes suivantes illustrent le résultat obtenu avec chaque paramètre, ainsi qu’avec des combinaisons courantes :

Les paramètres sont conservés lorsque l’utilisateur passe d’une page à l’autre du portail; il suffit donc de les ajouter une seule fois, à l’ouverture du navigateur intégré :

```text theme={null}
https://YOUR_DOMAIN/portals/{slug}?session_transfer_token={sessionTransferToken}&hide_sidebar=true&hide_user_menu=true
```

## Ouvrir un portail dans le contexte d'une Organization

Utilisez le paramètre `organization` pour ouvrir un portail associé à une [Organization](https://auth0.com/docs/fr-ca/manage-users/organizations.md) précise. Incluez-le toujours pour les portails d'entreprise, puisque l'[API My Organization](https://auth0.com/docs/fr-ca/manage-users/my-organization-api.md) a besoin d'une Organization sur laquelle agir. Pour les portails grand public, incluez-le lorsque les utilisateurs appartiennent à plusieurs Organizations.

### Construire l'URL

Ajoutez l'Organization à l'URL du portail :

```text theme={null}
https://YOUR_DOMAIN/portals/{slug}?organization={organization}
```

Le Portal transmet `organization` au terminal `/authorize` d’Auth0; utilisez donc le même format d’identifiant que pour vos autres requêtes `/authorize`, c’est-à-dire l’ID de l’organisation (par exemple, `org_abc123`) ou le nom de l’Organization si votre locataire est configuré pour accepter les noms. Pour en savoir plus, consultez [Utiliser les noms d’Organization dans l’Authentication API](https://auth0.com/docs/fr-ca/manage-users/organizations/configure-organizations/use-org-name-authentication-api.md).

### Ouvrir le portail à partir de votre application

Choisissez l’Organization dans votre application, puis créez un lien vers l’URL. Dans une application native, ajoutez `organization` à l’URL que vous ouvrez dans le navigateur intégré à l’application. Pour en savoir plus, consultez [Ouvrir un portail à partir d’une application native](#open-a-portal-from-a-native-application).

Pour une application native, la valeur `organization` doit correspondre à l’Organization du jeton de transfert de session. En cas de non-correspondance, Auth0 rejette le jeton et l’utilisateur doit se reconnecter. Pour en savoir plus, consultez [Authentification unique d’une application native à une application Web avec Organisations](https://auth0.com/docs/fr-ca/authenticate/single-sign-on/native-to-web/configure-implement-native-to-web.md#native-to-web-sso-with-organizations).

### Changer d'organisation

Lorsqu'un utilisateur dont la session de portail est active ouvre le Portal avec une `organization` différente, le Portal le reconnecte pour cette Organization et remplace la session de portail précédente.

### Ce que fait le Portal dans un contexte d’Organization

* Les composants qui appellent l’API My Organization agissent sur l’Organization de l’utilisateur.
* Le Portal applique l’image de marque de cette Organization.
* Lors d’un [défi MFA d’authentification renforcée](https://auth0.com/docs/fr-ca/secure/multi-factor-authentication/step-up-authentication.md), l’utilisateur reste dans la même Organization.

## Exécuter une Action lorsque les utilisateurs ouvrent un Portal

Toute connexion à un Portal déclenche vos [Actions post-login](https://auth0.com/docs/fr-ca/customize/actions/actions-overview.md). Pour exécuter une logique propre au Portal uniquement, comparez l’identifiant du client de l’application avec `event.client.client_id`.

L’exemple suivant restreint l’accès à un Portal d’entreprise et suppose que vous attribuez un rôle `admin` aux administrateurs de votre Organization. Seuls les utilisateurs connectés au moyen d’une Organization et possédant le rôle `admin` devraient pouvoir accéder au Portal :

```javascript wrap lines theme={null}
exports.onExecutePostLogin = async (event, api) => {
  const PORTAL_CLIENT_ID = "{portalClientId}";

  if (event.client.client_id !== PORTAL_CLIENT_ID) {
    return;
  }

  const roles = event.authorization?.roles ?? [];

  if (!event.organization || !roles.includes("admin")) {
    api.access.deny("Only organization administrators can open this portal.");
  }
};
```

Vous pouvez également afficher un [Form Auth0](https://auth0.com/docs/fr-ca/customize/forms.md) qui demande aux utilisateurs d'accepter vos conditions avant d'ouvrir le Portal. Le flux du Form peut enregistrer cette acceptation, afin que l'Action n'affiche plus le Form par la suite :

```javascript wrap lines theme={null}
exports.onExecutePostLogin = async (event, api) => {
  const PORTAL_CLIENT_ID = "{portalClientId}";

  if (event.client.client_id !== PORTAL_CLIENT_ID) {
    return;
  }

  if (!event.user.app_metadata?.terms_accepted) {
    api.prompt.render("{formId}");
  }
};

exports.onContinuePostLogin = async (event, api) => {
  // Ajoutez votre logique une fois que l'utilisateur a rempli le formulaire
};
```

Pour en savoir plus, consultez [Afficher des Forms à l’aide d’Actions](https://auth0.com/docs/fr-ca/customize/forms/render.md).

## Paramètres d’URL

| Paramètre | Valeur | Transmis à `/authorize` | Description |
| - | - | - | - |
| `session_transfer_token` | String | Oui | Jeton de transfert de session pour l’authentification unique d’une application native à une application Web. À usage unique, expire après 60 secondes. |
| `organization` | String | Oui | ID ou nom de l’organisation à laquelle connecter l’utilisateur. |
| `hide_sidebar` | `true` | Non | Masque la barre latérale. |
| `hide_topbar` | `true` | Non | Masque la barre supérieure. |
| `hide_user_menu` | `true` | Non | Retire le menu utilisateur de la barre supérieure et de la barre latérale. |

## Prochaines étapes

> [card] [Configurer une application pour Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/configure-portal-application.md)
>
> Définissez les options d’application dont les applications natives et les Organisations ont besoin.

> [card] [Architecture d’Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/architecture.md)
>
> Découvrez comment la connexion, les appels de composants et les sessions fonctionnent au sein d’un portail.

> [card] [Dépannage d’Universal Portals](https://auth0.com/docs/fr-ca/customize/portals/troubleshoot-portals.md)
>
> Résolvez les problèmes de connexion et d’Organization.
