2.2.3 • Published 1 month ago

moduleauthazureapp v2.2.3

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

Module de d'authentification azure pour les applications React

Ce module npm moduleauthazureapp est un package conçu pour être utilisé avec React. Il offre deux fonctionnalités principales : la connexion et la déconnexion à l'aide des identifiants Microsoft, ainsi que la protection des routes d'application.

Grâce à ce module, vous pouvez facilement intégrer un processus de connexion et de déconnexion dans votre application React en utilisant les identifiants Microsoft. Cela permet aux utilisateurs de se connecter à leur compte Microsoft, offrant ainsi une expérience d'authentification sécurisée et simplifiée.

De plus, le module "moduleauthazureapp" fournit également des fonctionnalités pour protéger les routes de votre application. Vous pouvez définir des routes spécifiques comme étant accessibles uniquement aux utilisateurs connectés, garantissant ainsi que seules les personnes authentifiées peuvent accéder à certaines parties de votre application.

Avec moduleauthazureapp, vous pouvez ajouter facilement des fonctionnalités de connexion sécurisées et de protection des routes à votre application React, tout en utilisant les identifiants Microsoft pour une expérience utilisateur optimale.

Configuration

Le module de Logs API est configurable via quatre variables d'environnement :

  • azureGatewayAPI : l'URL de l'API Azure Gateway, cette api gere l'acces à azure AD Cette variable est obligatoire.
  • tenantId : Le tenantId est l'identifiant de locataire qui est l'identifiant de l'Azure AD Cette variable est obligatoire.
  • clientId : Le clientId est l'identifiant unique qui est spécifique à votre application dans Azure AD Cette variable est obligatoire.
  • redirectUri : Le redirectUri (URI de redirection) est une URL spécifique vers laquelle une application est redirigée après une opération d'authentification réussie. Il s'agit de l'adresse où l'utilisateur est renvoyé après avoir fourni ses informations d'identification et s'être authentifié avec succès. Cette variable est obligatoire.

Note Azure pour les nuls (comme moi ). Imagine que tu as une grande boîte appelée "Azure Active Directory" (Azure AD) et l'identifiant de locataire, le tenant id est comme le nom de la grande boîte Azure AD, à l'intérieur de cette grande boîte, il y a de nombreuses petites boîtes, chacune contenant une application. Chaque petite boîte à une étiquette spéciale qui l'identifie appelée "clientId". Ainsi, l'identifiant de locataire est comme le nom de la grande boîte Azure AD, tandis que le clientId est comme le nom de chaque petite boîte d'application à l'intérieur de la grande boîte.

Note Ces deux étiquettes sont importantes lorsque les applications veulent parler à la grande boîte Azure AD. L'identifiant de locataire indique à quelle organisation ou service appartient l'application, et le clientId indique quelle application spécifique est en train de parler.

Installation

Pour installer le module, utilisez npm en exécutant la commande suivante :

npm install moduleauthazureapp

Elément exposé et utilisation

initConfig

Cette méthode permet d'initialiser la configuration nécessaire pour utiliser le module "@azure/msal-browser" et l'authentification avec Azure Active Directory. La méthode initConfig prend les paramètres suivants :

clientId : l'ID du client de l'application Azure AD. tenantId : l'ID du locataire Azure AD. redirectUri : l'URI de redirection après l'authentification. azureGatewayAPI : l'URL de l'API Azure Gateway; urlLogin (optionnel) : l'URL de la page de connexion, par défaut "/";

La méthode retourne un objet de configuration qui peut être utilisé pour initialiser le module MSAL. En utilisant cette méthode, vous pouvez configurer et personnaliser le module MSAL pour votre application, en spécifiant les informations d'authentification, l'emplacement du cache et les options de journalisation.

Utilisation

// app.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import { PublicClientApplication } from '@azure/msal-browser';
import { MsalProvider } from '@azure/msal-react';
import { initConfig } from "moduleauthazureapp"

async function initializeApp() {
  var msalConfig = await initConfig("53fef79b-ff37-4a13-951d-2dc737f15b64", "091cc566-b641-44cd-8417-6dea6b16abae", "http://localhost:3000/", "http://localhost:3010");

  const msalInstance = new PublicClientApplication(msalConfig);

  const root = ReactDOM.createRoot(document.getElementById('root'));
  root.render(
    <React.StrictMode>
      <MsalProvider instance={msalInstance}>
        <App />
      </MsalProvider>
    </React.StrictMode>
  );
}

initializeApp();
 

SignInButton

Cette méthode est un composant React appelé "SignInButton" qui utilise le module "@azure/msal-react" pour gérer la connexion de l'utilisateur.

Le composant "SignInButton" prend un enfant composant et l'affiche en lui ajoutant la propriété onClick. Lorsque le composant est cliqué, il déclenche la fonction handleLogin qui effectue une connexion redirigée pour démarrer le processus de connexion en redirigeant l'utilisateur vers la page de connexion Azure AD.

Utilisation

import { SignInButton } from "moduleauthazureapp";
import ButtonExempleLogin from "./ButtonExempleLogin"

.
.
.

<SignInButton >
    <ButtonExempleLogin > </ButtonExempleLogin>
</SignInButton>
 

Logout

Cette méthode est une composante React appelée "Logout" qui utilise le module "@azure/msal-react" pour gérer la déconnexion de l'utilisateur.

Si des comptes d'utilisateur sont présents, le composant supprime le jeton d'accès (accessToken) du stockage local (localStorage). Ensuite, il effectue une redirection vers la page de déconnexion Azure AD

Si aucun compte d'utilisateur n'est présent, le composant redirige simplement l'utilisateur vers l'URL de connexion spécifiée dans la configuration qui a été founir à l'aide de la methode initConfig avec le paramètre urlLogin.

Utilisation

import { logout } from "moduleauthazureapp"
import { BrowserRouter, Routes, Route } from "react-router-dom"

<BrowserRouter>
    <Routes>
        <Route path="/logout" exact element={<Logout />} />
    </Routes>
</BrowserRouter>

RequireAuth

Ce composant React appelé "RequireAuth" est utilisé pour protéger certaines routes de l'application en exigeant une authentification et une autorisation appropriées.

Le composant "RequireAuth" utilise les modules react-router-dom et @azure/msal-react pour gérer la navigation et l'authentification avec Azure AD.

Le composant "RequireAuth" nécessite que l'utilisateur fournisse une liste de rôles autorisés en utilisant l'attribut ArrayRoles. Cette liste de rôles permet au composant de vérifier si l'utilisateur possède l'autorisation appropriée pour accéder à une route sécurisée.

Utilisation

import { RequireAuth } from "moduleauthazureapp"
import { BrowserRouter, Routes, Route } from "react-router-dom"
import ChildComposat from "./exemple" 

<BrowserRouter>
    <Routes>
        <Route path="/exemple"  element={<RequireAuth ArrayRoles={['admin', 'manager']}> <ChildComposat /> </RequireAuth>} />
    </Routes>
</BrowserRouter>

Support

Nous espérons que le module de Auth azure APP sera utile pour la connexion et la deconnexion de vos utilisateur microsoft et pour securiser vos route d'apllication. Si vous avez des questions ou des commentaires, n'hésitez pas à nous contacter à s.cao@m-energies.fr

2.2.3-alpha.1

1 month ago

2.2.2-alpha.1

1 month ago

2.2.3

1 month ago

2.2.2

1 month ago

2.2.1-alpha.1

1 month ago

2.2.1

1 month ago

2.2.0

2 months ago

2.0.5

8 months ago

2.0.7

8 months ago

2.0.6

8 months ago

2.0.9

8 months ago

2.0.8

8 months ago

2.1.1

8 months ago

2.0.10

8 months ago

2.1.0

8 months ago

2.0.4

11 months ago

2.0.3

11 months ago

2.0.2

11 months ago

2.0.1

11 months ago

2.0.0

11 months ago

1.0.93

11 months ago

1.0.92

11 months ago

1.0.91

11 months ago

1.0.90

11 months ago

1.0.89

11 months ago

1.0.88

11 months ago

1.0.87

11 months ago

1.0.86

11 months ago

1.0.85

11 months ago

1.0.84

11 months ago

1.0.83

11 months ago

1.0.82

11 months ago

1.0.81

11 months ago

1.0.80

11 months ago

1.0.79

11 months ago

1.0.78

11 months ago

1.0.77

11 months ago

1.0.76

11 months ago

1.0.75

11 months ago

1.0.74

11 months ago

1.0.73

11 months ago

1.0.72

11 months ago

1.0.71

11 months ago

1.0.70

11 months ago

1.0.69

11 months ago

1.0.68

11 months ago

1.0.66

11 months ago

1.0.65

11 months ago

1.0.64

11 months ago

1.0.62

11 months ago

1.0.61

11 months ago

1.0.60

11 months ago

1.0.59

11 months ago

1.0.58

11 months ago

1.0.57

11 months ago

1.0.56

11 months ago

1.0.55

11 months ago

1.0.54

11 months ago

1.0.53

11 months ago

1.0.52

11 months ago

1.0.51

11 months ago

1.0.50

11 months ago

1.0.49

11 months ago

1.0.48

11 months ago

1.0.47

11 months ago

1.0.46

11 months ago

1.0.45

11 months ago

1.0.44

11 months ago

1.0.43

11 months ago

1.0.42

11 months ago

1.0.41

11 months ago

1.0.40

11 months ago

1.0.39

11 months ago

1.0.38

11 months ago

1.0.37

11 months ago

1.0.36

11 months ago

1.0.35

11 months ago

1.0.34

11 months ago

1.0.33

11 months ago

1.0.32

11 months ago

1.0.31

11 months ago

1.0.30

11 months ago

1.0.29

11 months ago

1.0.28

11 months ago

1.0.27

11 months ago

1.0.26

11 months ago

1.0.25

11 months ago

1.0.24

11 months ago

1.0.23

11 months ago

1.0.22

11 months ago

1.0.21

11 months ago

1.0.20

11 months ago

1.0.19

11 months ago

1.0.18

11 months ago

1.0.17

11 months ago

1.0.16

11 months ago

1.0.15

11 months ago

1.0.14

11 months ago

1.0.13

11 months ago

1.0.12

11 months ago

1.0.11

11 months ago

1.0.10

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago