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
Semplificare il deployment di siti statici con Azure Static Web App
Utilizzare Model as a Service su Microsoft Azure
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Ricevere avvisi su metriche dei server Azure Arc
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Effettuare il binding di date in Blazor
Utilizzare i primary constructor di C# per inizializzare le proprietà
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Specificare il versioning nel path degli URL in ASP.NET Web API
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Creare gruppi di client per Event Grid MQTT
Configurare policy CORS in Azure Container Apps