Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel bekijken we de stappen voor het roteren van uw door Microsoft Entra geverifieerde id-ondertekeningssleutels.
Vereiste voorwaarden
- Geverifieerde ID-autoriteit wordt handmatig geïntegreerd en de ondertekeningssleutels bevinden zich in uw eigen Azure Key Vault-instantie. Snelle instelling maakt gebruik van een gedeelde ondertekeningssleutel, beheerd door Microsoft, die u niet zelf kunt roteren.
- De beheerder die sleutelrotatie uitvoert, moet toegang hebben tot de sleutels in Key Vault.
De ondertekeningssleutels roteren
De openbare sleutels zijn beschikbaar in het document met de gedecentraliseerde id (DID) voor iedereen die handtekeningen moet verifiëren die zijn geproduceerd door een verlener. Voor een instantie die de did:web
methode gebruikt, is het DID-document beschikbaar op https://contoso.com/.well-known/did.json
, waarbij contoso.com een voorbeeld is.
Geverifieerde id mag pas beginnen met ondertekenen met behulp van de nieuwe sleutel als een bijgewerkte versie openbaar beschikbaar is op de webserver. Als u een implementatie met meerdere regio's gebruikt, mogelijk met Azure Content Delivery Network, kan het enige tijd duren voordat uw implementatieproces is bijgewerkt did.json
.
Om beheerders te helpen bij het rouleren van ondertekeningssleutels zonder serviceonderbrekingen, volgt het roulatieproces de volgende stappen:
Roep de signingKeys/roteer-API aan om een nieuwe ondertekeningssleutel te maken in Key Vault. Het toegangstoken in de aanroep moet voor een beheerder zijn met toegang tot sleutels in de sleutelkluis. Met deze actie wordt een nieuwe sleutel met de naam Current ingesteld in de sleutelkluis. De vorige sleutel wordt verplaatst naar oudere sleutels, maar kan nog steeds worden ingeschakeld. Het antwoord is het JSON-object authority met het kenmerk
didDocumentStatus
met eenoutOfSync
waarde, wat aangeeft dat er een discrepantie is tussen Key Vault en het openbaar beschikbaredid.json
document.Ga naar Setup in de geverifieerde id-portal. Selecteer Gedecentraliseerde id registreren en kopieer of download het bijgewerkte
did.json
bestand. Het bevat nu de nieuwe en de oude sleutels.Vervang
did.json
op alle webservers waar deze eerder is geïmplementeerd. Als u deze handmatig hebt bewerkt, moet u ervoor zorgen dat deze nog steeds geldige JSON-syntaxis heeft met behulp van een hulpprogramma zoalshttps://jsonformatter.org/
. Voordat u doorgaat, moet u ervoor zorgen dat u het nieuwedid.json
document met een browser op internet kunt ophalen.Roep de syncWithDidDocument-API aan om de nieuwe ondertekeningssleutel te gebruiken. Deze API-aanroep valideert dat Key Vault en de openbare
did.json
document overeenkomen. Als deze overeenkomen, wordt de geverifieerde id-instantie gestart met het ondertekenen met behulp van de nieuwe sleutel in Key Vault. DedidDocumentStatus
in het JSON-object van de geretourneerde instantie heeft een waarde vanpublished
. Als de waarde nog steedsoutOfSync
, is er een discrepantie tussen Key Vault en hetdid.json
document en de vorige sleutel nog steeds gebruikt voor ondertekening.
Moet ik sleutels roteren in geverifieerde id?
Technisch gesproken hoeft u sleutels voor ondertekening niet te roteren in Geverifieerde ID als u uw eigen Key Vault-exemplaar gebruikt. De huidige ondertekeningssleutel verloopt niet. Net als bij elke openbare/persoonlijke sleuteloplossing is het een best practice om sleutels periodiek te roteren.
Wat gebeurt er wanneer ik de ondertekeningssleutel draai?
Nadat u stap 1-4 succesvol hebt uitgevoerd, heeft Verified ID een nieuwe ondertekeningssleutel, en alle JSON-webtokens die vanaf dat moment worden ondertekend, worden door middel van de nieuwe sleutel ondertekend. Dit betekent dat uitgifte- en presentatieaanvragen en uitgegeven referenties worden ondertekend met behulp van de nieuwe sleutel.
Wat gebeurt er met referenties die zijn ondertekend door de oude sleutel?
Geverifieerde id-referenties uitgegeven die zijn ondertekend door een sleutel die niet meer actueel is, blijven werken als de openbare sleutel beschikbaar is in het openbare did.json
document en de sleutel niet is uitgeschakeld of verwijderd in Key Vault.
Wat gebeurt er wanneer oude ondertekeningssleutels niet meer beschikbaar zijn?
Als een sleutel die is gebruikt voor het ondertekenen van een uitgegeven geverifieerde id-referentie zich niet in het openbare did.json
document bevindt, mislukt een verificatiepoging omdat de verificator de openbare sleutel die als handtekening wordt gebruikt, niet kan oplossen. Er zijn twee scenario's waar u rekening mee moet houden.
Eerste: Geverifieerde id heeft een limiet van 10 sleutels die intern kunnen worden gebruikt. Ze bestaan uit één huidige sleutel en negen vorige sleutels. Als Key Vault 12 sleutels bevat, laadt en gebruikt Verified ID alleen de eerste tien. U kunt het did.json
document niet handmatig bewerken om oude sleutels toe te voegen, omdat dit leidt tot een onjuiste overeenkomst tussen wat geverifieerde id laadt en wat het did.json
document bevat. Het proberen aan te roepen van de syncWithDidDocument resulteert in het terugkeren van didDocumentStatus
bij outOfSync
.
Stel dat u 12 sleutels in Key Vault hebt en u wilt dat geverifieerde id sleutels 8 en 9 niet laadt in de lijst met sleutels. U moet sleutels 8 en 9 uitschakelen in Key Vault en vervolgens stap 2-4 uitvoeren.
Tweede: In dit voorbeeld, als u de sleutels 12 keer draait, laadt Verified ID de twee oudste sleutels niet meer. Geverifieerde id-referenties die zijn uitgegeven met behulp van deze twee sleutels, kunnen niet meer worden geverifieerd.
Opmerking
Uw sleutelrotatiebeleid moet worden gecoördineerd met de levensduur van uitgegeven geverifieerde id-referenties, zodat referenties worden vernieuwd of opnieuw worden uitgegeven voordat een oude sleutel buiten gebruik wordt gesteld. Een voorbeeld van een oplossing die niet werkt, is het uitgeven van geverifieerde id-referenties met een vervaldatum van 12 maanden verwijderd en tegelijkertijd een sleutelrotatiebeleid hebben om sleutels elke maand te roteren. Een dergelijke oplossing is in de problemen de laatste twee maanden van het jaar omdat oude sleutels niet meer beschikbaar zijn.
Kan ik sleutels rechtstreeks roteren in Key Vault in plaats van de Geverifieerde ID-API aan te roepen?
Gebruik de functie roteren niet in de beheerportal van Key Vault. Geverifieerde ID voert meer taken uit wanneer de API /signingKeys/rotate wordt aangeroepen dan alleen de sleutel in Key Vault te roteren.