Autorizace přístupu k prostředkům služby Event Hubs pomocí sdílených přístupových podpisů
Sdílený přístupový podpis (SAS) poskytuje způsob, jak udělit omezený přístup k prostředkům v oboru názvů služby Event Hubs. SAS chrání přístup k prostředkům služby Event Hubs na základě autorizačních pravidel. Tato pravidla se konfigurují buď v oboru názvů, nebo v centru událostí. Tento článek obsahuje přehled modelu SAS a projděte si osvědčené postupy SAS.
Poznámka:
Tento článek popisuje autorizaci přístupu k prostředkům služby Event Hubs pomocí SAS. Informace o ověřování přístupu k prostředkům služby Event Hubs pomocí SAS najdete v tématu Ověřování pomocí SAS.
Co jsou sdílené přístupové podpisy?
Sdílený přístupový podpis (SAS) poskytuje delegovaný přístup k prostředkům služby Event Hubs na základě autorizačních pravidel. Autorizační pravidlo má název, je přidružený ke konkrétním právem a má dvojici kryptografických klíčů. K vygenerování tokenů SAS použijete název a klíč pravidla prostřednictvím klientů služby Event Hubs nebo ve vlastním kódu. Klient pak může token předat službě Event Hubs, aby prokázal autorizaci požadované operace.
SAS je autorizační mechanismus založený na deklarací identity pomocí jednoduchých tokenů. Když použijete SAS, klíče se nikdy nepředají na drátu. Klíče se používají k kryptograficky podepisující informace, které může služba později ověřit. SAS se dá použít podobně jako uživatelské jméno a schéma hesla, ve kterém má klient okamžitý přístup k názvu autorizačního pravidla a odpovídající klíč. SAS se dá použít podobně jako model federovaného zabezpečení, kde klient obdrží časově omezený a podepsaný přístupový token ze služby tokenů zabezpečení, aniž by se vůbec dostal do vlastnictví podpisového klíče.
Poznámka:
Azure Event Hubs podporuje také autorizaci prostředků služby Event Hubs pomocí ID Microsoft Entra. Autorizace uživatelů nebo aplikací pomocí tokenu OAuth 2.0 vráceného id Microsoft Entra poskytuje vynikající zabezpečení a snadné použití u sdílených přístupových podpisů (SAS). S ID Microsoft Entra není nutné ukládat tokeny do kódu a riskovat potenciální ohrožení zabezpečení.
Microsoft doporučuje používat Microsoft Entra ID s vašimi aplikacemi Azure Event Hubs, pokud je to možné. Další informace najdete v tématu Autorizace přístupu k prostředku azure Event Hubs pomocí Microsoft Entra ID.
Důležité
Tokeny SAS (sdílené přístupové podpisy) jsou důležité pro ochranu vašich prostředků. Sas při poskytování členitosti uděluje klientům přístup k prostředkům služby Event Hubs. Neměly by být sdíleny veřejně. Při sdílení zvažte použití omezené verze všech souborů protokolu nebo odstranění tokenů SAS (pokud jsou k dispozici) ze souborů protokolu a ujistěte se, že snímky obrazovky neobsahují informace SAS.
Zásady autorizace sdíleného přístupu
Každý obor názvů služby Event Hubs a každá entita event Hubs (centrum událostí nebo téma Kafka) mají zásady autorizace sdíleného přístupu tvořené pravidly. Zásady na úrovni oboru názvů platí pro všechny entity v oboru názvů bez ohledu na jejich konfiguraci jednotlivých zásad.
Pro každé pravidlo zásad autorizace se rozhodnete o třech informacích: název, rozsah a práva. Název je jedinečný název v daném oboru. Rozsah je identifikátor URI příslušného prostředku. Pro obor názvů služby Event Hubs je oborem plně kvalifikovaný název domény (FQDN), například https://<yournamespace>.servicebus.windows.net/
.
Práva poskytnutá pravidlem zásad můžou být kombinací:
- Send – Dává právo odesílat zprávy entitě.
- Naslouchání – dává právo naslouchat nebo přijímat zprávy z entity
- Manage – Dává právo spravovat topologii oboru názvů, včetně vytváření a odstraňování entit. Práva Spravovat zahrnuje práva Pro odesílání a naslouchání .
Zásady oboru názvů nebo entit mohou obsahovat až 12 pravidel autorizace sdíleného přístupu, což poskytuje prostor pro tři sady pravidel, z nichž každá pokrývá základní práva a kombinaci funkce Odeslat a Naslouchat. Tento limit podtrhuje, že úložiště zásad SAS není určené jako úložiště účtů uživatele nebo služby. Pokud vaše aplikace potřebuje udělit přístup k prostředkům služby Event Hubs na základě identit uživatelů nebo služeb, měla by implementovat službu tokenů zabezpečení, která po ověření a kontrole přístupu vydává tokeny SAS.
Autorizačnímu pravidlu se přiřadí primární klíč a sekundární klíč. Tyto klíče jsou kryptograficky silné klíče. Neztraťte je ani je nevraťte. Budou vždy k dispozici na webu Azure Portal. Můžete použít některý z vygenerovaných klíčů a můžete je kdykoli znovu vygenerovat. Pokud v zásadách znovu vygenerujete nebo změníte klíč, všechny dříve vydané tokeny založené na daném klíči se okamžitě stanou neplatnými. Probíhající připojení vytvořená na základě těchto tokenů však nadále fungují, dokud nevyprší platnost tokenu.
Při vytváření oboru názvů služby Event Hubs se pro obor názvů automaticky vytvoří pravidlo zásad s názvem RootManageSharedAccessKey . Tato zásada má oprávnění ke správě celého oboru názvů. Doporučujeme, abyste s tímto pravidlem zacházeli jako s kořenovým účtem pro správu a nepoužívejte ho ve vaší aplikaci. Další pravidla zásad můžete vytvořit na kartě Konfigurace oboru názvů na portálu prostřednictvím PowerShellu nebo Azure CLI.
Osvědčené postupy při používání SAS
Když ve svých aplikacích používáte sdílené přístupové podpisy, musíte mít na paměti dvě potenciální rizika:
- Pokud dojde k úniku sdíleného přístupového podpisu, může ho používat kdokoli, kdo ho získá, což může potenciálně ohrozit vaše prostředky služby Event Hubs.
- Pokud vyprší platnost sdíleného přístupového podpisu poskytnutého klientské aplikaci a aplikace nemůže načíst nový SAS z vaší služby, může to bránit funkce aplikace.
Následující doporučení pro používání sdílených přístupových podpisů vám můžou pomoct zmírnit tato rizika:
- Požádejte klienty, aby sas v případě potřeby automaticky prodloužili: Klienti by měli sas prodloužit před vypršením platnosti, aby bylo možné provést opakované pokusy, pokud služba poskytující SAS není k dispozici. Pokud se má sas použít pro malý počet okamžitých krátkodobých operací, u které se očekává dokončení v rámci období vypršení platnosti, může to být zbytečné, protože se očekává prodloužení sdíleného přístupového podpisu. Pokud však máte klienta, který pravidelně provádí požadavky prostřednictvím SAS, pak do hry přichází možnost vypršení platnosti. Klíčovým aspektem je vyvážit potřebu sdíleného přístupového podpisu krátkodobého (jak už bylo uvedeno dříve) s nutností zajistit, aby klient požadoval obnovení dostatečně brzy (aby se zabránilo přerušení kvůli vypršení platnosti SAS před úspěšným obnovením).
- Buďte opatrní s časem spuštění SAS: Pokud nastavíte čas spuštění SAS na tuto chvíli, pak kvůli nerovnoměrné distribuci hodin (rozdíly v aktuálním čase podle různých počítačů), chyby se můžou občas pozorovat po dobu prvních několika minut. Obecně platí, že počáteční čas bude v minulosti alespoň 15 minut. Nebo ho vůbec nenastavujte, aby byl platný okamžitě ve všech případech. Totéž platí i pro dobu vypršení platnosti. Mějte na paměti, že v libovolném požadavku můžete pozorovat až 15 minut nerovnoměrné distribuce hodin.
- Buďte specifická pro přístup k prostředku: Osvědčeným postupem zabezpečení je poskytnout uživateli minimální požadovaná oprávnění. Pokud uživatel potřebuje přístup jen pro čtení k jedné entitě, udělte mu přístup pro čtení k této jediné entitě, a ne ke čtení, zápisu nebo odstranění přístupu ke všem entitám. Pomáhá také zmenšit poškození v případě ohrožení sdíleného přístupového podpisu, protože sas má v rukou útočníka méně výkonu.
- Nepoužívejte vždy SAS: Někdy rizika spojená s konkrétní operací ve službě Event Hubs převáží nad výhodami SAS. Pro takové operace vytvořte službu střední vrstvy, která zapisuje do centra událostí po ověření, ověřování a auditování obchodního pravidla.
- Vždy používejte protokolY HTTPs: K vytvoření nebo distribuci sdíleného přístupového podpisu vždy používejte HTTPS. Pokud se SAS předává přes protokol HTTP a zachytí se, útočník provádějící útok man-in-the-middle dokáže sas přečíst a pak ho použít stejně jako zamýšlený uživatel, potenciálně ohrozit citlivá data nebo umožnit poškození dat škodlivým uživatelem.
Závěr
Sdílené přístupové podpisy jsou užitečné pro poskytování omezených oprávnění k prostředkům služby Event Hubs vašim klientům. Jsou důležitou součástí modelu zabezpečení pro libovolnou aplikaci využívající Azure Event Hubs. Pokud budete postupovat podle osvědčených postupů uvedených v tomto článku, můžete pomocí sdíleného přístupového podpisu (SAS) zajistit větší flexibilitu přístupu k vašim prostředkům bez ohrožení zabezpečení vaší aplikace.
Související obsah
Projděte si následující související články: