I Mobile App Services supportano l'autenticazione federata tramite molteplici provider, quali Twitter, Facebook, Microsoft Account, Google e Azure Active Directory. L'SDK (sia lato client che server) permette di interfacciarsi tramite questi provider con pochissimi passi, e senza che siamo costretti a conoscere i dettagli implementativi del protocollo OAuth. Tutto ciò che dobbiamo fare è seguire i passaggi descritti nella documentazione a questo indirizzo:
http://aspit.co/a7c
Le operazioni di autenticazione vengono gestite da un servizio chiamato Gateway che si occupa di acquisire un token dal provider selezionato e di utilizzarlo per rilasciare il cosiddetto Zumo-Token, utilizzato per autenticare le richieste provenienti dal device.

Uno dei compiti del Gateway è anche quello di mantenere un database con i token del provider esterno, così che questi possano essere utilizzati per impersonare l'utente in una chiamata. Immaginiamo per esempio di avere un utente autenticato con Twitter e di voler effettuare un tweet con il suo account. LinqToTwitter è una libreria che rende molto semplice questa operazione, ed è disponibile tramite NuGet:
install-package LinqToTwitter
Il primo passo è quello di interrogare il Gateway e recuperare il token originariamente emesso da Twitter, che contiene a sua volta l'AccessToken e l'AccessTokenSecret necessari per la chiamata.
var credentials = await ((MobileAppUser)this.User)
.GetIdentityAsync<TwitterCredentials>();A questo punto possiamo costruire un IAuthorizer, ossia il componente di LinqToTwitter che incapsula le credenziali utente e della nostra app:
var authorizer = new SingleUserAuthorizer()
{
CredentialStore = new SingleUserInMemoryCredentialStore()
{
ConsumerKey = "<put your ConsumerKey here>",
ConsumerSecret = "<put your ConsumerSecret here>",
AccessToken = credentials.AccessToken,
AccessTokenSecret = credentials.AccessTokenSecret
}
};Possiamo recuperare AccessToken e AccessTokenSecret dalle credenziali ottenute in precedenza, mentre ConsumerKey e ConsumerSecret sono le chiavi fornite da Twitter quando abbiamo registrato l'app presso il portale sviluppatori.
Grazie a questo componente, siamo finalmente pronti a inviare il tweet tramite il metodo TweetAsync di TwitterContext.
var context = new TwitterContext(authorizer);
await context.TweetAsync("Hello World! This is a test tweet!");Ovviamente, affinché questa operazione abbia successo, è necessario che l'app sia configurata con diritti di scrittura sulla timeline dell'utente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rendere affidabile lo scale out su Azure App Service
Esporre workflow come server MCP con Azure Logic Apps
Ottimizzare i costi con Smart tier in Azure Blob Storage
Utilizzare le librerie native di .NET per decomprimere un file zip
Personalizzare i parametri del CSS Scroll Snap
Configurare OpenTelemetry per Application Insights su ASP.NET Core
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance
Gestire pubblicazione Kubernetes tramite .NET Aspire
Cache temporanea in Javascript con oggetti
Ospitare n8n su Azure App Service
Utilizzo delle stepped value functions nel CSS
Utilizzare zizmor per rendere più sicuri i workflow di GitHub


