Mik azok a GitHub Apps-alkalmazások?

Befejeződött

Itt bemutatjuk, hogy mik a GitHub Apps, hogyan működnek, és hogyan használhatja őket a munkafolyamatok fejlesztéséhez. Függetlenül attól, hogy egy valaki más által létrehozott megoldást használ vagy a pontos igényei kiszolgálása érdekében sajátot fejleszt, a folyamatok mindig tovább tökéletesíthetők.

A platform kiterjesztése a GitHub API-val

A GitHub egy robusztus API-t biztosít, amely lehetővé teszi a fejlesztők számára, hogy bármit elvégezhessenek a platformon. Az API REST-végpontokon keresztül érhető el, így könnyen integrálható bármilyen platformról vagy programozási nyelvről. Az API-hozzáférés azonban nem önálló. Azoknak a fejlesztőknek, akik meg szeretnék osztani a szolgáltatásaikat másokkal, továbbra is alkalmazásként kell csomagolniuk őket, és közzé kell tenniük, mielőtt bárki használhatja őket.

Az OAuth-alkalmazás vagy a GitHub-alkalmazás munkafolyamatba való beépítése között több tényezőt is figyelembe kell venni. Ebben a szakaszban bemutatjuk a GitHub Apps és az OAuth Apps alkalmazást, azok használati és engedélybeli különbségeit, valamint az esemény-előfizetéseket.

A GitHub Apps és az OAuth Apps telepítési ikonjának és jóváhagyási ikonjának képe.

A GitHub-munkafolyamatok testreszabása során számos funkció érhető el. Például egyéni szkriptek írása, saját OAuth-alkalmazások létrehozása és engedélyezése, vagy a GitHub-piactéren elérhető GitHub Apps telepítése. Általában ezekhez az egyszeri feladatokhoz használhat szkripteket. A gyakrabban futtatott műveletek esetében az OAuth és a GitHub Apps automatizálásával időt takaríthat meg Ön és csapata számára, miközben megtarthatja a munkafolyamatok optimális biztonsági szintjét. A GitHub-alkalmazás vagy az OAuth-alkalmazás használata között számos különbség van. Ezeknek a különbségeknek az előzetes megértése csökkentheti a fejfájást, és átdolgozhatja az utat, és segít megtalálni az adott használati esethez legjobb alkalmazást a munkafolyamaton belül.

A szakasz végén jól ismernie kell a GitHub-alkalmazások és az OAuth-alkalmazások közötti különbségeket, és tudnia kell, hogyan választhatja ki a legjobban egy alkalmazást a megfelelő helyzetben.

Hozzáférés és engedélyek megadása

Egy alkalmazás GitHub-adattárhoz való hozzáférésének egyik legfontosabb szempontja a működéséhez szükséges engedélyek használata. Egyes alkalmazások könnyen megbízhatók, mások azonban gyanúsak lehetnek. Mindig győződjön meg arról, hogy az alkalmazás a működéséhez szükséges, megfelelő engedélyeket kéri.

Képernyőkép a kért engedélyek és adattár-hozzáférés áttekintéséről.

Feljegyzés

Minden alkalmazás egyedi API-kulcsot használ az adattárban lévő adatkérésekhez. Amikor hozzáférést engedélyez, valójában a kulcs számára ad hozzáférést. Az adattár beállításaiból bármikor visszavonhatja az alkalmazáskulcshoz való hozzáférést.

OAuth-alkalmazások

Az OAuth Apps lehetővé teszik a GitHub-adatok elérését egy felhasználó nevében. Mivel a felhasználó nevében jár el, fontos megjegyezni, hogy GitHub-licencet használ. Létrehozhat és regisztrálhat egy OAuth-alkalmazást a személyes fiókjában, vagy szervezeti szinten, ha rendszergazdai hozzáféréssel rendelkezik. A GitHubtal integrálható OAuth-alkalmazás felfedi a szervezethez vagy adattárhoz való hozzáférés típusát, amelyet igényel. A felhasználók engedélyezik az OAuth-alkalmazásokat, ami lehetővé teszi az alkalmazás számára a hitelesített felhasználóként való működést, például az adatok olvasását vagy módosítását. Ez a megközelítés lényegében egy automatikus módszer a GitHub-adatok felhasználóként való olvasására, írására vagy szerkesztésére. Azt is fontos megjegyezni, hogy az engedélyezés a felhasználó számára elérhető erőforrásokra korlátozódik. Az OAuth-alkalmazás azonban a felhasználó számára elérhető összes erőforráshoz is hozzáfér.

Feljegyzés

A hozzáférési szintet a jogkivonat hatóköre (felhasználó, szervezet, adattár) korlátozza.

OAuth-alkalmazáshozzáférési korlátozásokkal rendelkező szervezetek esetén a rendszergazda jóváhagyást adhat az alkalmazás használatához. Az esemény-előfizetések esetében az OAuth Apps a folyamatnak megfelelően válaszol a tevékenységekre.

GitHub Apps

Ezzel szemben a GitHub Apps telepítve van a személyes fiókjában, a tulajdonában lévő szervezetekben vagy adott adattárakban, amelyekben rendszergazdai hozzáféréssel rendelkezik. A GitHub Apps szolgáltatásként van telepítve és kommunikál a GitHubtal, nem pedig egy egyéni felhasználóval, mint az OAuth Apps szolgáltatással. A GitHub Apps egyik előnye, hogy az OAuth-alkalmazásokkal ellentétben a GitHub Apps nem használ GitHub-licencet.

A GitHub Apps egy JSON-webjogkivonat aláírásához használt titkos kulcson keresztül fér hozzá az alkalmazás nevében az adatokhoz. Mivel bizonyos adattárakra vannak telepítve, a felhasználók kiválaszthatják, hogy az alkalmazás milyen tárházakhoz férhet hozzá, ami korlátozza az alkalmazás által elérhető adatok mennyiségét. Az engedélyek határozzák meg, hogy a GitHub-alkalmazás milyen erőforrásokat érhet el az API-val. Az OAuth Appstől eltérően a GitHub Apps testre szabható engedélyekkel rendelkezik az adattáradatokhoz, a problémákhoz és a lekéréses kérelmekhez. A testreszabással részletesebb engedélyeket adhat, így az alkalmazás csak azokban az adattárakban olvasható és írható, amelyekhez hozzáférést engedélyez. A GitHub Apps beállítását csak a szervezet tulajdonosai kezelhetik.

A GitHub Apps a GitHub Marketplace-en található és telepíthető. Amikor GitHub Apps-alkalmazásokat keres, vegye figyelembe, hogy egyes alkalmazások igazolt jelvénysel rendelkeznek. Az ellenőrzött jelvény a következőket jelzi az alkalmazásról és a tulajdonos szervezetről:

  • A szervezet domain tulajdonjogát igazolták.
  • A GitHub ügyfélszolgálata megerősíti a szervezet e-mail-címét.
  • A szervezetnek kéttényezős hitelesítésre van szüksége.

Egy GitHub-alkalmazás igazolt jelvényének képe.

  • A rendszergazda engedélyeket adhat az adattár felügyeletéhez, az ellenőrzésekhez, az adattár tartalmához, az üzembe helyezésekhez és a problémákhoz (a rendszergazdai módosításokhoz felhasználói elfogadás szükséges)
  • A rendszergazda engedélyt adhat az alkalmazás felhasználóinak, hogy letiltson egy másik felhasználót, e-maileket, követőket, GPG-kulcsokat, Git SSH-kulcsokat, csillagolást és figyelést (A rendszergazdai módosítások felhasználói elfogadást igényelnek)
  • Esemény-előfizetések: Biztonsági tanácsadás, Csomag ellenőrzése, Létrehozás, Üzembe helyezés, Elágaztatás, Címke, Tag, Bejelentkezés, Megjegyzés véglegesítése, Törlés, Üzembe helyezés állapota, Mérföldkő, Tagság, Szervezet (a rendszergazda konfigurálja a GH Apps felhasználói felületén, és módosítható)

Választás a GitHub Apps és az OAuth Apps között

Bár a GitHub Apps ideális módja annak, hogy bizonyos helyzetekben integrálható legyen a munkafolyamatba, a nagyobb szervezetek nehezen tudják áttérni az OAuth Apps hagyományos automatizálási használatára. Egy biztonsági szabályzat korlátozása például korlátozhatja a rendszergazda lehetőségeit is az eszközök használata során.

Feljegyzés

Rendszergazdaként a fejlesztőkkel együtt kell keresnie az automatizáláshoz leginkább megfelelő lehetőségeket az alkalmazások használatával, miközben továbbra is követi a biztonsági szabályzatot.

Annak megállapításához, hogy melyik alkalmazás a megfelelő megoldás a helyzethez, íme néhány fontos kérdés, amelyet érdemes megfontolni:

  • Azt akarom, hogy az alkalmazás felhasználóként működjön?
  • Minek kell lennie a sebességkorlátnak?
  • Milyen hozzáféréssel rendelkezzen az alkalmazás a szervezetben és az adattárakban?
  • Az alkalmazás megfelel a biztonsági szabályzatunknak?

Az alábbiakban néhány fontos jellemzőt és különbséget érdemes figyelembe venni a GitHub-alkalmazások vagy az OAuth-alkalmazások közötti választáskor.

GitHub Apps OAuth-alkalmazások
A GitHub-alkalmazás telepítése hozzáférést biztosít az alkalmazásnak egy felhasználói vagy szervezeti fiók kiválasztott adattáraihoz. Az OAuth-alkalmazások engedélyezése hozzáférést biztosít az alkalmazásnak a felhasználó akadálymentes erőforrásaihoz; például azok az adattárak, amelyhez hozzáférnek.
A telepítési hozzáférési jogkivonatok az alkalmazás létrehozója által kiválasztott engedélyekkel megadott adattárakra korlátozódnak. Az OAuth hozzáférési jogkivonat hatókörökön keresztül korlátozott.
A telepítési jogkivonat az alkalmazást GitHub Apps-robotként azonosítja. A hozzáférési jogkivonat azt a felhasználót azonosítja, aki a jogkivonatot az alkalmazásnak adta.
A GitHub Apps célzott engedélyeket használ, amelyek lehetővé teszik számukra, hogy csak a szükséges engedélyekhez kérjenek hozzáférést. Az OAuth Apps nem használhat részletes engedélyeket.
A GitHub Appsre nem vonatkoznak szervezeti alkalmazásszabályzatok. A GitHub-alkalmazások csak a szervezet tulajdonosa által biztosított adattárakhoz férhetnek hozzá. Ha egy szervezeti alkalmazásszabályzat aktív, csak a szervezet tulajdonosa engedélyezheti az OAuth-alkalmazások telepítését. Ha telepítve van, az OAuth-alkalmazás hozzáférést kap a szervezet tulajdonosa által a jóváhagyott szervezeten belül található jogkivonathoz.
A sebességkorlát-növelés a GitHub Apps szintjén (az összes telepítést érintve) és az egyes telepítési szinten is megadható. A sebességkorlátozások növelése OAuth-alkalmazásonként történik. Az OAuth-alkalmazásnak adott összes jogkivonat megkapja a megnövelt korlátot.
A GitHub Apps a felhasználó nevében végezhet hitelesítést, amelyet felhasználó–kiszolgáló kérésnek neveznek. Az engedélyezés folyamata megegyezik az OAuth-alkalmazás engedélyezési folyamatával. A felhasználók közötti jogkivonatok lejáródhatnak, és frissítési jogkivonattal megújíthatók. Az OAuth Apps által használt OAuth-folyamat engedélyezi az OAuth-alkalmazást a felhasználó nevében. Ez a folyamat ugyanaz, mint amelyet a GitHub App felhasználó–kiszolgáló engedélyezésében használnak.
A GitHub Apps az adattár tartalmának engedélyét kéri, és a telepítési jogkivonat használatával http-alapú Git használatával hitelesít. Az OAuth Apps hatókört kér write:public_key , és üzembehelyezési kulcsot hoz létre az API-val. Ezután ezt a kulcsot használhatja a Git-parancsok végrehajtásához.

Alkalmazáshozzáférés és engedélyek

Egy alkalmazás GitHub-adattárhoz való hozzáférésének egyik legfontosabb szempontja a működéséhez szükséges engedélyek használata. Egyes alkalmazások könnyen megbízhatók, mások azonban gyanúsak lehetnek. Mindig győződjön meg arról, hogy az alkalmazás a működéséhez szükséges, megfelelő engedélyeket kéri.

A GitHub- vagy OAuth-alkalmazás használatának eldöntése attól függ, hogy milyen szintű hozzáférést szeretne elérni az alkalmazáshoz. Általában arra kell ösztönöznie a csapatot, hogy a legkisebb hatókörrel használja az eszközt a feladat elvégzéséhez. Egy OAuth-alkalmazás hozzáféréssel rendelkezik egy felhasználó vagy szervezet összes erőforrásához.

  • Az OAuth Apps olvasási vagy írási hozzáféréssel rendelkezhet a GitHub-adatokhoz
  • A GitHub-alkalmazás számára hozzáférést adhat egy fiókhoz anélkül, hogy hozzáférést kapnál egy másikhoz

Alkalmazások biztonsága

Amikor biztonsági rést talál az alkalmazásban, annak prioritásnak kell lennie, és a biztonsági szabályzaton belül kell értesítenie a projekt felhasználóit. A biztonsági probléma gyors kommunikálása azt jelentheti, hogy a felhasználók visszavonhatnak egy feltört jogkivonatot, vagy bizalmas adatokat tehetnek közzé. Bár a jogkivonatok sokkal biztonságosabbak, mint a jelszavak, a biztonság továbbra is sérülhet, és fontos, hogy a szervezet felkészüljön rá.

A README.md fájl mellett javasoljuk, hogy adjon hozzá egy SECURITY.md fájlt az adattárakhoz. A SECURITY.md fájl kiemeli az adattár biztonsági adatait. A fájlnak tartalmaznia kell a biztonsági partnereket, a szervezeti szabályzatokat, valamint részletesen meg kell adnia a biztonsági rések felderítésekor használni kívánt választ.

Eseményekre való reagálás

A GitHub Apps-alkalmazások passzívként vannak kialakítva. Várnak valamire, majd reagálnak, általában a GitHub API-val. A GitHubon történő eseményekre való várakozásnak két megközelítése van: webhookok és lekérdezések.

Feljegyzés

A GitHub Apps-alkalmazások nem korlátozódnak a GitHub-adatokkal való munkára. Egyszerűen várakozhat más forrásokból származó eseményekre, vagy más szolgáltatásokat frissítő műveleteket hajthat végre.

A GitHub-webhookok használata

Az események kezelésére elsősorban webhookokat érdemes használni. Ha valami történik a GitHubon egy webhook hatókörén belül, a rendszer azonnal előhoz egy eseményt. Webhookok leküldéses értesítések, amelyeket az alkalmazás figyelhet és valós időben feldolgozhat. A webhookokat az adattár beállításaiban konfigurálhatja, beleértve az események típusát, a hitelesítést és a HTTP-értesítések kézbesítésének módját is.

ciklikus lekérdezések

Esetenként a webhookok nem nyújtanak megfelelő megoldást. Előfordulhat, hogy az alkalmazásnak vállalati tűzfal mögött kell élnie, ahol a GitHub közvetlenül nem tudja elérni. Ilyen esetekben egy másik megoldás a GitHub API használatával a követett adatok lekérdezése.

Webhook-továbbítás

A tűzfalak mögött található alkalmazások lekérdezésének alternatívája egy webhooktovábbító szolgáltatás, például a smee.io használata. Ezzel a módszerrel a közszolgáltatás előfizet az adattár webhookára, majd továbbítja a bejövő adatokat a tűzfal mögött futó ügyfélszolgáltatásnak. Az ügyfélszolgáltatás ezután elküldi az értesítéseket a futó alkalmazásnak, mintha azok az eredeti forrásból származnának.