Zum Hauptinhalt springen
Gilt für:
DuoKey Cockpit v2Microsoft 365 / PurviewDouble Key Encryption

Diese Seite dokumentiert die DKE-365-Konfigurationsfunktionen, die DuoKey Cockpit v2 bereitstellt. Für den bisherigen Cockpit-v1-Ablauf siehe die Abschnitte Einrichtung und Betrieb dieser Anleitung.

Den DKE-Dienst überprüfen und bereitstellen
Den DKE-Dienst überprüfen und bereitstellen

Zwei Endpunktfamilien​

DKE 365 stellt zwei Arten von Endpunkten bereit:

  • Eine Verwaltungsoberfläche, die Cockpit-Administratoren zum Bereitstellen, Konfigurieren und Verwalten von DKE-Diensten nutzen. Sie ist durch eine Cockpit-Benutzersitzung und die rollenbasierte Zugriffskontrolle der Plattform geschützt.
  • Das öffentliche DKE-Protokoll, das Microsoft 365 / Office direkt aufruft: GetKey ist öffentlich, während Decrypt bei entsprechender Konfiguration ein Azure-AD-Bearer-Token validiert und die gebundene Zugriffsrichtlinie durchsetzt.
API-Referenz
Detaillierte API-Endpunkte sind separat in den Entwicklerdokumenten → DKE-API dokumentiert.

Dienst-Lebenszyklus​

Lebenszyklus-ZuständeTEXT

Provisioned → Running → Disabled → Stopped (+ Failed)

Nur ein Dienst im Zustand Running bedient Decrypt-Anfragen.

Einen Dienst verwalten​

Vom Cockpit aus können Sie einen neuen DKE-Dienst bereitstellen, prüfen, ob ein Schlüssel DKE-fähig ist, ihn aktivieren (was die Azure-AD-App automatisch provisioniert), deaktivieren oder stoppen, seinen Schlüssel mit einem Überlappungsfenster rotieren sowie seine Health- und Onboarding-Hinweise (DNS / CNAME) überwachen. Microsoft 365 / Office rufen dann die öffentlichen Protokoll-Endpunkte des Dienstes (version, GetKey und Decrypt) direkt auf.

API-Referenz
Detaillierte API-Endpunkte sind separat in den Entwicklerdokumenten → DKE-API dokumentiert.
DKE-Dienst-Health — Status- und Endpunktprüfungen
DKE-Dienst-Health — Status- und Endpunktprüfungen

Felder der Dienstkonfiguration​

Ein DKE-Dienst wird konfiguriert mit:

Identität & Routing

name, description, slug (eine GUID zum Aufbau der Dienst-URL), key_id (der gebundene RSA-2048/4096-Schlüssel), key_name (in der veröffentlichten kid-URL angezeigt), status.

Algorithmus

algorithm: RSA-OAEP-256 (Standard) oder RS256.

Überlappung bei Schlüsselrotation

cache_duration_hours (Standard 24). Während der Rotation bedient der vorherige Schlüssel GetKey + Decrypt für dieses Fenster weiter (previous_key_id / previous_key_retires_at).

Azure AD / Entra

azure_tenant_id, azure_client_id, azure_audience, allowed_domains (B2B-Partnerdomänen, jede den gültigen Ausstellern ihres eigenen Mandanten zugeordnet), identity_provider_id (Graph-Anmeldedaten zur automatischen Provisionierung der App).

Optionales mTLS

mtls_enabled, mtls_client_ca_pem, mtls_allowed_subjects, mtls_header_name (Standard X-ARR-ClientCert).

Permissives Decrypt

allow_anonymous (wird nur außerhalb der Produktion berücksichtigt, wenn der Host ebenfalls den permissiven Modus aktiviert; darf niemals in der Produktion verwendet werden).

Zugriffskontrolle

access_policy_id bindet eine Zugriffsrichtlinie, die bei jedem Decrypt ausgewertet wird.

Einen DKE-Dienst bereitstellen — der geführte Assistent
Einen DKE-Dienst bereitstellen — der geführte Assistent

Beispiel einer Dienstkonfiguration​

DKE-DienstkonfigurationJSON

{
"name": "Contoso DKE",
"slug": "89c3b193-af16-4887-8031-43f88d475d9d",
"key_id": "<rsa-key-uuid>",
"key_name": "dke_key",
"azure_tenant_id": "<azure-tenant-guid>",
"azure_client_id": "<app-guid>",
"azure_audience": "https://89c3b193-af16-4887-8031-43f88d475d9d.duokey365.com",
"allowed_domains": ["partner.com"],
"algorithm": "RSA-OAEP-256",
"cache_duration_hours": 24,
"mtls_enabled": false,
"allow_anonymous": false,
"access_policy_id": "<policy-uuid>",
"identity_provider_id": "<idp-uuid>"
}

GetKey- / Decrypt-Ablauf​

1

GetKey

Office ruft das öffentliche JWK des Dienstes ab, um Inhalte mit dem öffentlichen Organisationsschlüssel zu verschlüsseln. Der veröffentlichte Schlüssel ist ein Standard-RSA-JWK, dessen kid die Dienst-URL ist (https://{slug}.{base-domain}/dke/{slug}/{key_name}/{key_id}).

2

Decrypt

Office sendet den umhüllten Schlüssel zurück. Cockpit v2 löst den Dienst auf, verlangt den Status Running, wählt den effektiven Schlüssel aus (den aktuellen oder während des Rotationsfensters den vorherigen), führt eine optionale mTLS-Validierung durch, validiert das Azure-AD-JWT, setzt die gebundene Zugriffsrichtlinie durch und entschlüsselt anschließend per RSA-OAEP im Vault. Der private Schlüssel verlässt den Vault nie.

Jedes Decrypt wird pro Client-IP im Krypto-Tarif ratenbegrenzt (1000 Anfragen/Minute).

Auswahl des DKE-Verschlüsselungsschlüssels
Auswahl des DKE-Verschlüsselungsschlüssels (RSA-2048)

Der veröffentlichte Schlüssel sowie die Anfrage-/Antwort-Payloads folgen dem DKE-Protokollformat von Microsoft, sodass Office und Purview ohne jede benutzerdefinierte Konfiguration mit dem Dienst zusammenarbeiten.

API-Referenz
Die genauen Protokoll-Payloads sind separat in den Entwicklerdokumenten → DKE-API dokumentiert.

Azure-AD-Provisionierung („Registrierung" des Dienstes)​

Es gibt keinen separaten Registrierungsschritt. Registrierung = Bereitstellen → Aktivieren. Beim enable ruft Cockpit v2, sofern der Dienst über eine identity_provider_id verfügt und noch keine Azure-App existiert, Microsoft Graph auf, um die Azure-AD-App-Registrierung zu erstellen und zu konfigurieren (Identifier-URI / Audience, Redirect-URL), und speichert anschließend die resultierenden Werte azure_client_id, azure_audience und azure_app_object_id. Die Graph-Anmeldedaten stammen entweder vom Identitätsanbieter des Dienstes oder aus dem Host-Fallback DKE_DEFAULT_GRAPH_* (der Application.ReadWrite.All benötigt).

Den Azure-AD-Identitätsanbieter konfigurieren
Den Azure-AD-Identitätsanbieter konfigurieren

DKE-Einstellungen auf Host-Ebene (Cockpit-v2-Umgebung)​

Diese Umgebungsvariablen werden auf dem Cockpit-v2-Server gesetzt:

VariableZweck
DKE_BASE_DOMAINDNS-Basis für Dienst-Verbindungs-URLs — jeder Dienst ist https://{slug}.{DKE_BASE_DOMAIN} (erfordert Wildcard-DNS + TLS)
DKE_AUDIENCE_DOMAINJWT-Audience / Azure-AD-Identifier-URI-Apex (fällt auf DKE_BASE_DOMAIN zurück)
DKE_DEFAULT_GRAPH_TENANT_ID / DKE_DEFAULT_GRAPH_CLIENT_ID / DKE_DEFAULT_GRAPH_CLIENT_SECRETFallback-Microsoft-Graph-App zur automatischen Provisionierung von Azure-AD-Registrierungen
DKE_ALLOW_PERMISSIVE_MODEOpt-in für permissives Decrypt, nur für Entwicklung/Test — muss in der Produktion nicht gesetzt sein
DKE_TENANT_DECRYPT_RPS_MAXObergrenze der Decrypt-Rate pro Mandant (Standard 100)
DKE_JWKS_CACHE_TTL_SECSAzure-AD-JWKS-Cache-TTL für die Validierung des Decrypt-Tokens

Microsoft Purview​

DKE ist der Purview- / MIP-DKE-Schlüsselspeicher: Vertraulichkeitsbezeichnungen vom Typ Double Key Encryption verweisen auf diese GetKey- / Decrypt-Endpunkte (die Bezeichnungen werden auf Microsoft-Seite konfiguriert — siehe Vertraulichkeitsbezeichnungen und Microsoft Purview). Cockpit v2 bietet zusätzlich einen separaten Purview-DLP-App-Typ für die Integration der Datenverlustprävention.

Fahren Sie fort mit Zugriffsrichtlinien, um zu steuern, wer, von wo und wann einen DKE-Schlüssel verwenden darf.