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
Criptare la comunicazione con mTLS in Azure Container Apps
Generare un hash con SHA-3 in .NET
Utilizzare gRPC su App Service di Azure
Applicare un filtro per recuperare alcune issue di GitHub
Ordine e importanza per @layer in CSS
Evitare il flickering dei componenti nel prerender di Blazor 8
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Creare un'applicazione React e configurare Tailwind CSS
Eseguire operazioni sui blob con Azure Storage Actions
Introduzione alle Container Queries
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel