Tutta l'infrastruttura di Microsoft Azure che utilizziamo per le nostre soluzioni richiede che app, servizi e utenti vengano autenticati e autorizzati. Active directory è quella parte sulla quale tutti i servizi poggiano, ma essa non è solo dedicata all'uso interno. La parte B2C fornisce tutto il necessario per inserire nei nostri siti web tutta la parte di gestione dell'utenze, dalla registrazione fino al login. E' quindi l'ideale per non dover rifare sempre ogni volta da zero tutta l'infrastruttura che deve tenere anche conto delle normative vigenti.
Poiché B2C ha molte logiche predefinite, è normale delle volte necessitare di personalizzazioni. Possiamo cambiare infatti l'aspetto e soprattutto possiamo intervenire nelle fasi di sign-in e sign-up attraverso delle API REST da noi sviluppate che vengono chiamate in causa al momento giusto. Per farlo dobbiamo innanzitutto registrare nella sezione API connectors i nostri endpoint, che possono essere anche più di uno.
Ci viene richiesto un nome e l'indirizzo HTTP dove raggiungere la nostra API che riceverà il payload JSON contenente l'operazione. Poiché la nostra API dev'essere pubblica, è necessario che sia in qualche modo protetta. B2C ci dà la possibilità di proteggerla tramite autenticazione basic o tramite certificato (più complesso ma da preferire).
A questo punto dobbiamo recarci in un flow e nella rispettiva sezione API Connectors. Qua ci viene chiesto, per ogni fase del flusso, quale endpoint chiamare.
A seconda della fase scelta, giunge alla nostra API un payload JSON diverso al quale rispondiamo con uno status code 200, nel caso di sola presa visione, oppure alterando alcuni dati. Sulla documentazione ufficiale Microsoft sono presenti esempi di JSON per la richiesta e per la risposta che indichiamo di seguito:
https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-api-connector?pivots=b2c-user-flow
https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-api-connector-token-enrichment?pivots=b2c-user-flow
E' importante che le API da noi offerte rispondano correttamente, altrimenti il flusso dell'utente viene interrotto. Consigliamo quindi di usare strumenti come https://hookbin.com per catturare il payload in fase di test sostituendolo alle API reali che si dovranno chiamare, così da poter simulare in locale poi facilmente le chiamate con strumenti come Postman.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Potenziare Azure AI Search con la ricerca vettoriale
Gestire i dati con Azure Cosmos DB Data Explorer
Migliorare la sicurezza dei prompt con Azure AI Studio
Paginare i risultati con QuickGrid in Blazor
Gestire liste di tipi semplici con Entity Framework Core
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Cambiare la chiave di partizionamento di Azure Cosmos DB
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Eseguire operazioni sui blob con Azure Storage Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Creare un webhook in Azure DevOps