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. Rozhraní API je vystaveno prostřednictvím koncových bodů REST, takže se snadno integruje do libovolné 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 vás 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í. Například 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é se spouští častěji, vám a vašemu týmu může automatizace aplikací OAuth a GitHubu pomoct ušetřit čas a zároveň zachovat optimální úroveň zabezpečení v rámci vašich 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 byste měli mít dobrý přehled o rozdílech mezi aplikací GitHub a aplikací OAuth a vědět, 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é aplikace jsou snadno důvěryhodné, ale jiné můžou 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 z nastavení úložiště.
aplikace OAuth
Aplikace OAuth poskytují přístup k datům GitHubu jménem uživatele. Protože se jedná jménem uživatele, je důležité si uvědomit, že využívá licenci 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, zveřejňuje typ přístupu k organizaci nebo úložišti, které vyžaduje. 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é si uvědomit, ž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, že na rozdíl od aplikací OAuth aplikace GitHub nepoužívají licenci 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í webového tokenu JSON. Vzhledem k tomu, že jsou nainstalovaná na 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. Přizpůsobení umožňuje udělit podrobnější oprávnění a omezit aplikaci na čtení a zápis jenom v úložištích, ke které mu povolíte 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. Ověřený odznáček označuje následující informace o aplikaci a organizaci, která ji vlastní:
- Ověří se vlastnictví organizace ve své doméně.
- Podpora GitHubu potvrzuje e-mailové adresy organizace.
- Organizace vyžaduje dvojúrovňové ověřování.
- 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
Aplikace GitHubu představují ideální způsob integrace do pracovního postupu v některých situacích, ale větší organizace můžou najít náročné přechod z tradičního používání aplikací OAuth pro automatizaci. 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 možnosti, které jsou pro automatizaci nejvhodnější, a to pomocí těchto aplikací a přitom stále dodržovat 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 musí být limit rychlosti?
- 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 používají 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 GitHub má přístup pouze k úložištím, která uděluje 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. Tento tok je stejný jako při 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é aplikace jsou snadno důvěryhodné, ale jiné můžou být podezřelé. Vždycky se ujistěte, že vám vyhovují oprávnění, která aplikaci udělujete.
Rozhodnutí o použití 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ě popisovat odpověď, kterou plánujete provést 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. Můžete snadno počkat na události, ke kterým dochází z jiných zdrojů, nebo provádět akce, které aktualizují jiné 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, okamžitě se vyvolá událost. 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.