Az Azure Event Grid közzétételi ügyfeleinek hitelesítése hozzáférési kulcsokkal vagy közös hozzáférésű jogosultságkódokkal
Ez a cikk információkat nyújt az eseményeket az Azure Event Grid-témakörökben, tartományokban, partnernévterekben a hozzáférési kulcs vagy a közös hozzáférésű jogosultságkód (SAS) jogkivonat használatával közzétevő ügyfelek hitelesítéséről.
Fontos
- A felhasználók vagy alkalmazások Microsoft Entra-identitások használatával történő hitelesítése és engedélyezése kiváló biztonságot és egyszerű használatot biztosít a kulcsalapú és közös hozzáférésű jogosultságkódok (SAS) hitelesítésével szemben. A Microsoft Entra-azonosítóval nincs szükség a kódban való hitelesítéshez használt titkos kulcsok tárolására, és nem kockáztathatja a biztonsági réseket. Határozottan javasoljuk, hogy használja a Microsoft Entra ID-t az Azure Event Grid esemény-közzétételi alkalmazásaival. További információ: Közzétételi ügyfelek hitelesítése a Microsoft Entra-azonosítóval.
- A Microsoft Entra-hitelesítés a névtérrel kapcsolatos témakörökben nem támogatott.
Hitelesítés hozzáférési kulccsal
A hozzáférési kulcs hitelesítése a hitelesítés legegyszerűbb formája. A hozzáférési kulcsot HTTP-fejlécként vagy URL-lekérdezési paraméterként is átadhatja.
Hozzáférési kulcs EGY HTTP-fejlécben
Adja át a hozzáférési kulcsot a HTTP-fejléc értékeként: aeg-sas-key
.
aeg-sas-key: XXXXXXXXXXXXXXXXXX0GXXX/nDT4hgdEj9DpBeRr38arnnm5OFg==
Hozzáférési kulcs lekérdezési paraméterként
Lekérdezési paraméterként is megadható aeg-sas-key
.
https://<yourtopic>.<region>.eventgrid.azure.net/api/events?aeg-sas-key=XXXXXXXX53249XX8XXXXX0GXXX/nDT4hgdEj9DpBeRr38arnnm5OFg==
A témakörhöz vagy tartományhoz tartozó hozzáférési kulcsok lekéréséről a Hozzáférési kulcsok lekérése című témakörben talál útmutatást.
Hitelesítés SAS használatával
Az Event Grid-erőforrások SAS-jogkivonatai közé tartozik az erőforrás, a lejárati idő és az aláírás. Az SAS-jogkivonat formátuma: r={resource}&e={expiration}&s={signature}
.
Az erőforrás annak az Event Grid-témakörnek az elérési útja, amelyre eseményeket küld. Egy érvényes erőforrás-elérési út például a következő: https://<yourtopic>.<region>.eventgrid.azure.net/api/events
. A támogatott API-verziók megtekintéséhez tekintse meg a Microsoft.EventGrid erőforrástípusokat.
Először programozott módon hozzon létre egy SAS-jogkivonatot, majd használja a fejlécet vagy Authorization SharedAccessSignature
a aeg-sas-token
fejlécet az Event Grid-hitelesítéshez.
SAS-jogkivonat létrehozása programozott módon
Az alábbi példa létrehoz egy SAS-jogkivonatot az Event Gridhez való használatra:
static string BuildSharedAccessSignature(string resource, DateTime expirationUtc, string key)
{
const char Resource = 'r';
const char Expiration = 'e';
const char Signature = 's';
string encodedResource = HttpUtility.UrlEncode(resource);
var culture = CultureInfo.CreateSpecificCulture("en-US");
var encodedExpirationUtc = HttpUtility.UrlEncode(expirationUtc.ToString(culture));
string unsignedSas = $"{Resource}={encodedResource}&{Expiration}={encodedExpirationUtc}";
using (var hmac = new HMACSHA256(Convert.FromBase64String(key)))
{
string signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(unsignedSas)));
string encodedSignature = HttpUtility.UrlEncode(signature);
string signedSas = $"{unsignedSas}&{Signature}={encodedSignature}";
return signedSas;
}
}
def generate_sas_token(uri, key, expiry=3600):
ttl = datetime.datetime.utcnow() + datetime.timedelta(seconds=expiry)
encoded_resource = urllib.parse.quote_plus(uri)
encoded_expiration_utc = urllib.parse.quote_plus(ttl.isoformat())
unsigned_sas = f'r={encoded_resource}&e={encoded_expiration_utc}'
signature = b64encode(HMAC(b64decode(key), unsigned_sas.encode('utf-8'), sha256).digest())
encoded_signature = urllib.parse.quote_plus(signature)
token = f'r={encoded_resource}&e={encoded_expiration_utc}&s={encoded_signature}'
return token
Aeg-sas-token fejléc használata
Íme egy példa az SAS-jogkivonat fejlécértékként való átadására aeg-sas-token
.
aeg-sas-token: r=https%3a%2f%2fmytopic.eventgrid.azure.net%2fapi%2fevents&e=6%2f15%2f2017+6%3a20%3a15+PM&s=XXXXXXXXXXXXX%2fBPjdDLOrc6THPy3tDcGHw1zP4OajQ%3d
Engedélyezés fejlécének használata
Íme egy példa az SAS-jogkivonat fejlécértékként való átadására Authorization
.
Authorization: SharedAccessSignature r=https%3a%2f%2fmytopic.eventgrid.azure.net%2fapi%2fevents&e=6%2f15%2f2017+6%3a20%3a15+PM&s=XXXXXXXXXXXXX%2fBPjdDLOrc6THPy3tDcGHw1zP4OajQ%3d
További lépések
Az eseménykézbesítési hitelesítéssel kapcsolatos információkért tekintse meg az eseménykezelőkkel való hitelesítést az események kézbesítéséhez.