-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
64 lines (54 loc) · 3.46 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<html>
<head>
<meta charset="UTF-8">
<!-- Pour que ma page soit une pichenette moins dégueulasse à voir -->
<link rel="stylesheet" href="css/oid.css">
<!-- Nécessaires pour que WrkEasyOpenId.js fonctionne -->
<script src="https://alcdn.msauth.net/browser/2.28.3/js/msal-browser.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@microsoft/microsoft-graph-client/lib/graph-js-sdk.js"></script>
<script
src="https://cdn.jsdelivr.net/npm/@microsoft/microsoft-graph-client/lib/graph-client-msalBrowserAuthProvider.js"></script>
<!-- Cette démo minimaliste utilise jQuery -->
<script src="https://code.jquery.com/jquery-3.7.1.slim.min.js"
integrity="sha256-kmHvs0B+OpCW5GVHUNjv9rOmY0IvSIRcf7zGUDTDQM8=" crossorigin="anonymous"></script>
<!-- Les scripts propres à cette démo minimaliste de OpenID/OAuth2.0 -->
<script src="js/openid/WrkEasyOpenId.js"></script>
<script src="js/ctrl/Ctrl.js"></script>
<script src="js/ihm/IhmUtils.js"></script>
</head>
<body>
<center>
<!-- Le blabla fixe de la page -->
<header>Hello Microsoft 365 world !</header>
<p class="blabla">Cette page minimaliste montre comment une SPA (Single Page Application) peut très facilement
utiliser l'OpenID de l'État de Fribourg pour s'identifier et être authentifié.<br><br>L'authentification
devrait toujours se faire le plus en amont possible et ce worker <code>WrkEasyOpenId</code> super simple
d'emploi et réutilisable s'occupe de tout. Il utilise la librairie LTS pour Azure <a
href="https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-overview">MSAL</a> de
Microsoft pour réaliser une authentification OpenId Oauth2.0 avec redirection.<br><br>Fournissez tout
simplement les écouteurs souhaités à <code>WrkEasyOpenId</code> et vous serez automatiquement notifié avec
toute l'information reçue dans un JSON structuré (avec ou sans la photo de profil selon que vous l'aurez
souhaitée ou pas).<br><br>Dans cet exemple minimaliste, les informations reçues sont directement affichées
dans le tableau ci-dessous ainsi que sous forme brute en JSON.
</p>
<!-- Les 2 boutons pour s'authentifier auprès du OpenID de l'État de Fribourg -->
<button id="idBtnLogin" class="login-logout-btn" onclick="javascript:Ctrl.onBtnLoginPressed();"
disabled>Login</button>
<button id="idBtnLogout" class="login-logout-btn" onclick="javascript:Ctrl.onBtnLogoutPressed();"
disabled>Logout</button>
<!-- Pour spécifier si l'on désire récupérer (ou pas) la photo de profil de l'utilisateur -->
<div>
<input type="checkbox" id="profile-picture-is-desired" name="IncludePicture" />
<label for="IncludePicture">Inclure la photo de profil ?</label>
</div>
<!-- L'endroit où toutes les informations seront injectées lorsque reçues -->
<div id="all-profile-infos-will-be-then-displayed-here"></div>
<!-- Signature -->
<div class="signature">Ce projet de démonstration est <a
href="https://github.com/paul-friedli/easy-openid-demo">grâcieusement mis à disposition sur GitHub</a>.
<div class="signature-petit">Written by © Paul Friedli 2023<br><img src="res/polosoft-logo-192x36.png"
height="18"></div>
</div>
</center>
</body>
</html>