plinfos

Flux OAuth de jeton de contexte pour les compléments SharePoint


Dans SharePoint, le flux d’authentification et d’autorisation OAuth pour un complément hébergé par un fournisseur et à faible confiance implique une série d’interactions entre votre complément, SharePoint, le serveur d’autorisation et le navigateur au moment de l’exécution. Le serveur d’autorisation dans ce scénario est Microsoft Azure Access Control Service (ACS).

Important

Azure Access Control (ACS), un service d’Azure Active Directory (Azure AD), sera retiré le 7 novembre 2018. Ce retrait n’affecte pas le modèle de complément SharePoint, qui utilise le https://accounts.accesscontrol.windows.net nom d’hôte (qui n’est pas impacté par ce retrait). Pour plus d’informations, voir Impact du retrait d’Azure Access Control pour les compléments SharePoint.

Avec un complément hébergé par un fournisseur, vous disposez d’une application ou d’un service Web distant distinct de SharePoint et ne faisant pas partie de la batterie de serveurs SharePoint ou de la location SharePoint Online. Il peut être hébergé dans le cloud ou sur un serveur sur site. Dans cet article, le composant distant s’appelle Contoso.com.

Noter

Le composant distant peut également héberger des récepteurs d’événements qui répondent aux événements qui se produisent sur les éléments SharePoint, tels que les listes ou les éléments de liste. Des exemples d’événements distants auxquels Contoso.com peut vouloir répondre sont des événements de liste, tels que l’ajout ou la suppression d’un élément de liste ; ou des événements Web, tels que l’ajout ou la suppression d’un site. Pour plus d’informations sur la création de récepteurs d’événements distants, voir Créer un récepteur d’événements distants dans les compléments SharePoint.

Contoso.com utilise le modèle d’objet client SharePoint (CSOM) ou les API REST SharePoint pour effectuer des appels vers SharePoint. L’application Contoso.com utilise un flux de transmission de jetons OAuth pour s’authentifier auprès de SharePoint. SharePoint et Contoso.com ne se font pas confiance ; mais les deux font confiance à ACS et accepter les jetons émis par ACS.

Trois jetons sont impliqués : SharePoint demande à ACS de créer un jeton de contexte que SharePoint transmet à Constoso.com. Contoso.com valide que le jeton de contexte a été émis par ACS afin qu’il l’approuve. Contoso.com extrait ensuite un jeton d’actualisation du jeton de contexte et l’utilise pour obtenir un jeton d’accès directement de l’ACS. Il inclut le jeton d’accès dans toutes ses demandes à SharePoint. SharePoint valide que le jeton d’accès a été émis par ACS, il répond donc aux demandes de Contoso.com.

Vous fournissez le code de gestion des jetons dans le composant distant (mais si votre composant distant est hébergé sur .NET, les outils de développement Microsoft Office pour Visual Studio fournissent un exemple de code qui effectue la majeure partie du travail à votre place). Pour plus d’informations sur le code de gestion des jetons, voir Gérer les jetons de sécurité dans les compléments SharePoint à faible confiance hébergés par le fournisseur.

Conditions préalables

Les étapes préliminaires suivantes doivent être effectuées avant qu’un complément SharePoint puisse utiliser le flux de jeton de contexte :

  • Les exigences suivantes s’appliquent uniquement si vous installez le complément SharePoint sur site en plus de SharePoint Online ; ces exigences ne s’appliquent pas si vous installez uniquement le complément SharePoint sur SharePoint Online

  • Que le complément soit installé sur SharePoint Online ou sur une batterie de serveurs SharePoint sur site, le Le complément SharePoint doit être enregistré auprès d’ACS. Pour plus d’informations sur la façon dont cela peut être fait, voir Inscrire les compléments SharePoint. Entre autres choses, le complément fournit à ACS son ID client et son secret client dans le cadre de l’enregistrement.

Étapes du flux de jeton de contexte

Le flux d’authentification et d’autorisation OAuth pour un complément hébergé par un fournisseur SharePoint est illustré dans la figure suivante.

Flux de jeton de contexte OAuth

Flux du processus d'autorisation OAuth

Voici les étapes qui correspondent aux numéros de la figure :

  1. Un utilisateur lance le complément SharePoint à partir de SharePoint. La conception du complément détermine comment cela est fait :

    • Si le complément est conçu pour afficher l’application web distante (sur Contoso.com) dans un composant de complément (qui est essentiellement un wrapper autour d’un IFRAME), lancer le complément signifie simplement naviguer vers une page SharePoint qui contient le composant du complément. (Si l’utilisateur n’est pas déjà connecté, SharePoint invite l’utilisateur à se connecter.) SharePoint traite la page et détecte qu’il existe un composant de l’application Contoso.com sur la page. (Pour plus d’informations sur les composants de complément, voir Créer des composants de complément à installer avec votre complément SharePoint.)
    • Si le complément est conçu pour être utilisé en tant que page complète dans le navigateur, l’utilisateur le lance en sélectionnant SA vignette de complément sur le site Web SharePoint. Contenu du site page. (Une variante de ceci est lorsque le complément inclut un menu personnalisé ou un élément de ruban qui lance le composant distant.)
  2. Quelle que soit la manière dont le complément est lancé, SharePoint doit obtenir un jeton de contexte qu’il peut envoyer à l’application Contoso.com, il demande donc à ACS de créer un jeton de contexte contenant des informations sur le contexte SharePoint, y compris l’utilisateur actuel, le l’URL de l’application distante et d’autres informations. Le jeton de contexte contient également un jeton d’actualisation chiffré.

  3. ACS signe le jeton de contexte à l’aide d’un algorithme qui utilise le secret du complément Contoso.com et le renvoie à SharePoint. Seuls ACS et le complément Contoso.com connaissent le secret.

  4. Si l’application Contoso.com apparaît dans un composant de complément, SharePoint rend la page qui héberge le composant de complément et ajoute le jeton de contexte à l’URL que le IFRAME dans les appels de composant de complément pour obtenir son contenu. Si l’application Contoso.com est pleine page, SharePoint redirige le navigateur vers Contoso.com et inclut le jeton de contexte dans le cadre de la réponse de redirection.

  5. Le jeton de contexte est inclus dans la requête du navigateur qui est envoyée au serveur Contoso.com.

  6. Le serveur Contoso.com obtient le jeton de contexte et valide la signature, ce qu’il peut faire car il connaît le secret client. Cela garantit à Contoso.com que le jeton a été émis par ACS et non par un imposteur se faisant passer pour SharePoint. Contoso.com extrait le jeton d’actualisation du jeton de contexte et l’envoie, avec d’autres informations, y compris son ID client et son secret client, à ACS dans une demande de jeton d’accès qui lui permet d’accéder à SharePoint.

  7. ACS valide le jeton d’actualisation afin de s’assurer qu’il a émis le jeton, puis il renvoie un jeton d’accès à Contoso.com. Facultativement, Contoso.com peut mettre en cache ce jeton d’accès afin qu’il n’ait pas à demander un jeton d’accès à ACS chaque fois qu’il accède à SharePoint. Par défaut, les jetons d’accès sont bons pour quelques heures à la fois. (Lorsque cet article a été rédigé, l’expiration par défaut des jetons d’accès émis par ACS à SharePoint était de 12 heures, mais cela pourrait changer.)

Chaque jeton d’accès est spécifique au compte d’utilisateur spécifié dans la demande d’autorisation d’origine et n’accorde l’accès qu’au service (dans ce cas, SharePoint) spécifié dans cette demande. Les jetons d’actualisation ont une durée de vie plus longue (six mois lorsque cet article a été écrit) et peuvent également être mis en cache. Ainsi, le même jeton d’actualisation peut être échangé contre un nouveau jeton d’accès d’ACS jusqu’à ce que le jeton d’actualisation lui-même expire. (Pour plus d’informations sur la mise en cache des jetons, voir Gérer les jetons de sécurité dans les compléments SharePoint à faible confiance hébergés par le fournisseur.)

Lorsque le jeton d’actualisation expire, Contoso.com peut en obtenir un nouveau en obtenant un nouveau jeton de contexte. Pour plus d’informations, voir Obtenir un nouveau jeton de contexte.

  1. Contoso.com utilise le jeton d’accès pour effectuer un appel d’API REST SharePoint ou une demande CSOM à spnv. Il le fait en passant le jeton d’accès OAuth dans le HTTP Autorisation entête. (Un exemple de code pour créer l’en-tête est fourni dans les outils de développement Office pour Visual Studio si votre composant distant est hébergé sur une plate-forme .NET.)
  2. SharePoint valide le jeton d’accès afin de s’assurer que le jeton a été émis par ACS. Il envoie ensuite les données demandées par Contoso.com à Contoso.com ou effectue l’opération de création, de lecture, de mise à jour ou de suppression (CRUD) demandée par Contoso.com.
  3. La page d’application Contoso.com s’affiche dans le navigateur (ou dans le IFRAME de la partie complémentaire).

Voir également

Source link

Laisser un commentaire