A Azure Batch felé irányuló kérelmek hitelesítése
A Batch szolgáltatásra irányuló minden kérést hitelesíteni kell. A Batch szolgáltatás támogatja a megosztott kulcson vagy Azure Active Directory (Azure AD) keresztüli hitelesítést.
Hitelesítés megosztott kulccsal
A hitelesített kérelmekhez két fejlécre van szükség: a Date vagy ocp-date fejlécre és az Engedélyezési fejlécre. A következő szakaszok ismertetik, hogyan hozhatja létre ezeket a fejléceket.
A dátumfejléc megadása
Minden hitelesített kérelemnek tartalmaznia kell a kérelem egyezményes világidő (UTC) időbélyegét. Az időbélyeget az ocp-date fejlécben vagy a szabványos HTTP/ HTTPS-dátum fejlécben adhatja meg. Ha a kérelemhez mindkét fejléc meg van adva, a rendszer az ocp-date értéket használja a kérés létrehozási idejeként.
A Batch szolgáltatásnak a létrehozása után 15 percen belül meg kell kapnia egy kérést. Ezzel a szolgáltatás védelmet nyújt a biztonsági támadások, például a visszajátszásos támadások ellen. Az ocp-date fejléc azért van megadva, mert egyes HTTP-ügyfélkódtárak és proxyk automatikusan beállítják a Date fejlécet, és nem ad lehetőséget az értékének olvasására, hogy belefoglalja a hitelesített kérelembe. Ha beállítja az ocp-date értéket, hozza létre az aláírást egy üres értékkel a Date fejléchez.
Adja meg az engedélyezési fejlécet
A hitelesített kérésnek tartalmaznia kell az Engedélyezés fejlécet. A kérés hitelesítéséhez alá kell írnia a kérést a kérést küldő fiók kulcsával, és a kérés részeként át kell adnia az aláírást.
Az Engedélyezési fejléc formátuma a következő:
Authorization="SharedKey <AccountName>:<Signature>"
SharedKey Az az engedélyezési séma neve, AccountName az erőforrást kérő fiók neve, valamint Signature egy kivonatalapú üzenethitelesítési kód (HMAC), amely a kérelemből jön létre, az SHA256 algoritmus használatával számítva, majd Base64-kódolással kódolva.
A következő szakaszok az Engedélyezési fejléc felépítését ismertetik.
Az aláírási sztring létrehozása
Az aláírási sztring létrehozásakor tartsa szem előtt a következőket:
A sztring VERB része a HTTP-parancs, például a GET vagy a POST, és nagybetűsnek kell lennie.
Az aláírási sztringben szereplő fejlécek csak egyszer jelenhetnek meg.
Az összes szabványos HTTP-fejléc értékét az aláírási formátumban megjelenített sorrendben, fejlécnevek nélkül kell szerepeltetni a sztringben. Ezek a fejlécek üresek lehetnek, ha nincsenek megadva a kérés részeként; ebben az esetben csak az új sorkaraktere szükséges.
Ha a művelet POST, a Tartalomtípus és a Tartalomhossz értékre kérelemfejlécként és az aláírási sztringben szereplő értékekként van szükség. A tartalomtípust application/json;odata=minimalmetadata értékre kell állítani.
Ha az ocp-date fejléc meg van adva, a Date fejlécre nincs szükség, egyszerűen adjon meg egy üres sort az aláírási sztring Date szakaszához. Ebben az esetben kövesse a canonicalized headers sztring összeállítása szakasz utasításait az ocp-date fejléc hozzáadásához.
Az aláírási sztringben minden megjelenített új sorkarakterek (\n) kötelezőek.
Az aláírási sztring részét képező sztringek
CanonicalizedResourceés sztringekCanonicalizedHeadersfelépítéséről a jelen témakör későbbi, megfelelő szakaszaiban talál részletes információt.
A Batch szolgáltatásra irányuló kérés aláírási sztringjének kódolásához használja a következő formátumot:
StringToSign = VERB + "\n" +
Content-Encoding + "\n"
Content-Language + "\n"
Content-Length + "\n"
Content-MD5 + "\n"
Content-Type + "\n" +
Date + "\n" +
If-Modified-Since + "\n"
If-Match + "\n"
If-None-Match + "\n"
If-Unmodified-Since + "\n"
Range + "\n"
CanonicalizedHeaders +
CanonicalizedResource;
Az alábbi példa egy aláírási sztringet mutat be egy 20 másodperces időtúllépéssel rendelkező fiók feladatainak listázására irányuló kérelemhez. Ha nem létezik fejlécérték, csak az új sor karakter van megadva.
GET\n\n\n\n\n\n\n\n\n\n\n\nocp-date:Tue, 29 Jul 2014 21:49:13 GMT\n /myaccount/jobs\napi-version:2014-01-01.1.0\ntimeout:20
A sztring egyes részeit soronként lebontva:
GET\n /*HTTP Verb*/
\n /*Content-Encoding*/
\n /*Content-Language*/
\n /*Content-Length*/
\n /*Content-MD5*/
\n /*Content-Type*/
\n /*Date*/
\n /*If-Modified-Since */
\n /*If-Match */
\n /*If-None-Match */
\n /*If-Unmodified-Since*/
\n /* Range */
ocp-date:Tue, 29 Jul 2014 21:49:13 GMT\n /*CanonicalizedHeaders*/
/myaccount/jobs\napi-version:2014-04-01.1.0\ntimeout:20 /*CanonicalizedResource*/
Ezután kódolja ezt a sztringet a HMAC-SHA256 algoritmussal az UTF-8 kódolású aláírási sztringen keresztül, hozza létre az Engedélyezési fejlécet, és adja hozzá a fejlécet a kérelemhez. Az alábbi példa ugyanannak a műveletnek az Engedélyezési fejlécét mutatja be:
Authorization: SharedKey myaccount:ctzMq410TV3wS7upTBcunJTDLEJwMAZuFPfr0mrrA08=
A canonicalized headers sztring létrehozása
Az aláírási sztring CanonicalizedHeaders részének létrehozásához kövesse az alábbi lépéseket:
Kérje le az ocp-val kezdődő erőforrás összes fejlécét, beleértve az ocp-date fejlécet is.
Alakítsa át az egyes HTTP-fejlécneveket kisbetűssé.
Rendezze a fejléceket lexikálisan fejlécnév szerint növekvő sorrendbe. Minden fejléc csak egyszer jelenhet meg a sztringben.
Cserélje le a törési térközt egyetlen szóközre.
Vágja körül a kettőspont körüli térközt az élőfejben.
Fűzze hozzá az új vonal karaktert az eredményként kapott lista minden egyes canonicalizált fejlécéhez. Hozza létre a
CanonicalizedHeaderssztringet úgy, hogy a lista összes fejlécét egyetlen sztringgé fűzi össze.
A canonicalizált erőforrás-sztring létrehozása
Az CanonicalizedResource aláírási sztring része a Batch szolgáltatás azon erőforrását jelöli, amelyet a kérés megcélzott. Az erőforrás URI-jából származtatott sztring CanonicalizedResource bármely részét pontosan úgy kell kódolni, mint az URI-ban.
Tartsa szem előtt a következő szabályokat a canonicalized erőforrás-sztring összeállításához:
Ne használja az új sor karaktert (\n) a lekérdezési paraméterek értékeiben. Ha használni kell, győződjön meg arról, hogy nincs hatással a canonicalized erőforrás-sztring formátumára.
Ne használjon vesszőket a lekérdezési paraméterek értékeiben.
A sztringet a CanonicalizedResource következőképpen hozhatja létre:
Perjellel ("/" kezdődik), majd annak a fióknak a neve, amely az elérni kívánt erőforrás tulajdonosa.
Fűzze hozzá az erőforrás kódolt URI-útvonalát lekérdezési paraméterek nélkül.
Kérje le az erőforrás URI-jának összes lekérdezési paraméterét, beleértve az API-version paramétert is.
Alakítsa át az összes paraméternevet kisbetűssé.
A lekérdezési paramétereket lexikálisan, paraméternév szerint rendezze növekvő sorrendbe.
URL-dekódolja az egyes lekérdezési paraméterek nevét és értékét.
Fűzze hozzá az egyes lekérdezési paraméterek nevét és értékét a sztringhez a következő formátumban, ügyelve arra, hogy tartalmazza a kettőspontot (:) a név és az érték között:
parameter-name:parameter-valueHa egy lekérdezési paraméter egynél több értékkel rendelkezik, rendezze az összes értéket lexikálisan, majd foglalja bele őket egy vesszővel tagolt listába:
parameter-name:parameter-value-1,parameter-value-2,parameter-value-nMinden név-érték pár után fűzze hozzá az új sorkarakteret (\n).
Az aláírás kódolása
Az aláírás kódolásához hívja meg a HMAC-SHA256 algoritmust az UTF-8 kódolású aláírási sztringen, és kódolja az eredményt Base64-ként. Használja a következő formátumot (pszeudokódként jelenik meg):
Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))
Hitelesítés Azure AD
Azure AD a Microsoft több-bérlős felhőalapú címtár- és identitáskezelési szolgáltatása. A Batch szolgáltatás támogatja a Azure AD-hitelesítést.
Megjegyzés
A Azure AD hitelesítésére csak akkor van szükség, ha a Batch-fiók úgy van beállítva, hogy készleteket foglaljon le egy felhasználói előfizetésben. A készletfoglalási lehetőség új Batch-fiók létrehozásakor érhető el. Ha a fiókja úgy van beállítva, hogy készleteket foglaljon le egy Batch által felügyelt előfizetésben, akkor a Azure AD használata nem kötelező. További információ: Batch – Virtuális hálózat és egyéni rendszerképek támogatása virtuálisgép-készletekhez.
A kérések Azure AD történő hitelesítésével kapcsolatos általános információkért tekintse meg az Azure REST API-referenciát. A Azure AD a Batch szolgáltatással való használatához a következő végpontokra lesz szüksége.
A Azure AD végpont "közös" végpontja a következő:
https://login.microsoftonline.com/common
A Batch szolgáltatás erőforrás-végpontja a következő:
https://batch.core.windows.net/
A Batch-alkalmazás Azure AD való regisztrálásával kapcsolatos további információkért lásd: Hitelesítés Batch-megoldásokból az Active Directoryval.