Co jsou aplikace GitHubu?
Tady probereme, co jsou aplikace GitHubu, jak fungují a jak je můžete použít ke zlepšení pracovních postupů. Ať už zavádíte řešení sestavené někým jiným nebo vyvíjíte řešení podle svých potřeb, vždycky existuje prostor pro zlepšení procesů.
Rozšíření platformy prostřednictvím rozhraní API GitHubu
GitHub poskytuje robustní rozhraní API, které vývojářům umožňuje provádět na platformě cokoliv. Je přístupné přes koncové body REST, takže se snadno integruje z jakékoli platformy nebo programovacího jazyka. Přístup k rozhraní API ale není sám. Vývojáři, kteří chtějí sdílet své funkce s ostatními, je stále potřebují zabalit jako aplikaci a publikovat ji, aby je mohl kdokoliv použít.
Při výběru mezi začleněním aplikace OAuth nebo aplikace GitHub do pracovního postupu je potřeba zvážit několik faktorů. V této části se seznámíme s aplikacemi GitHubu a aplikacemi OAuth, rozdíly mezi jejich využitím a oprávněními a odběry událostí.
Při přizpůsobení pracovního postupu GitHubu máte k dispozici několik funkcí, jako je psaní vlastních skriptů, vytváření a autorizace vlastních aplikací OAuth nebo instalace aplikací GitHubu dostupných z marketplace GitHubu. Obecně platí, že pro tyto jednorázové úlohy můžete nejlépe použít skripty. U akcí, které je potřeba spouštět častěji, můžete pomocí automatizace aplikací OAuth a GitHubu ušetřit čas a zachovat optimální úroveň zabezpečení v rámci pracovních postupů. Existuje mnoho rozdílů, které ovlivňují způsob rozhodování mezi používáním aplikace GitHub nebo aplikace OAuth. Pochopení těchto rozdílů předem může snížit některé bolesti hlavy a přepracovat cestu a pomůže vám najít nejlepší aplikaci pro váš konkrétní případ použití v rámci pracovního postupu.
Na konci této části budete mít dobrý přehled o rozdílech mezi aplikací GitHub a aplikací OAuth a dozvíte se, jak nejlépe zvolit aplikaci pro správnou situaci.
Udělení přístupu a oprávnění
Jedním z nejdůležitějších důvodů, proč aplikaci povolit přístup k úložišti GitHub, je oprávnění, které vyžaduje k tomu, aby fungovala. Některým aplikacím lze snadno důvěřovat, ale jiné mohou být podezřelé. Vždycky se ujistěte, že vám vyhovují oprávnění, která aplikaci udělujete.
Poznámka:
Každá aplikace používá jedinečný klíč rozhraní API k vytváření žádostí o data ve vašem úložišti. Autorizací přístupu ve skutečnosti autorizujete klíč. Přístup ke klíči aplikace můžete kdykoli odvolat v nastavení úložiště.
aplikace OAuth
Aplikace OAuth poskytují přístup k datům GitHubu jménem uživatele. Vzhledem k tomu, že se jedná jménem uživatele, je důležité si uvědomit, že bude využívat licenci na GitHubu. Aplikaci OAuth můžete vytvořit a zaregistrovat ve svém osobním účtu nebo na úrovni organizace, pokud máte přístup pro správu. Aplikace OAuth, která se integruje s GitHubem, zpřístupní požadovaný typ přístupu k organizaci nebo úložišti. Uživatelé autorizovali aplikace OAuth, které aplikaci umožňují pracovat jako ověřený uživatel, jako je čtení nebo úpravy dat. Tento přístup je v podstatě automatizovaný způsob čtení, zápisu nebo úpravy dat GitHubu jako uživatel. Je také důležité poznamenat, že autorizace je omezená na prostředky, které jsou přístupné pro uživatele; Aplikace OAuth ale získá také přístup ke všem prostředkům, které jsou uživateli k dispozici.
Poznámka:
Úroveň přístupu je omezena rozsahem tokenu (uživatel, organizace, úložiště).
Pro organizace s omezeními přístupu k aplikacím OAuth může správce udělit schválení pro použití aplikace. S odběry událostí reagují aplikace OAuth na aktivitu, jak se to stane.
Aplikace GitHubu
Aplikace GitHubu se naopak instalují do osobního účtu, organizace, které vlastníte, nebo konkrétní úložiště, ve kterých máte přístup správce. Aplikace GitHubu se instalují a komunikují s GitHubem jako se službou, nikoli s jednotlivými uživateli jako s aplikacemi OAuth. Jednou z výhod aplikací GitHubu je to, že na rozdíl od aplikací OAuth aplikace GitHub nespotřebovávají licence na GitHubu.
Aplikace GitHubu přistupují k datům jménem samotné aplikace prostřednictvím privátního klíče, který se používá k podepsání tokenu JWT (webový token JSON). Vzhledem k tomu, že jsou nainstalované v konkrétních úložištích, můžou uživatelé zvolit, k jakým úložištím má aplikace přístup, což omezuje množství dat, ke kterým má aplikace přístup. Oprávnění definují, k jakým prostředkům má aplikace GitHub přístup prostřednictvím rozhraní API. Na rozdíl od aplikací OAuth mají aplikace GitHub přizpůsobitelná oprávnění pro data úložiště, problémy a žádosti o přijetí změn. To vám umožní udělit podrobnější oprávnění a omezit aplikaci na čtení a zápis jenom v úložištích, ke které má povolený přístup. Nastavení aplikací GitHubu v organizaci můžou spravovat jenom vlastníci organizace.
Aplikace GitHubu můžete najít a nainstalovat z Webu GitHub Marketplace. Při hledání aplikací GitHubu mějte na paměti, že některé aplikace mají ověřený odznáček. Tento odznáček ukazuje, že aplikaci vlastní organizace, která ověřila vlastnictví své domény, potvrdila jejich e-mailové adresy s podporou GitHubu a vyžaduje dvoufaktorové ověřování pro svou organizaci.
- Správce může udělit oprávnění týkající se správy, kontrol, obsahu úložiště, nasazení a problémů (změny správce vyžadují přijetí uživatele).
- Správce může uživateli aplikace udělit oprávnění k blokování jiného uživatele, e-mailů, sledujících uživatelů, klíčů GPG, klíčů Git SSH, starring, sledování (změny správce vyžadují přijetí uživatele).
- Odběry událostí: Poradce pro zabezpečení, kontrola sady, vytvoření, nasazení, forku, popisek, člen, vrácení se změnami, komentář k potvrzení, odstranění, stav nasazení, milník, členství, organizace (správce konfiguruje v uživatelském rozhraní GH Apps a dá se změnit)
Volba mezi aplikacemi GitHub a aplikacemi OAuth
I když jsou aplikace GitHub ideální způsob integrace do pracovního postupu v některých situacích, může být pro větší organizace náročné, aby přechod z tradičního používání aplikací OAuth pro automatizaci byl náročný. Omezení zásad zabezpečení může například omezit možnosti správce při výběru těchto nástrojů.
Poznámka:
Jako správce systému byste měli spolupracovat se svými vývojáři, abyste našli nejvhodnější možnosti pro automatizaci prostřednictvím využití těchto aplikací a přitom stále následují vaše zásady zabezpečení.
Pokud chcete zjistit, která aplikace je pro vaši situaci správným řešením, tady je několik důležitých otázek, které je potřeba vzít v úvahu:
- Chci, aby aplikace fungovala jako uživatel?
- Co bude potřeba omezit rychlost?
- Jaký přístup chci, aby aplikace měla v organizaci a úložištích?
- Dodržuje tato aplikace naše zásady zabezpečení?
Tady jsou některé klíčové charakteristiky a rozdíly, které je potřeba vzít v úvahu při výběru mezi aplikací GitHub nebo aplikací OAuth.
Aplikace GitHubu | aplikace OAuth |
---|---|
Instalace aplikace GitHubu uděluje aplikaci přístup k vybraným úložištím uživatele nebo účtu organizace. | Autorizace aplikace OAuth uděluje aplikaci přístup k přístupným prostředkům uživatele; Například úložiště, ke kterým mají přístup. |
Přístupové tokeny instalace jsou omezené na určená úložiště s oprávněními zvolenými tvůrcem aplikace. | Přístupový token OAuth je omezený prostřednictvím oborů. |
Instalační token identifikuje aplikaci jako robota GitHub Apps. | Přístupový token identifikuje aplikaci jako uživatel, který token aplikaci udělil. |
Aplikace GitHubu mají cílová oprávnění, která jim umožňují požádat o přístup jenom k tomu, co potřebují. | Aplikace OAuth nemůžou používat podrobná oprávnění. |
Aplikace GitHubu se nevztahují na zásady aplikací organizace. Aplikace GitHubu má přístup jenom k úložištím, kterým udělil vlastník organizace. | Pokud je zásada aplikace organizace aktivní, může instalaci aplikace OAuth autorizovat jenom vlastník organizace. Pokud je aplikace OAuth nainstalovaná, získá přístup k všemu, co je viditelné pro token, který vlastník organizace má v rámci schválené organizace. |
Zvýšení limitu rychlosti je možné udělit na úrovni aplikací GitHubu (ovlivňující všechny instalace) i na úrovni jednotlivých instalací. | Zvýšení limitu rychlosti se uděluje pro aplikaci OAuth. Každý token udělený této aplikaci OAuth získá vyšší limit. |
Aplikace GitHubu se můžou ověřovat jménem uživatele, kterému se říká požadavky typu uživatel-server. Tok, který se má autorizovat, je stejný jako tok autorizace aplikace OAuth. Platnost tokenů uživatele na server může vypršet a obnovit pomocí obnovovacího tokenu. | Tok OAuth používaný aplikacemi OAuth autorizuje aplikaci OAuth jménem uživatele. Jedná se o stejný tok, který se používá v autorizaci uživatele na server v aplikaci GitHub. |
Aplikace GitHubu požádají o oprávnění k obsahu úložiště a používají váš instalační token k ověření prostřednictvím Gitu založeného na protokolu HTTP. | Aplikace OAuth vyžadují write:public_key obor a vytvoří klíč nasazení prostřednictvím rozhraní API. Tento klíč pak můžete použít k provádění příkazů Gitu. |
Přístup k aplikacím a oprávnění
Jedním z nejdůležitějších důvodů, proč aplikaci povolit přístup k úložišti GitHub, je oprávnění, které vyžaduje k tomu, aby fungovala. Některým aplikacím lze snadno důvěřovat, ale jiné mohou být podezřelé. Vždycky se ujistěte, že vám vyhovují oprávnění, která aplikaci udělujete.
Rozhodnutí o používání aplikace GitHub nebo aplikace OAuth může záviset na úrovni přístupu, ke které má aplikace přístup. Obecně byste měli podpořit tým, aby nástroj používal s nejmenším rozsahem k provedení úkolu. Aplikace OAuth má přístup ke všem prostředkům vlastníka uživatele nebo organizace.
- Aplikace OAuth můžou mít ke svým datům GitHubu přístup pro čtení nebo zápis .
- Aplikaci GitHub můžete udělit přístup k jednomu účtu bez udělení přístupu k jinému účtu.
Zabezpečení aplikací
Když ve své aplikaci zjistíte ohrožení zabezpečení, mělo by to být priorita a v rámci zásad zabezpečení, které uživatelům projektu sdělí. Rychlá komunikace problému se zabezpečením může znamenat rozdíl mezi tím, že uživatelé můžou odvolat ohrožený token nebo zpřístupnit citlivá data. I když jsou tokeny mnohem bezpečnější než hesla, zabezpečení může být stále ohroženo a je důležité, aby vaše organizace byla připravená.
Kromě README.md souboru doporučujeme do úložišť přidat SECURITY.md soubor. Soubor SECURITY.md zvýrazní informace související se zabezpečením úložiště. Soubor by měl obsahovat kontakty zabezpečení, zásady vaší organizace a podrobně rozebrat odpověď, kterou provedete při zjištění ohrožení zabezpečení.
Reagování na události
Aplikace GitHubu jsou navrženy tak, aby byly pasivní. Čekají, až se něco stane, a pak reagují, obvykle prostřednictvím rozhraní API GitHubu. Při čekání na události na GitHubu existují dva přístupy: webhooky a cyklické dotazování.
Poznámka:
Aplikace GitHubu se neomezují pouze na práci s daty GitHubu. Stejně tak můžete snadno čekat na události, ke kterým dochází z jiných zdrojů, nebo provádět akce, které aktualizují další služby.
Používání webhooků GitHubu
Webhooky představují upřednostňovaný přístup ke zpracování událostí. Když se něco stane na GitHubu v rámci webhooku, webhook se okamžitě aktivuje. Webhooky můžou nabízená oznámení, která vaše aplikace může naslouchat a zpracovávat v reálném čase. Webhooky (včetně typů událostí, autentizace a způsobu doručování oznámení HTTP) můžete nakonfigurovat v nastavení úložiště.
cyklické dotazování
V některý případech nejsou webhooky řešením. Vaše aplikace může být potřeba žít za podnikovou bránou firewall, kde se k ní GitHub nemůže přímo dostat. V takovém případě je alternativou cyklické dotazování na data, která sledujete, pomocí rozhraní API GitHubu.
Přenos webhooků
Alternativou k cyklickému dotazování na aplikace za bránou firewall je použití služby předávání webhooků, například smee.io. Díky tomuto přístupu se veřejná služba přihlásí k odběru webhooku úložiště a pak předá příchozí data do klientské služby spuštěné za bránou firewall. Tato klientská služba poté posílá nabízená oznámení do spuštěné aplikace, jako by pocházela z původního zdroje.