Aperçu
DTZ Identity gère trois éléments : Rôles, Identités, et Authentifications pour chaque ressource qui vit à l’intérieur d’un Contexte. Les contextes sont les unités organisationnelles dans DTZ ; chaque entité appartient à un contexte, et le contrôle d’accès s’y applique.

Concepts clés
Contexte
Un Contexte (context-…) est le conteneur pour vos applications, services et facturation. Le créateur se voit automatiquement attribuer le rôle Administrateur du Contexte, et une identité de service comme admin@{context_id}.dtz.rocks est provisionnée pour l’automatisation.
Identités
Une Identité est un principal (utilisateur humain ou compte de service). Vous lierez les affectations de rôles aux identités.
Rôles (Abstraits vs. Concrets)
- Les rôles abstraits sont des ensembles de permissions réutilisables définis par chaque service DTZ (ex. : « administrateur containers », « administrateur objectstore », « administrateur facturation »).
- Les rôles concrets sont des rôles abstraits liés à un périmètre (soit un Contexte ou une Identité) et exprimés sous la forme d’un URI de rôle. Ce sont ceux que vous attribuez réellement.
Exemples d’URI de rôles concrets :
- Périmètre Contexte :
https://dtz.rocks/containers/admin/{context_id} - Périmètre Identité :
https://dtz.rocks/identity/admin/{identity_id}
Cette séparation maintient la cohérence de la logique des permissions tout en rendant les affectations sensibles au contexte.
Périmètres des rôles
Rôles à périmètre Identité
Impactent les actions sur l’identité elle-même (ex. : qui peut définir un mot de passe ou créer des clés API pour une identité).
Exemples courants :
https://dtz.rocks/identity/admin/{identity_id}https://dtz.rocks/billing/admin/{identity_id}https://dtz.rocks/identity/assume/{identity_id}
Rôles à périmètre Contexte
Impactent les actions dans un contexte (déploiements, logs, stockage d’objets, etc.).
Exemples courants :
https://dtz.rocks/context/admin/{context_id}https://dtz.rocks/containers/admin/{context_id}https://dtz.rocks/objectstore/admin/{context_id}https://dtz.rocks/observability/admin/{context_id}https://dtz.rocks/containerregistry/admin/{context_id}https://dtz.rocks/rss2email/admin/{context_id}
Chaque service DTZ peut définir ses propres noms de rôles et périmètres ; les URI ci-dessus sont représentatifs.
Évaluation des permissions
- Authentifier (qui vous êtes).
- Résoudre les rôles concrets pour l’appelant (URI de rôles liés à l’identité).
- Autoriser si un URI de rôle requis correspond au périmètre ciblé (contexte ou identité) et à l’action.
Exemple : attribution et utilisation d’un rôle
- Attribuez le rôle abstrait « administrateur containers » à un contexte spécifique → vous obtenez un rôle concret :
https://dtz.rocks/containers/admin/context-abc123
- Liez ce rôle à l’identité
alice@example.com. - Quand Alice appelle l’API Containers dans
context-abc123, l’URI du rôle correspond et l’action est autorisée. Le même rôle ne donne pas de droits dans d’autres contextes.
Authentification
DTZ supporte plusieurs méthodes d’authentification ; utilisez celle qui convient à votre client et à votre environnement.
Clés API
- Les clés sont créées dans l’interface utilisateur d’Identité et sont limitées à un contexte et à une identité.
- À envoyer via l’en-tête :
X-API-KEY: VOTRE_CLE_API
- Certaines intégrations tierces qui ne peuvent pas définir les en-têtes peuvent transmettre
apiKeyen paramètre de requête (à utiliser uniquement si inévitable).
Jetons Bearer (connexion par mot de passe)
Obtenez un JWT en POSTant le nom d’utilisateur/mot de passe, puis envoyez Authorization: Bearer ….
Requête du jeton :
POST https://identity.dtz.rocks/api/2021-02-21/token/auth
Content-Type: application/json
{
"username": "user",
"password": "password"
}
Utilisation du jeton :
curl -H "Authorization: Bearer eyJhb..." \
https://identity.dtz.rocks/api/2021-02-21/me
Vous pouvez aussi utiliser le JWT comme cookie nommé dtz-auth. L’authentification basique est supportée pour certains endpoints (apikey:apikey-1234).
Checklist de démarrage
- Créez ou sélectionnez un Contexte pour votre application.
- Décidez quels rôles abstraits votre application nécessite et liez-les en rôles concrets avec les périmètres appropriés (Contexte vs. Identité).
- Attribuez ces rôles concrets aux identités (utilisateurs/comptes de service) qui en ont besoin.