Ciao!

Ho bisogno di aiuto? Siamo proprio qui!

Icona di supporto
Supporto e-mail miniOrange
il successo

Grazie per la tua richiesta. Il nostro team ti contatterà presto.

Se non ricevi nostre notizie entro 24 ore, non esitare a inviare un'e-mail di follow-up a info@xecurify.com

Risultati di Ricerca:

×

OAuth Single Sign-On (SSO) per framework JavaScript


La soluzione JavaScript OAuth Single Sign-On (SSO) di miniOrange consente un'autenticazione sicura e senza interruzioni per le applicazioni create utilizzando framework e librerie JavaScript popolari come React, Vue.js, Next.js e AngularUtilizzando i JSON Web Token (JWT), gli utenti possono accedere comodamente a più applicazioni con un unico set di credenziali di accesso, migliorando significativamente la sicurezza e l'esperienza utente.

Integra facilmente i protocolli OAuth 2.0 e OpenID Connect nelle tue applicazioni JavaScript esistenti, connettendole senza problemi a provider di identità come Microsoft Entra ID, Okta, AWS Cognito e altri. Inoltre, offri agli utenti comode opzioni di accesso social tramite provider come Google, Facebook, Twitter e LinkedIn. Semplifica i tuoi processi di accesso, aumenta la sicurezza e offri un'esperienza fluida e senza intoppi su tutte le tue app basate su JavaScript con miniOrange. SSO.

Con miniOrange JavaScript OAuth SSO, ottieni:

  • Esperienza di accesso utente fluida.
  • Infinite personalizzazioni per i tuoi moduli e le tue pagine di accesso.
  • Semplificazione dell'inserimento di clienti o utenti.


Connettiti con una fonte esterna di utenti


miniOrange fornisce l'autenticazione degli utenti da varie fonti esterne, che possono essere Directory (come ADFS, Microsoft Active Directory, OpenLDAP, AWS ecc.), Provider di identità (come Microsoft Entra ID, Okta, AWS) e molti di più. Puoi configurare la tua directory/archivio utente esistente o aggiungere utenti in miniOrange.



Prerequisiti

Assicurati che il marchio della tua organizzazione sia già impostato sotto Personalizzazione >> Accesso e registrazione Branding nel menu a sinistra della dashboard.


Configurare l'applicazione OAuth su miniOrange

  • Iscriviti a miniOrange sito web e accedi utilizzando le tue credenziali per visualizzare la dashboard qui sotto.
  • Console di amministrazione miniOrange per JavaScript OAuth Single Sign-On (SSO)

  • Passare alla Apps sezione nel menu a sinistra.
  • Clicca su Aggiungi applicazione pulsante situato nell'angolo in alto a destra della pagina.
  •  Aggiungi applicazione con Single Sign-On (SSO) OAuth JavaScript

  • Cerca "OAuth" e seleziona Connessione OAuth2/OpenID dall'icona miniOrange.
  • JavaScript OAuth Single Sign-On (SSO) Cerca OAuth e seleziona OAuth2/OpenID Connect

  • Inserisci un nome per la tua applicazione nel Nome cliente campo e fornire il URL di reindirizzamento (che sarà "your_domain/sso/callback") e fai clic SalvaPuoi anche fornire URI di disconnessione e specificare dove gli utenti devono essere reindirizzati dopo aver effettuato il logout (ad esempio https://tuo_dominio/login)
  • JavaScript OAuth Single Sign-On (SSO) Inserisci i dettagli della tua app

  • Verrà visualizzato un messaggio popup con il testo "App configurata correttamente" a conferma dell'avvenuta creazione dell'applicazione OAuth su miniOrange.
  • JavaScript OAuth Single Sign-On (SSO) Ricezione del messaggio durante la configurazione dell'app

  • Individua il nome della tua applicazione nell'elenco delle applicazioni, fai clic sul menu a tre punti e seleziona Modifica.
  •  JavaScript OAuth Single Sign-On (SSO): fai clic sui tre punti e seleziona Modifica

  • Ora copia Identificativo cliente and Client Secret e conservarlo in un luogo sicuro per un utilizzo futuro.
  •  Copia ID client e segreto client tramite JavaScript OAuth Single Sign-On (SSO)


Configurare OAuth nelle applicazioni framework JavaScript (React, Angular, Vue, Next.js, ecc.)


1. Installare il connettore

  • Nella directory principale del progetto (dove si trova il file package.json), esegui il seguente comando:
                        npm i mo-oauth-sdk
                    

2. Configura OAuth nella tua applicazione

  • Per impostare OAuth, crea un config.js nella cartella dei componenti e importa la classe OAuthConfig per configurare la configurazione OAuth. I dettagli seguenti sono stati forniti al momento della creazione dell'applicazione OAuth in miniOrange.
    ID_cliente L'ID client dell'applicazione che abbiamo copiato in precedenza da Qui.
    Segreto_cliente Il segreto del client dell'applicazione che abbiamo copiato in precedenza da Qui.
    BASE_URL L'URI di base dovrebbe apparire così: https://<YOUR_DOMAIN>.xecurify.com/moasÈ il nome del tuo marchio seguito da xecurify.com/moas.
    REDIRECT_URI Questo è lo stesso URI di reindirizzamento che abbiamo aggiunto durante la configurazione dell'app OAuth in miniOrange. Dovrebbe apparire così: https:// /sso/richiamata
    URI DI REDIRECT_LOGOUT Questo è lo stesso URI di disconnessione che abbiamo aggiunto durante la configurazione dell'app OAuth in miniOrange. Dovrebbe apparire così: https:// /login
    BROKER_URI Se stai utilizzando un IDP esterno diverso da miniOrange, vai a App > Endpoint OAuth > Endpoint di autorizzazione > copia URL del 2° broker
  • Passaggi per ottenere l'URL del broker

    • Accedere a Apps .
    •  Accesso singolo JavaScript OAuth (SSO) Vai alle app

    • Cerca l'app che hai creato e clicca sull'opzione del menu e seleziona Endpoint OAuth.
    •  JavaScript OAuth Single Sign-On (SSO) Cerca l'app e seleziona gli endpoint OAuth

    • Copia il secondo URI dalla sezione Endpoint di autorizzazione in Endpoint OAuth, che è l'URI del tuo broker.
    •  Copia l'endpoint di autorizzazione per l'accesso singolo (SSO) OAuth JavaScript


Nota: Memorizza le credenziali della tua app in modo sicuro nelle variabili di ambiente o in un file di proprietà e usale qui.


config.js

            
              import { OAuthConfig } from 'mo-oauth-sdk';
              const conf = new OAuthConfig();
              conf.setClientId(YOUR_CLIENT_ID);
              conf.setClientSecret(YOUR_CLIENT_SECRET);
              conf.setBaseUrl(YOUR_BASE_URL);
              conf.setRedirectUri(YOUR_REDIRECT_URI);
              conf.setLogoutRedirectUri(YOUR_LOGOUT_URI); //optional
              conf.setBrokerUri(YOUR_BROKER_URI); //optional
              export default config;
            
           


3. Avviare il processo di autorizzazione

  • Crea un pulsante di accesso e utilizzalo inizioAutorizzazione Metodo della libreria mo-oauth-sdk per avviare il processo di autorizzazione OAuth. È necessario passare l'oggetto di configurazione alla funzione startAuthorization come mostrato di seguito:
                        
                          import {startAuthorization} from 'mo-oauth-sdk';
                          import conf from './Conf';  //Adjust path accordingly
                          .
                          .
                          .
    
                          const login = ()=>{
                            startAuthorization(conf)
                          }
                        
                    
  • Ora, quando gli utenti cliccano sul pulsante di accesso, avrà inizio il flusso OAuth.

4. Gestione dei callback

Una volta che l'utente si è autenticato correttamente, il server di autorizzazione lo reindirizzerà al percorso /sso/callback dell'applicazione con i parametri di autorizzazione.

Per gestire questa situazione:

  • Definire il /sso/richiamata percorso nella tua applicazione.
  • Creare un componente Callback e visualizzarlo quando si accede al percorso sopra indicato.
  • invocare handleCallbackUri all'interno del componente di callback per elaborare la risposta di autorizzazione.
  • Estrarre i token dalla risposta e conservarli in modo sicuro (evitare localStorage a causa dei rischi per la sicurezza; preferire cookie solo HTTP o archiviazione sicura).
  • Recupera gli attributi utente usando il token di accesso, crea una sessione e reindirizza l'utente alla dashboard.

5. Passaggi per impostare il percorso di callback nelle applicazioni frontend basate su JS

È necessario definire il percorso /sso/callback nella propria applicazione e creare un componente per gestirlo.


  • Installa React Router se non è già installato:
                                npm install react-router-dom
                            
  • Crea componente Callback:
                                
                                import React, { useEffect} from "react";
                                import { handleCallbackUri, TokenHandler} from 'mo-oauth-sdk';
                                import conf from './Conf'; //adjust the path accordingly
    
    
                                function Callback() {
    
    
                                    useEffect(() => {
                                        const handleCallback = async () => {
                                        const { accessToken, refreshToken, error } = await handleCallbackUri(conf, window.location.href);
    
    
                                        if (error) {
                                        // Handle errors if any
                                        return;
                                        }
                                        //Store tokens securely in your preferred storage.
                                        if (accessToken) {
                                        // Process access token and retrieve user details
                                        const { user, error } = await TokenHandler.handleAccessToken(accessToken, conf);
                                        if (user) {
                                        // Store user details securely and navigate to dashboard
                                        } else {
                                        // Handle errors if any
                                        return;
                                        }
                                        }
                                    };
                                    handleCallback();
                                    }, []);
    
    
                                    return (
                                    <div>
                                      <img src="https://i.gifer.com/ZKZx.gif" alt="Loading.." />
                                      </div>
                                    );
                                    }
    
    
                                    export default Callback;
    
                                
                            
  • Definisci il percorso nel tuo App.js o App.tsx
                                
                                import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
                                import Callback from "./Callback"; //adjust path accordingly
                                import Home from "./Home"; 
                                    function App() {
                                    return (
                                    <Router>
                                    <Routes>
                                        {/* Existing routes..*/}
                                        <Route path="/" element={<Home />} />
                                        
                                        {/* Add new SSO callback handler here*/}
                                        <Route path="/sso/callback" element={<Callback />} />
                                        </Routes>
                                        </Router>
                                    );
                                    }
    
    
                                    export default App;
                                
                            
  • Definisci il percorso in app.routes.ts:
                                
                                import { Routes } from '@angular/router';
                                import { CallbackComponent } from './callback/callback.component';
    
    
                                export const routes: Routes = [
                                { path: 'sso/callback', component: CallbackComponent }
                                ];                    
                                
                            
  • Crea callback.component.ts:
                                
                                import { Component, OnInit } from '@angular/core';
                                import { handleCallbackUri, TokenHandler } from 'mo-oauth-sdk';
                                import conf from './Conf';  //adjust the path accordingly
    
    
                                @Component({
                                …
                                })
    
    
                                export class CallbackComponent  implements OnInit {
    
    
                                async ngOnInit(): Promise {
                                const { accessToken, refreshToken, error } = await handleCallbackUri(conf, window.location.href);
    
    
                                if (error) {
                                // Handle errors if any
                                return;
                                }
    
    
                                if (accessToken) {
                                // Store and Process access token to retrieve user details
                                const { user, error } = await TokenHandler.handleAccessToken(accessToken, this.myconfig);
    
    
                                if (user) {
                                    // Store user details securely and navigate to dashboard
                                } else {
                                    // Handle errors if any
                                    return;
                                }
                                }
                                }
                            
                                
                            
  • Installazione di Vue Router
                                npm install vue-router@4
                            
  • Crea richiamata.vue componente:
                                
                                import { onMounted } from 'vue';
                                import { handleCallbackUri, TokenHandler } from 'mo-oauth-sdk';
                                import conf from './Conf'; //adjust the path accordingly
    
    
                                onMounted(async () => {
                                const { accessToken, refreshToken, error } = await handleCallbackUri(conf, window.location.href);
    
    
                                if (error) {
                                // Handle errors if any
                                return;
                                }
    
    
                                //Store tokens securely in your preferred storage.
                                    if (accessToken) {
                                    // Process access token and retrieve user details
                                    const { user, error } = await TokenHandler.handleAccessToken(accessToken, conf);
                                    if (user) {
                                    // Store user details securely and navigate to dashboard
                                    } else {
                                    // Handle errors if any
                                    return;
                                    }
                                    }
                                }
                                });
                                
                            
  • Creare un file router.js o router.ts se non è già stato fatto e registrare al suo interno il percorso di callback.
                                
                                    import { createRouter, createWebHistory } from 'vue-router';
                                    import Home from './components/Home.vue';
                                    import Dashboard from './components/Dashboard.vue';
    
    
                                    const routes = [
                                    {
                                    // Your existing routes
                                    },
                                    {
                                    //add callback route
                                    path: '/callback',
                                    name: 'Callback',
                                    component: Callback
                                    }
                                    ];
                                    const router = createRouter({
                                    history: createWebHistory(),
                                    routes
                                    });
    
    
                                    export default router;
                                
                            

6. Disconnetti (Cancella sessione) Facoltativo

  • Per disconnettere l'utente e cancellare la sessione miniOrange dal browser, chiamare il comando il logout funzione fornita dalla libreria.
  • Fare riferimento al frammento di codice seguente:
                        
                        import { logout} from "mo-oauth-sdk";
                        import conf from './Conf'; //adjust the path accordingly
                        const logoutUser= async()=>{
                            logout(conf);
                        }
                    

7. Verifica sessione (facoltativo)

Controlla la sessione

  • È possibile verificare la validità del token di accesso utilizzando il metodo isSessionActive. Questo metodo verifica se il token è ancora valido o è scaduto. È possibile eseguire questo controllo a ogni caricamento di pagina o a intervalli regolari durante l'attività dell'utente.
  • È possibile eseguire questo controllo a ogni caricamento di pagina oppure a intervalli regolari durante l'attività dell'utente.
                                
                                    import {isSessionActive} from "mo-oauth-sdk";
                                    
                                    const validateToken=async() => {
                                        let response = await isSessionActive(conf, accessToken)
                                        if(response)
                                            //session is active do nothing
                                            else{
                                        //logout user and redirect to session expiration page
                                        }
                                    }
                                
                            
  • Se il token è scaduto, puoi ottenere un nuovo token di accesso utilizzando il token di aggiornamento oppure disconnettere l'utente e reindirizzarlo a una pagina con sessione scaduta, che gli chiederà di effettuare nuovamente l'accesso.
  • Richiesta di nuovo token di accesso:
                                
                                import {  TokenHandler} from "mo-oauth-sdk";
    
    
    
                                const getNewToken= async()=>{
                                    const refreshToken =  //fetch your stored refresh token
                                    const {error, access_token} = await TokenHandler.getNewAccessToken(refreshToken, conf);
                                    
                                        if(!error){
                                            //update new access token
                                            return;
                                        }
                                        //handle errors if any
                                        console.log("Error in getting new access token..", error)
                                    }
    
                                
                            

8. Testare l'autenticazione OAuth

Flusso previsto:

  • L'utente fa clic su Accedi pulsante.
  • Migliori inizioAutorizzazione il metodo li reindirizza alla pagina di login del server di autorizzazione.
  • Dopo l'autenticazione riuscita, il server di autorizzazione reindirizza l'utente all'applicazione /sso/percorso di callback.
  • Il gestore di callback elabora la risposta, recupera i token e registra l'utente.

Questo completa il processo di accesso OAuth, consentendo all'utente di accedere all'applicazione in modo sicuro.


Vuoi programmare una demo?

Richiedi un demo
  



I nostri altri prodotti di gestione dell'identità e dell'accesso