Mik azok a GitHub Apps-alkalmazások?
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-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.
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.
- 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.