Authentification et autorisation Azure Relay

Il existe deux façons d’authentifier et d’autoriser l’accès aux ressources Azure Relay : l’ID Microsoft Entra et les signatures d’accès partagé (SAP). Cet article vous explique l’utilisation de ces deux types de mécanismes de sécurité.

Microsoft Entra ID

L’intégration de Microsoft Entra pour les ressources Azure Relay fournit un contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour un contrôle précis sur l’accès d’un client aux ressources. Vous pouvez utiliser Azure RBAC pour accorder des autorisations à un principal de sécurité, qui peut être un utilisateur, un groupe ou un principal de service d’application. Le principal de sécurité est authentifié par Microsoft Entra ID pour retourner un jeton OAuth 2.0. Le jeton peut être utilisé pour autoriser une demande d'accès à une ressource Azure Relay.

Pour plus d’informations sur l’authentification avec Microsoft Entra ID, consultez les articles suivants :

Important

Autoriser les utilisateurs ou les applications avec un jeton OAuth 2.0 retourné par Microsoft Entra ID garantit une meilleure sécurité et une plus grande simplicité d’utilisation que les signatures d’accès partagé (SAP). Microsoft Entra ID vous évite d’avoir à stocker des jetons dans votre code et d’être ainsi exposé au risque de failles de sécurité. Nous vous recommandons d’utiliser l’ID Microsoft Entra avec vos applications Azure Relay lorsque cela est possible.

Rôles intégrés

Pour Azure Relay, la gestion des espaces de noms et de toutes les ressources associées via le portail Azure et l’API de gestion des ressources Azure est déjà protégée à l’aide du modèle Azure RBAC. Azure fournit les rôles Azure intégrés ci-dessous pour autoriser l’accès à un espace de noms Relay :

Rôle Description
Propriétaire d’Azure Relay Utilisez ce rôle pour octroyer l’accès complet aux ressources Azure Relay.
Écouteur Azure Relay Utilisez ce rôle pour octroyer l’accès écoute et lecture d’entité aux ressources Azure Relay.
Expéditeur Azure Relay Utilisez ce rôle pour octroyer l’accès envoi et lecture d’entité aux ressources Azure Relay.

Signature d’accès partagé

Les applications peuvent s’authentifier auprès d’Azure Relay à l’aide de l’authentification par signature d’accès partagé. L’authentification par signature d’accès partagé permet aux applications de s’authentifier auprès du service Azure Relay à l’aide d’une clé d’accès configurée dans l’espace de noms Relay. Vous pouvez ensuite utiliser cette clé pour générer un jeton de signature d’accès partagé que les clients peuvent alors utiliser pour s’authentifier auprès du service Azure Relay.

L’authentification par signature d’accès partagé vous permet d’accorder un accès utilisateur aux ressources Azure Relay avec des droits spécifiques. L’authentification SAP implique la configuration d’une clé de chiffrement avec les droits associés sur une ressource. Les clients peuvent alors accéder à cette ressource en présentant un jeton SAS qui se compose de la ressource URI à laquelle accéder et une échéance signée avec la clé configurée.

Vous pouvez configurer des clés pour SAP dans un espace de noms Relay. Contrairement à la messagerie Service Bus, les connexions hybrides Relay prennent en charge les expéditeurs non autorisés ou anonymes. Vous pouvez activer l’accès anonyme pour l’entité lors de sa création, comme indiqué dans la capture d’écran suivante du portail :

A dialog box titled

Pour utiliser SAP, vous pouvez configurer un objet SharedAccessAuthorizationRule dans un espace de noms Relay, qui est constitué des éléments suivants :

  • Nom de clé qui identifie la règle.
  • clé primaire est une clé de chiffrement utilisée pour signer/valider les jetons SAS.
  • clé secondaire est une clé de chiffrement utilisée pour signer/valider les jetons SAS.
  • droits représentant la collection des droits écouter, envoyer ou gérer les droits accordés.

Les règles d’autorisation configurées au niveau de l’espace de noms peuvent accorder l’accès à toutes les connexions Relay dans un espace de noms pour les clients disposant de jetons signés à l’aide de la clé correspondante. Un maximum de 12 règles d’autorisation peut être configuré dans un espace de noms Relay. Par défaut, un élément SharedAccessAuthorizationRule avec tous les droits est configuré pour chaque espace de noms dès sa mise en service initiale.

Pour accéder à une entité, le client requiert un jeton SAP créé à l’aide d’une règle SharedAccessAuthorizationRulespécifique. Le jeton SAS est généré à l’aide du code HMAC-SHA256 d’une chaîne de ressource qui se compose de l’URI de la ressource à laquelle vous souhaitez accéder et d’une échéance avec une clé de chiffrement associée à la règle d’autorisation.

La prise en charge de l’authentification SAP pour Azure Relay est incluse dans le Kit de développement logiciel (SDK) Azure .NET, versions 2.0 et ultérieures. SAP inclut l’assistance pour SharedAccessAuthorizationRule. Toutes les API qui acceptent une chaîne de connexion en tant que paramètre incluent la prise en charge des chaînes de connexion des services SAS.

Exemples

Étapes suivantes