Så här använder du symmetriska nycklar via HTTPS utan SDK
I den här artikeln ska du etablera en enhet med symmetriska nycklar via HTTPS utan att använda en Azure IoT DPS-enhets-SDK. De flesta språk tillhandahåller bibliotek för att skicka HTTP-begäranden, men i stället för att fokusera på ett visst språk använder du kommandoradsverktyget cURL i den här artikeln för att skicka och ta emot via HTTPS.
Du kan följa stegen i den här artikeln på en Linux- eller Windows-dator. Om du kör på Windows-undersystem för Linux (WSL) eller körs på en Linux-dator kan du ange alla kommandon i det lokala systemet i en Bash-prompt. Om du kör i Windows anger du alla kommandon i det lokala systemet i en GitBash-prompt.
Det finns olika sökvägar i den här artikeln beroende på vilken typ av registreringspost du väljer att använda. När du har installerat förhandskraven måste du läsa översikten innan du fortsätter.
Förutsättningar
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Slutför stegen i Konfigurera IoT Hub Device Provisioning Service med Azure Portal.
Kontrollera att Python 3.7 eller senare är installerat på datorn. Du kan kontrollera din version av Python genom att köra
python --version
.Om du kör i Windows installerar du den senaste versionen av Git. Kontrollera att Git har lagts till i de miljövariabler som är tillgängliga för kommandofönstret. Se Software Freedom Conservancys Git-klientverktyg för den senaste versionen av
git
verktyg som ska installeras, vilket inkluderar Git Bash, kommandoradsappen som du kan använda för att interagera med din lokala Git-lagringsplats. I Windows anger du alla kommandon i det lokala systemet i en GitBash-prompt.Azure CLI. Du har två alternativ för att köra Azure CLI-kommandon i den här artikeln:
- Använd Azure Cloud Shell, ett interaktivt gränssnitt som kör CLI-kommandon i webbläsaren. Det här alternativet rekommenderas eftersom du inte behöver installera något. Om du använder Cloud Shell för första gången loggar du in på Azure Portal. Följ stegen i Cloud Shell-snabbstarten för att starta Cloud Shell och välj Bash-miljön.
- Du kan också köra Azure CLI på din lokala dator. Om Azure CLI redan är installerat kör du
az upgrade
för att uppgradera CLI och tillägg till den aktuella versionen. Information om hur du installerar Azure CLI finns i Installera Azure CLI.
Om du kör i en Linux- eller WSL-miljö öppnar du en Bash-prompt för att köra kommandon lokalt. Om du kör i en Windows-miljö öppnar du en GitBash-prompt.
Översikt
I den här artikeln kan du använda antingen en enskild registrering eller en registreringsgrupp för att etablera via DPS.
För en enskild registrering slutför du Använd individuell registrering.
För en registreringsgrupp slutför du Använd en registreringsgrupp.
När du har skapat posten för den enskilda registreringen eller registreringsgruppen fortsätter du med att skapa en SAS-token och registrera enheten med DPS.
Använda en enskild registrering
Om du vill skapa en ny enskild registrering som ska användas för den här artikeln kan du använda kommandot az iot dps enrollment create för att skapa en enskild registrering för symmetrisk nyckelattestering.
Följande kommando skapar en registreringspost med standardallokeringsprincipen för DPS-instansen och låter DPS tilldela de primära och sekundära nycklarna för enheten:
az iot dps enrollment create -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --attestation-type symmetrickey
Ersätt namnet på resursgruppen och DPS-instansen.
Registrerings-ID:t är registrerings-ID:t för din enhet. Registrerings-ID:t är en skiftlägeskänslig sträng (upp till 128 tecken lång) med alfanumeriska tecken plus specialtecken:
'-'
,'.'
,'_'
,':'
. Det sista tecknet måste vara alfanumeriskt eller streck ('-'
). Kontrollera att registrerings-ID:t som du använder i kommandot följer det här formatet.
De tilldelade symmetriska nycklarna returneras i attesteringsegenskapen i svaret:
{
"allocationPolicy": null,
"attestation": {
"symmetricKey": {
"primaryKey": "G3vn0IZH9oK3d4wsxFpWBtd2KUrtjI+39dZVRf26To8w9OX0LaFV9yZ93ELXY7voqHEUsNhnb9bt717UP87KxA==",
"secondaryKey": "4lNxgD3lUAOEOied5/xOocyiUSCAgS+4b9OvXLDi8ug46/CJzIn/3rN6Ys6gW8SMDDxMQDaMRnIoSd1HJ5qn/g=="
},
"tpm": null,
"type": "symmetricKey",
"x509": null
},
...
}
Anteckna primärnyckeln och registrerings-ID :t (registrerings-ID) för din enskilda registreringspost. Du använder dem senare i den här artikeln.
Om du vill använda en befintlig enskild registrering för den här artikeln kan du hämta primärnyckeln med kommandot az iot dps enrollment show :
az iot dps enrollment show -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --show-keys true
Använda en registreringsgrupp
Om du vill skapa en ny registreringsgrupp som ska användas för den här artikeln kan du använda kommandot az iot dps enrollment-group create för att skapa en registreringsgrupp för symmetrisk nyckelattestering.
Följande kommando skapar en registreringsgrupppost med standardallokeringsprincipen för DPS-instansen och låter DPS tilldela de primära och sekundära nycklarna för registreringsgruppen:
az iot dps enrollment-group create -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id}
Ersätt namnet på resursgruppen och DPS-instansen.
Registrerings-ID:t är en skiftlägeskänslig sträng (upp till 128 tecken lång) med alfanumeriska tecken plus specialtecken:
'-'
,'.'
,'_'
,':'
. Det sista tecknet måste vara alfanumeriskt eller streck ('-'
). Det kan vara valfritt namn som du väljer att använda för registreringsgruppen.
De tilldelade symmetriska nycklarna returneras i attesteringsegenskapen i svaret:
{
"allocationPolicy": null,
"attestation": {
"symmetricKey": {
"primaryKey": "G3vn0IZH9oK3d4wsxFpWBtd2KUrtjI+39dZVRf26To8w9OX0LaFV9yZ93ELXY7voqHEUsNhnb9bt717UP87KxA==",
"secondaryKey": "4lNxgD3lUAOEOied5/xOocyiUSCAgS+4b9OvXLDi8ug46/CJzIn/3rN6Ys6gW8SMDDxMQDaMRnIoSd1HJ5qn/g=="
},
"tpm": null,
"type": "symmetricKey",
"x509": null
},
...
}
Anteckna primärnyckeln.
Om du vill använda en befintlig enskild registrering för den här artikeln kan du hämta primärnyckeln med kommandot az iot dps enrollment-group show :
az iot dps enrollment-group show -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --show-keys true
Härled en enhetsnyckel
När du använder symmetrisk nyckelattestering med gruppregistreringar använder du inte registreringsgruppnycklarna direkt. I stället härleder du en unik nyckel för varje enhet från registreringsgruppnyckeln. Mer information finns i Gruppera registreringar med symmetriska nycklar.
I det här avsnittet genererar du en enhetsnyckel från registreringsgruppens primärnyckel för att beräkna en HMAC-SHA256 av enhetens unika registrerings-ID. Resultatet konverteras sedan till Base64-format.
Generera din unika nyckel med hjälp av openssl. Du använder följande Bash-gränssnittsskript. Ersätt
{primary-key}
med registreringsgruppens primärnyckel som du kopierade tidigare och ersätt{contoso-simdevice}
med det registrerings-ID som du vill använda för enheten. Registrerings-ID:t är en skiftlägeskänslig sträng (upp till 128 tecken lång) med alfanumeriska tecken plus specialtecken:'-'
,'.'
,'_'
,':'
. Det sista tecknet måste vara alfanumeriskt eller streck ('-'
).KEY={primary-key} REG_ID={contoso-simdevice} keybytes=$(echo $KEY | base64 --decode | xxd -p -u -c 1000) echo -n $REG_ID | openssl sha256 -mac HMAC -macopt hexkey:$keybytes -binary | base64
Skriptet matar ut något som liknar följande nyckel:
p3w2DQr9WqEGBLUSlFi1jPQ7UWQL4siAGy75HFTFbf8=
Anteckna den härledda enhetsnyckeln och registrerings-ID:t som du använde för att generera den. Du använder dem i nästa avsnitt.
Du kan också använda Azure CLI eller PowerShell för att härleda en enhetsnyckel. Mer information finns i Härled en enhetsnyckel.
Skapa en SAS-token
När du använder symmetrisk nyckelattestering autentiserar enheter med DPS med hjälp av en SAS-token (Signatur för delad åtkomst). För enheter som etablerar via en enskild registrering signeras token med antingen den primära eller sekundära nyckeln som angetts i registreringsposten. För en enhetsetablering via en registreringsgrupp signeras token med hjälp av en härledd enhetsnyckel, som i sin tur har genererats med antingen den primära eller sekundära nyckeln i registreringsgruppens post. Token anger en förfallotid och en målresurs-URI.
Följande Python-skript kan användas för att generera en SAS-token:
from base64 import b64encode, b64decode
from hashlib import sha256
from time import time
from urllib.parse import quote_plus, urlencode
from hmac import HMAC
def generate_sas_token(uri, key, policy_name, expiry=3600):
ttl = time() + expiry
sign_key = "%s\n%d" % ((quote_plus(uri)), int(ttl))
print(sign_key)
signature = b64encode(HMAC(b64decode(key), sign_key.encode('utf-8'), sha256).digest())
rawtoken = {
'sr' : uri,
'sig': signature,
'se' : str(int(ttl))
}
if policy_name is not None:
rawtoken['skn'] = policy_name
return 'SharedAccessSignature ' + urlencode(rawtoken)
uri = '[resource_uri]'
key = '[device_key]'
expiry = [expiry_in_seconds]
policy= '[policy]'
print(generate_sas_token(uri, key, policy, expiry))
Där:
[resource_uri]
är URI:n för den resurs som du försöker komma åt med den här token. För DPS är det av formuläret[dps_id_scope]/registrations/[dps_registration_id]
, där[dps_id_scope]
är ID-omfånget för din DPS-instans och[dps_registration_id]
är det registrerings-ID som du använde för din enhet.Du kan hämta ID-omfånget för DPS-instansen från fönstret Översikt för din instans i Azure Portal, eller så kan du använda kommandot az iot dps show Azure CLI (ersätt platshållarna med namnet på resursgruppen och DPS-instansen):
az iot dps show -g {resource_group_name} --name {dps_name}
[device_key]
är enhetsnyckeln som är associerad med enheten. Den här nyckeln är antingen den som anges eller genereras automatiskt åt dig i en enskild registrering eller en härledd nyckel för en gruppregistrering.Om du använder en enskild registrering använder du den primära nyckel som du sparade i Använd en enskild registrering.
Om du använder en registreringsgrupp använder du den härledda enhetsnyckeln som du genererade i Använd en registreringsgrupp.
[expiry_in_seconds]
är giltighetsperioden för den här SAS-token i sekunder.[policy]
är den princip som enhetsnyckeln är associerad med. För REGISTRERING av DPS-enheter är principen hårdkodad till "registrering".
En exempeluppsättning med indata för en enhet som anropas my-symkey-device
med en giltighetsperiod på 30 dagar kan se ut så här.
uri = '0ne00111111/registrations/my-symkey-device'
key = '18RQk/hOPJR9EbsJlk2j8WA6vWaj/yi+oaYg7zmxfQNdOyMSu+SJ8O7TSlZhDJCYmn4rzEiVKIzNiVAWjLxrGA=='
expiry = 2592000
policy='registration'
Ändra skriptet för enheten och DPS-instansen och spara det som en Python-fil. till exempel generate_token.py. Kör skriptet, till exempel python generate_token.py
. Den bör mata ut en SAS-token som liknar följande:
0ne00111111%2Fregistrations%2Fmy-symkey-device
1663952627
SharedAccessSignature sr=0ne00111111%2Fregistrations%2Fmy-symkey-device&sig=eNwg52xQdFTNf7bgPAlAJBCIcONivq%2Fck1lf3wtxI4A%3D&se=1663952627&skn=registration
Kopiera och spara hela raden som börjar med SharedAccessSignature
. Den här raden är SAS-token. Du behöver det i följande avsnitt.
Mer information om hur du använder SAS-token med DPS och deras struktur finns i Kontrollera åtkomst till DPS med SAS.
Registrera din enhet
Du anropar REST API:et Registrera enhet för att etablera enheten via DPS.
Använd följande curl-kommando:
curl -L -i -X PUT -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -H 'Authorization: [sas_token]' -d '{"registrationId": "[registration_id]"}' https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/register?api-version=2019-03-31
Där:
-L
instruerar curl att följa HTTP-omdirigeringar.–i
instruerar curl att inkludera protokollhuvuden i utdata. Dessa rubriker är inte absolut nödvändiga, men de kan vara användbara.-X PUT
meddelar curl att det här är ett HTTP PUT-kommando. Krävs för det här API-anropet.-H 'Content-Type: application/json'
meddelar DPS att vi publicerar JSON-innehåll och måste vara "application/json".-H 'Content-Encoding: utf-8'
anger för DPS vilken kodning vi använder för meddelandetexten. Ange rätt värde för operativsystemet/klienten. men det är i allmänhetutf-8
.-H 'Authorization: [sas_token]'
instruerar DPS att autentisera med din SAS-token. Ersätt [sas_token] med den token som du genererade i Skapa en SAS-token.-d '{"registrationId": "[registration_id]"}'
är parametern–d
"data" eller brödtexten i meddelandet som vi publicerar. Det måste vara JSON i form av {"registrationId":"[registration_id"}. Observera att för curl är den insvept i enkla citattecken; Annars måste du undvika de dubbla citattecknarna i JSON.Slutligen är den sista parametern url:en att publicera till. För "vanlig" (dvs. inte lokal) DPS används den globala DPS-slutpunkten global.azure-devices-provisioning.net:
https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/register?api-version=2019-03-31
. Observera att du måste ersätta[dps_scope_id]
och[registration_id]
med lämpliga värden.
Till exempel:
curl -L -i -X PUT -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -H 'Authorization: SharedAccessSignature sr=0ne00111111%2Fregistrations%2Fmy-symkey-device&sig=eNwg52xQdFTNf7bgPAlAJBCIcONivq%2Fck1lf3wtxI4A%3D&se=1663952627&skn=registration' -d '{"registrationId": "my-symkey-device"}' https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-symkey-device/register?api-version=2021-06-01
Ett lyckat anrop har ett svar som liknar följande:
HTTP/1.1 202 Accepted
Date: Wed, 31 Aug 2022 22:02:49 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Location: https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-symkey-device/register
Retry-After: 3
x-ms-request-id: a021814f-0cf6-4ce9-a1e9-ead7eb5118d9
Strict-Transport-Security: max-age=31536000; includeSubDomains
{"operationId":"5.316aac5bdc130deb.b1e02da8-c3a0-4ff2-a121-7ea7a6b7f550","status":"assigning"}
Svaret innehåller ett åtgärds-ID och en status. I det här fallet är statusen inställd på assigning
. DPS-registrering är potentiellt en tidskrävande åtgärd, så den görs asynkront. Vanligtvis söker du efter status med rest-API:et för åtgärdsstatussökning för att avgöra när enheten har tilldelats eller om ett fel har inträffat.
Giltiga statusvärden för DPS är:
assigned
: Returvärdet från statusanropet anger vilken IoT Hub som enheten tilldelades till.assigning
: åtgärden körs fortfarande.disabled
: Registreringsposten är inaktiverad i DPS, så enheten kan inte tilldelas.failed
: tilldelningen misslyckades. Det kommer att finnas enerrorCode
ocherrorMessage
returneras i enregistrationState
post i svaret för att ange vad som misslyckades.unassigned
Om du vill anropa API:et för åtgärdsstatussökning använder du följande curl-kommando:
curl -L -i -X GET -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -H 'Authorization: [sas_token]' https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/operations/[operation_id]?api-version=2019-03-31
Du använder samma ID-omfång, registrerings-ID och SAS-token som du gjorde i begäran registrera enhet . Använd åtgärds-ID:t som returnerades i svaret Registrera enhet .
Till exempel:
curl -L -i -X GET -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -H 'Authorization: SharedAccessSignature sr=0ne00111111%2Fregistrations%2Fmy-symkey-device&sig=eNwg52xQdFTNf7bgPAlAJBCIcONivq%2Fck1lf3wtxI4A%3D&se=1663952627&skn=registration' https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-symkey-device/operations/5.316aac5bdc130deb.f4f1828c-4dab-4ca9-98b2-dfc63b5835d6?api-version=2021-06-01
Följande utdata visar svaret för en enhet som har tilldelats. Observera att egenskapen status
är assigned
och att registrationState.assignedHub
egenskapen är inställd på den IoT-hubb där enheten etablerades.
HTTP/1.1 200 OK
Date: Wed, 31 Aug 2022 22:05:23 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
x-ms-request-id: ffb98d42-023e-4e75-afb0-1807ff091cbb
Strict-Transport-Security: max-age=31536000; includeSubDomains
{
"operationId":"5.316aac5bdc130deb.b1e02da8-c3a0-4ff2-a121-7ea7a6b7f550",
"status":"assigned",
"registrationState":{
"registrationId":"my-symkey-device",
"createdDateTimeUtc":"2022-08-31T22:02:50.5163352Z",
"assignedHub":"MyExampleHub.azure-devices.net",
"deviceId":"my-symkey-device",
"status":"assigned",
"substatus":"initialAssignment",
"lastUpdatedDateTimeUtc":"2022-08-31T22:02:50.7370676Z",
"etag":"IjY5MDAzNTUyLTAwMDAtMDMwMC0wMDAwLTYzMGZkYThhMDAwMCI="
}
}
Skicka ett telemetrimeddelande
Innan du kan skicka ett telemetrimeddelande måste du skapa en SAS-token för den IoT-hubb som enheten tilldelades till. Du signerar den här token med samma primära nyckel eller härledda enhetsnyckel som du använde för att signera SAS-token för din DPS-instans.
Skapa en SAS-token för din IoT-hubb
Om du vill skapa SAS-token kan du köra samma kod som du gjorde för att skapa token för DPS-instansen med följande ändringar:
uri = '[resource_uri]'
key = '[device_key]'
expiry = [expiry_in_seconds]
policy= None
Där:
[resource_uri]
är URI:n för den resurs som du försöker komma åt med den här token. För en enhet som skickar meddelanden till en IoT-hubb är den i formuläret[iot-hub-host-name]/devices/[device-id]
.För
[iot-hub-host-name]
använder du IoT Hub-värdnamnet som returnerades iassignedHub
egenskapen i föregående avsnitt.För
[device-id]
använder du enhets-ID:t som returnerades ideviceId
egenskapen i föregående avsnitt.
[device_key]
är enhetsnyckeln som är associerad med enheten. Den här nyckeln är antingen den som anges eller genereras automatiskt åt dig i en enskild registrering eller en härledd nyckel för en gruppregistrering. (Det är samma nyckel som du använde tidigare för att skapa en token för DPS.)Om du använder en enskild registrering använder du den primära nyckel som du sparade i Använd en enskild registrering.
Om du använder en registreringsgrupp använder du den härledda enhetsnyckeln som du genererade i Använd en registreringsgrupp.
[expiry_in_seconds]
är giltighetsperioden för den här SAS-token i sekunder.policy=None
Ingen princip krävs för en enhet som skickar telemetri till en IoT-hubb, så den här parametern är inställd påNone
.
En exempeluppsättning med indata för en enhet som kallas my-symkey-device
för att skicka till en IoT Hub med namnet MyExampleHub
med en token-giltighetsperiod på en timme kan se ut så här:
uri = 'MyExampleHub.azure-devices.net/devices/my-symkey-device'
key = '18RQk/hOPJR9EbsJlk2j8WA6vWaj/yi+oaYg7zmxfQNdOyMSu+SJ8O7TSlZhDJCYmn4rzEiVKIzNiVAWjLxrGA=='
expiry = 3600
policy= None
Följande utdata visar en SAS-exempeltoken för dessa indata:
SharedAccessSignature sr=MyExampleHub.azure-devices.net%2Fdevices%2Fmy-symkey-device&sig=f%2BwW8XOKeJOtiPc9Iwjc4OpExvPM7NlhM9qxN2a1aAM%3D&se=1663119026
Mer information om hur du skapar SAS-token för IoT Hub, inklusive exempelkod på andra programmeringsspråk, finns i Kontrollera åtkomst till IoT Hub med signaturer för delad åtkomst.
Kommentar
Som en bekvämlighet kan du använda kommandot Azure CLI az iot hub generate-sas-token för att hämta en SAS-token för en enhet som registrerats med en IoT-hubb. Följande kommando genererar till exempel en SAS-token med en varaktighet på en timme. {iothub_name}
För behöver du bara den första delen av värd-hame, till exempel MyExampleHub
.
az iot hub generate-sas-token -d {device_id} -n {iothub_name}
Skicka data till din IoT-hubb
Du anropar REST-API:et för IoT Hub Send Device Event för att skicka telemetri till enheten.
Använd följande curl-kommando:
curl -L -i -X POST -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -H 'Authorization: [sas_token]' -d '{"temperature": 30}' https://[assigned_iot_hub_name].azure-devices.net/devices/[device_id]/messages/events?api-version=2020-03-13
Där:
-X POST
meddelar curl att det här är ett HTTP POST-kommando. Krävs för det här API-anropet.-H 'Content-Type: application/json'
meddelar IoT Hub att vi publicerar JSON-innehåll och måste vara "application/json".-H 'Content-Encoding: utf-8'
anger för IoT Hub vilken kodning vi använder för meddelandetexten. Ange rätt värde för operativsystemet/klienten. men det är i allmänhetutf-8
.-H 'Authorization: [sas_token]'
instruerar IoT Hub att autentisera med din SAS-token. Ersätt[sas_token]
med den token som du genererade för den tilldelade IoT-hubben.-d '{"temperature": 30}'
är parametern–d
"data" eller brödtexten i meddelandet som vi publicerar. I den här artikeln publicerar vi en datapunkt med en enda temperatur. Innehållstypen angavs som program/json, så för den här begäran är brödtexten JSON. Observera att för curl är den insvept i enkla citattecken; Annars måste du undvika de dubbla citattecknarna i JSON.Den sista parametern är url:en som ska skickas till. För API:et Skicka enhetshändelse är URL:en:
https://[assigned_iot_hub_name].azure-devices.net/devices/[device_id]/messages/events?api-version=2020-03-13
.Ersätt
[assigned_iot_hub_name]
med namnet på den IoT-hubb som enheten har tilldelats till.Ersätt
[device_id]
med enhets-ID:t som tilldelades när du registrerade enheten. För enheter som etablerar via registreringsgrupper är enhets-ID:t registrerings-ID. För enskilda registreringar kan du, om du vill, ange ett enhets-ID som skiljer sig från registrerings-ID:t i registreringsposten.
Till exempel för en enhet med ett enhets-ID my-symkey-device
för att skicka en telemetridatapunkt till en IoT-hubb med namnet MyExampleHub
:
curl -L -i -X POST -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -H 'Authorization: SharedAccessSignature sr=MyExampleHub.azure-devices.net%2Fdevices%2Fmy-symkey-device&sig=f%2BwW8XOKeJOtiPc9Iwjc4OpExvPM7NlhM9qxN2a1aAM%3D&se=1663119026' -d '{"temperature": 30}' https://MyExampleHub.azure-devices.net/devices/my-symkey-device/messages/events?api-version=2020-03-13
Ett lyckat anrop har ett svar som liknar följande:
HTTP/1.1 204 No Content
Content-Length: 0
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: 9e278582-3561-417b-b807-76426195920f
Date: Wed, 14 Sep 2022 00:32:53 GMT
Nästa steg
Mer information om symmetrisk nyckelattestering finns i Symmetrisk nyckelattestering.
Mer information om SAS-token och deras struktur finns i Kontrollera åtkomst till DPS med SAS.