Qu’est-ce que DAT ?
DAT (Distributed Access Token) est une spécification de jeton d’accès utilisée par des services d’émission et de vérification qui partagent les mêmes certificats. La vérification ne nécessitant ni requête supplémentaire au service d’émission ni magasin de sessions central, les résultats d’authentification peuvent circuler entre des services plus faiblement couplés.
Composants
DAT
Chaîne qu’un utilisateur ou un service envoie avec une requête. Elle contient une date d’expiration et un ID de certificat, et peut transporter des données publiques comme chiffrées.
Certificat
Contient les algorithmes, les clés et les plages temporelles nécessaires à la création et à la vérification des DAT. L’ID du certificat, cid, est immuable ; utilisez un nouveau cid lors de la rotation des clés.
Gestionnaire
Le gestionnaire de la bibliothèque cliente stocke les certificats, crée les DAT avec un certificat actuellement utilisable pour l’émission et vérifie chaque DAT avec le certificat correspondant à son cid.
DAT CMS
Serveur facultatif qui crée, stocke et distribue les certificats aux services. Il peut fournir des certificats complets aux services d’émission et des certificats verify-only aux services qui se limitent à vérifier les jetons.
Émission et vérification
Le service d’émission choisit les données plain et secure, puis crée un DAT. Le service de vérification contrôle la date d’expiration, la signature et le ciphertext avant de transmettre les deux zones de données à l’application. Comme plain est signé mais non chiffré, n’y placez aucun secret ni donnée personnelle.
Pourquoi la vérification fonctionne encore après un changement de certificat
Dès qu’un nouveau certificat devient utilisable pour l’émission, les DAT suivants emploient son nouveau cid. Le certificat précédent reste disponible pour la vérification jusqu’à l’écoulement du TTL de tous les DAT qu’il a émis. La rotation des clés et la période de vérification des jetons existants sont ainsi gérées ensemble.
Cas d’usage de DAT
- Environnements où l’authentification et les fonctions applicatives sont gérées par des services distincts
- Environnements où plusieurs runtimes émettent ou vérifient le même format de jeton
- Systèmes qui doivent transporter des données d’autorisation à courte durée de vie sans consultation d’une session centrale
- Systèmes qui doivent séparer les informations publiques de routage des données protégées dans un même jeton
DAT ne définit pas la politique d’autorisation elle-même. La validité d’un DAT et la décision de l’application d’autoriser une requête sont deux questions distinctes.
Étapes suivantes
- Spécification DAT : champs du jeton et règles de vérification
- Certificats : clés et plages temporelles
- Spécification DAT CMS : contrat de synchronisation
- Bibliothèques : intégration à l’application