Kişisel erişim belirteci (PAT) nedir? Daha güvenli bir API belirteci
Kişisel erişim belirteçlerinin (PAT) nasıl çalıştığını, ne zaman kullanılacağını, hizmetlerinizde API kimlik doğrulamayı nasıl destekleyeceğinizi ve bunların API anahtarlarından, API belirteçlerinden, bearer belirteçlerinden, OAuth belirteçlerinden ve şifrelerden nasıl farklı olduklarını açıklayın.
Kişisel Erişim Belirteçleri (PAT), API çağrıları için parolaların yerini alan, kullanıcı tarafından oluşturulan belirteçlerdir. Belirli kullanıcılar için tasarlanan PAT'ler, kaynaklara güvenli ve kontrollü erişim sağlar.
Çabasız kimlik doğrulama. Ayrıntılı erişim kontrolü. Akıcı iş akışları. Bunlar, geliştiricilerin ve ürün ekiplerinin dünyanın dört bir yanında kişisel erişim belirteçlerine güvenerek verimliliği artırmasının birkaç nedeni; ister CI/CD boru hatlarını yönetirken, ister API'ları entegre ederken ya da araçlara erişirken olsun.
PAT'lerin nasıl çalıştığını, avantajlarını ya da ne zaman kullanılacağını merak ediyor musun? Bu rehberde hepsinin cevabını bulabilirsin.
Kişisel erişim belirteci nedir?
Kişisel erişim belirteci, API'lar aracılığıyla kişisel kaynaklarına ve hizmetlerine erişmek için geçici ve güvenli bir kimlik doğrulama yoludur. Genellikle geliştiriciler tarafından, işlemleri API'lara erişmek veya iş akışlarını otomatikleştirmek gibi görevleri daha kolay ve verimli hale getirmek için kullanılır.
Kişisel erişim belirtecini, API erişimi için bir "anahtar" olarak düşün, parola ihtiyacını ortadan kaldırır. Şifrenin aksine, PAT'ler belirli izinlere ve son kullanma tarihlerine sahiptir, böylece yalnızca amaçlanan görevler için kullanılırlar; örneğin, kullanıcı profillerine veya faturalandırma sistemlerine erişmek gibi, ancak yönetici kontrollerine değil.
Kişisel erişim belirteçlerinin başlıca özellikleri:
- Geliştirici dostu: Kişisel erişim belirteçlerinin yönetimi tam OAuth iş akışlarına göre daha kolaydır ve bu onları scriptler, otomasyon ya da CI/CD boru hatları için ideal kılar.
- Çoklu belirteç: Kullanıcılar, her biri farklı bir servis ya da amaç için ayrılmış birden fazla kişisel erişim belirteci oluşturup yönetebilir.
- Kullanıcıya özgü erişim: Küresel API anahtarlarından farklı olarak, kişisel erişim belirteçleri bireysel kullanıcı hesaplarına bağlıdır. Bu, ekip üyelerinin paylaşılan erişim için ayrı belirteçler oluşturması gerekebileceği anlamına gelir.
- Ayrıntılı izinler: Kişisel erişim belirteçleriyle, belirli kapsamlar tanımlayarak sadece gerekli kaynaklara ve işlemlere erişim izni verebilirsin.
- Süreli erişim: Kişisel erişim belirteçleri, son kullanma tarihiyle yapılandırılabilir; böylece sızdırılması durumunda risk penceresi azaltılır.
- Kolay iptal: Şifrelerden farklı olarak, kişisel erişim belirteçleri ana hesabın kimlik bilgilerini tehlikeye atmadan iptal edilebilir ya da yeniden oluşturulabilir.
Kişisel erişim belirteci vs. Bearer belirteci vs. API belirteci
- Kişisel erişim belirteci bir API belirteci türüdür: Kişisel erişim belirteci, bir kullanıcı hesabına bağlı, kullanıcı düzeyinde bir API belirtecidir. Kullanıcı adına sistem kaynaklarına erişim izni sağlar. PAT'ler, izinler üzerinde detaylı kontrol imkanı sunduğu ve güvenlik için son kullanma tarihi eklenebildiği için geleneksel API anahtarlarından daha güvenlidir.
- Kişisel erişim belirteci Bearer belirteci olarak kullanılabilir: Bearer belirteci, genellikle OAuth veya JWT gibi protokollerle dinamik olarak oluşturulan bir API isteği yetkilendirme biçimidir. Kişisel erişim belirteci, kullanıcının manuel olarak oluşturduğu (örneğin GitHub’da) statik bir bearer belirteci türüdür. Örneğin, bir GitHub PAT'ini API çağrısında
authorization: bearer <senin-pat'in>
olarak başlıkta kullandığında, PAT bir bearer belirteci gibi davranmış olur. - API belirteci genel bir terimdir: API belirteci, API isteklerini kimlik doğrulamak için kullanılan herhangi bir belirteçtir. Bearer belirteçleri, OAuth belirteçleri ve kişisel erişim belirteçleri gibi farklı türleri kapsar. PAT ve bearer belirteçler, API belirteçlerinin özel türleridir.
Kimlik Doğrulama (AuthN) ve Yetkilendirme (AuthZ) mekanizmanızı seçin
Kişisel erişim belirteci kullanmadan önce, daha geniş kimlik doğrulama yöntemleri arasındaki yerini anlamak önemlidir. Birçok mekanizma ile karşılaştırıldığında nasıl olduklarını bilmek iyi olur. Aşağıda Kişisel erişim belirteçleri (PAT), Şifreler, API Anahtarları ve OAuth belirteçleri arasındaki başlıca farkları gösteren kapsamlı bir tablo bulabilirsin:
- Kişisel erişim belirteci: Otomatikleştirilmiş görevler veya API erişimi için ideal, hafif bir kimlik doğrulama yöntemi. İzinler üzerinde hassas ve ayrıntılı kontrol sağlar, güvenli ve özelleştirilebilir erişim sunar.
- Şifre: Kullanıcı arabirimi yoluyla kişisel hesaba erişmek için kullanılan geleneksel doğrulama yöntemi. Hesap sahibiyle aynı izinleri verir, ekstra ayrıntı sunmaz.
- OAuth belirteci: Üçüncü parti hizmetlere sınırlı erişim vermek için en güvenli yöntemdir. Kullanıcıların kimlik bilgilerini paylaşmadan belirli erişim kapsamları tanımlamasına olanak tanır, hem güvenlik hem de esneklik sağlar.
- API anahtarı: Genellikle API erişimini otomatikleştirmek için kullanılır, API anahtarları kişisel hesaplardan ziyade servis hesaplarıyla ilişkilidir. Ancak, PAT veya OAuth'a kıyasla detaylı izin denetimleri yoktur.
Özellik | Şifre | Kişisel erişim belirteci | OAuth belirteci | API anahtarı |
---|---|---|---|---|
Tanım | Kullanıcılar kimlik ve şifreyle giriş yapar. | Genellikle sınırlı izinlerle, belirli kaynaklara ya da API'lara erişim için bir belirteç. | Kullanıcıların kimlik bilgilerini paylaşmadan üçüncü parti uygulamalara verilerini açmasına olanak tanır. Örn: Google ile giriş | API isteklerini kimlik doğrulamak için kullanılan benzersiz bir dize. |
Kapsam kısıtlaması | Oturum açıldıktan sonra genellikle hesaba tam erişim sağlar. | İzinler üzerinde ayrıntılı kontrol sağlar. | Kullanıcı, üçüncü taraf uygulamanın neye erişeceğini tanımlayabilir. | Genellikle belirli API kaynaklarına erişim sağlar. Ayrıntılı kontrol yoktur. |
İptal | İptali zordur ve şifre değiştirilirse birçok servisi etkiler. | Kullanıcı ya da yönetici tarafından kolayca iptal edilir. | Kullanıcı kimlik bilgileri etkilenmeden iptal edilebilir. | API servisi seviyesinde iptal ya da yeniden oluşturulabilir. |
Süresi | Kullanıcı tarafından değiştirilmezse süre dolmaz. | Genellikle uzun ömürlüdür ama süresi ayarlanabilir. | Erişim belirteçleri belirli bir süre sonra sona erer; yenileme belirteçleri erişimi uzatabilir. | Sıklıkla uzun ömürlüdür, ancak API sağlayıcı tarafından döndürülebilir ya da sınırlandırılabilir. |
Kullanım kolaylığı | Hatırlaması kolay ama yanlış ele geçerse risklidir. | Otomatik görevler için oluşturması ve kullanması basittir. | Başlangıçta kullanıcı etkileşimi gerektirir ama güvenli erişim sağlar. | İsteklerde kullanımı kolaydır, fakat kullanıcı arayüzü için ideal değildir. |
En iyi kullanım alanı | Son kullanıcıların basit giriş ve doğrulama işlemleri. | Otomasyon, sınırlı API kaynak erişimi, CI/CD boru hatlarında geliştirme. | Üçüncü parti uygulamaların, parola depolamadan kullanıcı verilerine sınırlı erişime ihtiyacı olduğunda. | Backend servisleri, sunucudan sunucuya iletişim ve herkese açık API'lar. |
Güvenlik riski | Çalınırsa hesaba tam erişim verir. | Sızdırılırsa sadece belirlenen kaynaklara erişim verir. Kolayca iptal edilebilir. | Sızdırılırsa üçüncü parti uygulamalar verilen kapsamla işlem yapabilir. | Çalınırsa genellikle sunucudan sunucuya erişimde kullanılır. |
Kişisel erişim belirteci nasıl çalışır?
Kişisel erişim belirteçleri, çoğunlukla içeriği hakkında kullanıcı tarafından okunabilir veri olmayan stringlerdir ve OAuth erişim belirteçlerine benzer şekilde çalışır. GitHub gibi bir hizmette kimlik doğrulaması yaptığında, hesabına bağlı ve belirli izinlere sahip bir PAT oluşturabilirsin. Bu belirteç, API üzerinden özel bir depoya erişmek gibi işlemlerde parola yerine güvenli bir alternatif olur.
Genellikle bir PAT, aşağıdaki örnekteki gibi istek başlıklarında kullanılır:
PAT'ini bu şekilde gönderdiğinde, servis kimliğini doğrular, belirteçe bağlı izinleri kontrol eder ve talep edilen veriyi sağlar veya ilgili işlemi gerçekleştirir.
Kişisel erişim belirteci nasıl kullanılır?
- Kişisel erişim belirteci oluştur: Kullandığın platform üzerinden kişisel erişim belirteci oluştur. Hangi kaynaklara erişim vereceğini kapsamlar (scopes) ile seç.
- API isteklerini yetkilendir: Kişisel erişim belirtecini kullanıma hazır hale getirdiğinde, güvenli erişim gerektiren servislere yapılacak isteklerde onunla kimlik doğrula. API isteklerinin authorization başlığında bearer belirteci olarak dahil et.
- Erişim belirtecini iptal et: Belirteci devre dışı bırakmak istersen, platformun kimlik doğrulama ayarlarından iptal edebilirsin. İptal edilen her belirteç, kullanıldığı API çağrılarında otomatik olarak reddedilir.
Kişisel erişim belirteci ne zaman kullanılmalı?
Kişisel erişim belirteçleri, API'larına güvenli, geliştirici dostu ve kapsamlı erişim gerektiğinde öne çıkar. İşte ideal kullanım senaryoları:
- Otomatik görevler: API'lardan veri çekmesi gereken betikler veya araçlar için idealdir, geliştiricilerin hassas kimlik bilgilerini gömmesini gerektirmez.
- Ayrıntılı izin kontrolü: Belirli depo gibi kaynaklara sınırlı erişim vererek, script veya araçlara hassas erişim sağlamak; tam hesap yetkisi vermek yerine.
- Geçici erişim: Zaman sınırlaması gerektiren durumlar için idealdir, erişim süresini kısıtlamak güvenlik riskini azaltır.
- Geliştirici erişimini basitleştirir: Karmaşık bir OAuth yetkilendirme akışıyla uğraşmadan bireysel geliştiricilere hızlı ve kolay erişim sağlar.
- Üçüncü taraf entegrasyon: Dış araçlarla fonksiyonalite optimize edilebilir – örneğin, bir şirket bir proje yönetim aracı kullanıyorsa; üçüncü parti bir entegrasyon ile ekip üyeleri Slack kanalından doğrudan görev oluşturabilir veya durum güncelleyebilir; proje yönetim aracının tüm yetkileri olmadan.
GitHub, 2013 yılından itibaren kişisel erişim belirteçlerinin kullanımını teşvik ediyor ve bunlar sadelikleri ve esneklikleri ile popülerleşiyor. Birçok geliştirici aracı ve SaaS platformu PAT destekliyor, bu da onları tercih edilen bir seçim haline getiriyor:
-
GitHub / GitLab / Azure DevOps (Geliştirme araçları): CI/CD otomasyonu, diğer araçlarla bağlantı ve kod depolarının yönetilmesine yardımcı olur.
-
Figma (Tasarım araçları): API entegrasyonları ile tasarımlar üzerinde kolay iş birliği sağlanır.
-
Atlassian Jira / Asana (Proje yönetimi): API'lar aracılığıyla kolayca görev oluşturmak, güncellemek, silmek; sprintleri yönetmek ve projeleri organize etmek mümkündür.
Kişisel erişim belirteci başkalarıyla paylaşılabilir mi?
Kısa cevap—Hayır, paylaşmamalısın.
Belirteçler bir kullanıcıya özeldir ve asla paylaşılmamalı. Başkalarının erişime ihtiyacı varsa, izinlerine uygun ayrı belirteçler oluşturmak veya kullanıcı rolleri ayarlamak daha iyidir, bu sayede güvenlik risklerinden kaçınırsın. Yanlış kullanım istenmeyen erişime, veri sızıntısına veya gizlilik ihlaline yol açabilir. Belirteçleri gizli tutmalı ve şüphelendiğinde hemen iptal etmelisin.
Logto ile uygulamanı kişisel erişim belirteci oluşturmaya hazırla
B2B servisler veriyor ya da yenilikçi bir AI ürünü geliştiriyor olsan da, geliştirici dostu bir kimlik doğrulama/yetkilendirme deneyimi sunmak esastır. Kişisel bir erişim belirteci, işinin önü için yeni fırsatlar yaratabilir.
Logto, kapsamlı bir Müşteri Kimlik ve Erişim Yönetimi (CIAM) çözümü olarak, kişisel erişim belirteçlerini kolayca oluşturmanı, yönetmeni ve iptal etmeni sağlar. Başlamak için:
- Logto Konsol > Kullanıcı Yönetimi adresine git.
- Belirli bir kullanıcının profilinden kişisel erişim belirteçlerini yönet.
Logto ile:
- Yeni kişisel erişim belirteçleri oluşturabilirsin.
- Tek bir kullanıcı için birden çok belirteç yönetebilirsin.
- Belirteçler için özel son kullanma tarihi belirleyebilirsin.
- Daha iyi organizasyon için belirteçleri yeniden adlandırabilirsin.
- Artık gerek olmayan belirteçleri iptal edebilirsin.
Ayrıca, kullanıcıların profil ayarları sayfalarından kendi kişisel erişim belirteçlerini Logto Yönetim API'ları ile kendi başlarına yönetmelerini etkinleştirebilirsin.