Logto Yönetim API'sini Kullanın: Adım Adım Kılavuz
Farklı senaryolarda uygulamanız için Logto Yönetim API'sini nasıl kullanacağınızı öğrenin.
Logto, kimlikleri yönetmeniz için web tabanlı bir Konsol sağlarken, Yönetim API'sini kullanmak, iş akışınızı otomatikleştirmek ya da Logto'ya programlı olarak erişmek istediğinizde güçlü bir alternatiftir. Bu kılavuz, farklı senaryolarda Logto Yönetim API'sini nasıl kullanacağınızı adım adım anlatacak.
Genel Bakış
Logto Konsolu'nda "Logto Yönetim API'si" adında yerleşik bir API kaynağı olduğunu fark edebilirsiniz. Bu kılavuzda anahtar rolü o oynayacak.
Diğer API kaynaklarıyla karşılaştırıldığında, şu anda Logto Yönetim API'si son kullanıcılar tarafından doğrudan erişime izin vermemektedir çünkü makineden makineye iletişim için tasarlanmıştır ve Logto hesabınızı ve kaynaklarınızı yönetmek için kullanılabilecek kadar güçlüdür.
Logto Yönetim API'sini kullanmak isteyebileceğiniz bazı tipik senaryolar şunlardır:
CI/CD
Servis iletişimi
Tek sayfa uygulama
HTML render eden web sunucusu
Mimari
Senaryolardan bağımsız olarak, Logto Yönetim API'sine erişmek için kullanabileceğiniz iki model bulunmaktadır.
Model 1: Doğrudan erişim
Bu modelde, istemciniz veya servisiniz doğrudan Logto Yönetim API'sine erişir. Logto'da, istemci veya servis "makineden makineye" uygulama olarak adlandırılır.
Backend servisi kullanmaya bir örnek:
Model 2: Dolaylı erişim
Bu modelde, istemciniz veya servisiniz Logto Yönetim API'sine backend servis üzerinden erişir. Model 2, model 1'in üzerine inşa edilmiştir ve başka bir uygulama işin içine girer. Yeni uygulama, backend servise erişecek olan geleneksel bir web, yerel veya tek sayfa uygulama olabilir.
Tek sayfa uygulama kullanmaya bir örnek:
Bu model, Logto Yönetim API'sine erişimi kontrol etmek için özel bir mantık oluşturmak istediğinizde kullanışlıdır. Örneğin, bir tüketici için tüm siparişleri döndürmek ve her siparişe satıcı bilgisini eklemek isteyebilirsiniz. Bu durumda, tek sayfa uygulamasını backend servisten siparişleri almak için istekte bulunmak üzere kullanabilir ve backend servisinde, satıcının bilgilerini almak için Logto Yönetim API'sini kullanabilirsiniz.
Logto Yönetim API'sine Erişim
Makineden makineye uygulama oluşturma
Öncelikle, Logto Konsolu'nda makineden makineye bir uygulama oluşturmanız gerekir. "Uygulamalar" sekmesine gidin ve "Uygulama oluştur" butonuna tıklayın. Ardından "Makineden makineye" kartında "Oluşturmaya başlayın" seçeneğine tıklayın.
Makineden makineye rolü oluşturma
Logto Yönetim API'sine erişmek için, uygun yetkilere sahip bir makineden makineye rol oluşturmanız gerekir. Logto Konsolu'nda "Roller" sekmesine gidin ve "Rol oluştur" butonuna tıklayın. "Daha fazla seçenek göster"'e tıklayarak "Rol türü" bölümünde "Makineden makineye uygulama rolü"'nü seçin.
Şimdi, "İzinleri ata" bölümünde "Logto Yönetim API'si"nin göründüğünü görebilirsiniz. Tüm yetkiler için API kaynağını işaretleyin ve "Rol oluştur" butonuna tıklayın.
Rol oluşturulduktan sonra, bir önceki adımda oluşturduğunuz makineden makineye uygulamaya bu rolü atayabilirsiniz.
Erişim tokeni alma
Makineden makineye uygulamanız için istemci kimlik bilgileri ile erişim tokeni almak adına bu makaledeki adımları takip edebilirsiniz. Logto Yönetim API'sindeki bir endpoint'e istek göndererek erişim tokenini test edin.
Artık model 1 için hazırsınız. Erişim tokeninin kısa bir süre geçerli olduğunu unutmayın, bu yüzden önbelleğe almak isterseniz periyodik olarak yenilemek isteyebilirsiniz.
Başka bir katman ekleme
Logto Yönetim API'sine erişim son kullanıcılara izin verilmese de başka bir katman ekleyerek Logto Yönetim API'sinin gücünden yararlanabilir ve servisinizi güçlendirebilirsiniz.
Örneğin, bir tek sayfa uygulama ve backend servis ile bir online topluluk oluşturuyorsunuz. İmza atmış kullanıcıların en fazla takipçiye sahip ilk 10 kullanıcıyı görebilmesini sağlayan bir özellik isteyebilirsiniz. Bir GET /api/top-users
endpoint'i oluşturulacaktır:
Endpoint'in yalnızca imza atmış kullanıcılar tarafından erişilebilir olmasını sağlamak için Logto Konsolu'nda bir "tek sayfa uygulaması" oluşturabilir ve Logto SDK'sını entegre edebilirsiniz. Ardından SDK'yı kullanarak erişim tokenini alabilir ve endpoint'e istek gönderebilirsiniz:
Backend servisinde, önce veritabanından en aktif 10 kullanıcıyı sorgulayabilir, ardından Logto Yönetim API'sini kullanarak kullanıcı bilgilerini alabilirsiniz:
Son olarak, tek sayfa uygulamasına yanıtı döndürebilirsiniz:
Tam bir sekans diyagramı:
Bu akışta, iki tür erişim tokeni yer alır: biri Logto Yönetim API'sine erişmek için backend servisi için, diğeri ise backend servisine erişmek için tek sayfa uygulama için.
Önceki bölümde aldığınız erişim tokeni ilki, Logto SDK'sından alabileceğiniz ikincisidir.
Tek sayfa uygulamasındaki erişim tokenim JSON Web Token (JWT) değil
Logto SDK'larındaki getAccessToken
metodunu çağırırken kaynağı belirtmezseniz, erişim tokeni yalnızca userinfo endpoint için kullanılmak üzere bir opak dizi olacaktır. JWT almak için:
- Logto Konsolu'nda bir API kaynağı tanımlayın, örneğin
https://api.example.com
. - API kaynağını Logto SDK'nın
resources
konfigürasyonuna ekleyin, örneğinresources: ['https://api.example.com']
. getAccessToken
metodunu API kaynağı ile çağırın, örneğingetAccessToken('https://api.example.com')
.
JWT doğrulama işlemi için lütfen API isteğinin yetkilendirme tokenini doğrulayın başlığına bakın.
Tek sayfa uygulamasındaki JWT ne anlama geliyor?
JWT, yalnızca kullanıcının giriş yapmış olduğunu ve API kaynağına erişmeye çalıştığını belirtir. Kullanıcının API kaynağına özel yetkilere sahip olduğunu belirtmez. Kullanıcının API kaynağına erişim izni verip vermemeye siz karar vereceksiniz.
Daha detaylı erişim kontrolüne ihtiyaç duyuyorsanız, kullanıcıya rol tabanlı erişim kontrolü (RBAC) uygulayabilirsiniz. Detaylar için 🔐 Rol tabanlı erişim kontrolü (RBAC) bölümüne bakın.
Kapanış Notları
Logto Yönetim API'si, birçok senaryo için güçlü ve esnektir. Standart protokollerin yardımıyla Logto Yönetim API'sini uygulamanıza kolayca entegre edebilir ve güvenli, ölçeklenebilir bir sistem kurabilirsiniz. Sorularınız varsa lütfen bizimle iletişime geçmekten çekinmeyin.