Le but d'OAUTH est de vous protéger et de protéger vos utilisateurs. Dès que vous commencez à stocker des informations d'identification, vous êtes responsable de la sécurisation de ces informations d'identification.
Je suppose que vous cherchez à accéder aux données d'un utilisateur via un processus dorsal. Ce workflow requiert l'étendue "offline_access". Hors ligne ne signifie pas "déconnecté d'Internet" mais plutôt que l'utilisateur final est "hors ligne" de votre application (pas en mesure d'interagir avec un UX).
Vous devez exécuter un flux de travail OAUTH Code Grant et ajouter "openid" et "offline_access" à vos étendues. Cela vous donnera à la fois un id_token qui peut être utilisé pour frapper les API Office ainsi qu'un refresh_token que vous pouvez utiliser pour obtenir un nouveau id_token lorsque le jeton existant expire. Les jetons d'actualisation peuvent être utilisés même si l'utilisateur final est hors ligne (aucun UX n'est impliqué). Une fois que vous avez id_token et refresh_token, vous pouvez utiliser ces valeurs pour interagir avec O365 au nom de l'utilisateur final. Un exemple courant serait la synchronisation des calendriers. La première fois qu'un utilisateur devra s'authentifier et configurer (c'est-à-dire quels calendriers veulent-ils synchroniser). A partir de là, votre serveur utilise id_token et refresh_token pour fonctionner sans que l'utilisateur soit en ligne (le terme "offline_access").
Vous voulez vous connecter à O365 sans la page de connexion ou simplement envoyer des courriels de notification du serveur Web? –
Je veux me connecter à O365 sans page de connexion et accéder à la boîte aux lettres Office 365 que j'ai déjà développée dans mon application web ASP.Net en utilisant la bibliothèque O365 API Client. Actuellement, j'utilise le code ci-dessous pour vérifier si l'utilisateur s'est connecté ou non. si (Request.IsAuthenticated!) { HttpContext.Current.GetOwinContext() Authentication.Challenge ( nouveaux AuthenticationProperties {RedirectUri = "/"}, OpenIdConnectAuthenticationDefaults.AuthenticationType). } –