Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
OAuth, API'ler için önde gelen yetkilendirme protokolü olarak ortaya çıkmıştır. Sürüm Bu konuda ayrıntılı olarak açıklanan OAuth OAuth'da 2.0 Spesifikasyonu.
OAuth, uygulama son kullanıcılarının yetkilendirmesine olanak tanıyan bir protokoldür uygulamalarının kullanıcı adına işlem yapmasını sağlar. Uygulamalar bunu jetonlar API sağlayıcıların. API sağlayıcı, uygulama tarafında kimlik doğrulaması yapar kimlik bilgileri; kullanıcının uygulamayı yetkilendirdiğinden emin olur ve ardından bir erişim jetonu düzenler uygulamaya geri dönelim. Uygulama, korumalı bir API kullandığında Apigee Edge, geçerli olduğunu ve geçerlilik süresinin dolmadığını doğrulayın. API sağlayıcı olarak uç noktaları kullanıma sunmanız gerekir erişim jetonları almasını sağlar.
OAuth'u kullanmaya başlamanızı kolaylaştırmak için Apigee Edge politikalarıkullanarak OAuth'u yapılandırmanıza ve zorunlu kılmanıza olanak tanır. Bunu yaparken herhangi bir işlem yapmanız gerekmez. kod yazabilirsiniz. Bu konuda, API'lerinizi korumayı, API'lere erişim elde etmeyi jetonları ve bu erişim jetonlarının korumalı API'lere erişmek için nasıl kullanılacağı.
için varsayılan OAuth yapılandırması kuruluş
Apigee Edge'deki tüm kuruluşlar size kolaylık sağlamak için OAuth 2.0 setiyle önceden yapılandırılmıştır. istemci kimlik bilgileri izin türünü uygulayan uç noktalar. Müşteri kimlik bilgileri izin türü, uygulaması karşılığında erişim jetonları vermeye yönelik bir prosedürü tanımlar. kimlik bilgileri ekleyin. Bu uygulama kimlik bilgileri, Google'ın uygulama erişimini Apigee Edge, bir kuruluşta kayıtlı her uygulama için sorun oluşturur. "Client credentials" (İstemci kimlik bilgileri) tüketici anahtarı ve gizli anahtar çiftinin kendisini ifade eder.
Edge Geliştirici Hizmetleri'ni kullanarak uygulamalara kimlik bilgisi verme hakkında daha fazla bilgi için Uygulamaları kaydetme ve anahtarları yönetme
Bu yüzden, bir öncekine emin olmak için API anahtarından alınan API güvenlik şemanız OAuth istemcisi kimlik bilgilerine doğrulama. Her iki şema da istemci uygulamasını doğrularsınız. Aradaki fark, istemci kimlik bilgilerinin ek bir veri katmanı Böylece gerektiğinde erişim jetonunu iptal etmenize gerek kalmadan kolayca iptal edebilirsiniz. uygulamanın tüketici anahtarı. Varsayılan OAuth uç noktalarıyla çalışmak için herhangi bir tüketici anahtarını kullanabilirsiniz ve jetondan erişim jetonlarını almak üzere kuruluşunuzdaki bir uygulama için oluşturulan gizli anahtar uç nokta. (Hatta halihazırda tüketici anahtarları ve kontrolleri olan uygulamalar için istemci kimlik bilgilerini etkinleştirebilirsiniz) secrets.)
İstemci kimlik bilgileri izninin tam spesifikasyonu OAuth 2.0 Spesifikasyon.
API'nizi bir politikayla koruyun
Erişim jetonlarını kullanmadan önce, API'lerinizi OAuth erişimini doğrulayacak şekilde yapılandırmanız gerekir. jeton. Bunu yapmak içinbir API proxy'sini erişim jetonlarını doğrula. Bu durum, bir uygulama her istekte bulunduğunda API'lerinizden birini tükettiğinde uygulama, API isteğiyle birlikte geçerli bir erişim jetonu sunmalıdır. Apigee Edge, erişim jetonlarının oluşturulması, depolanması ve doğrulanmasının ardındaki karmaşıklığı üstlenir bahsediyor.
Yeni bir kod oluştururken API'ye kolayca OAuth doğrulaması ekleyebilirsiniz. yeni bir API proxy'si eklemeniz gerekir. Yeni bir API proxy'si oluştururken Özellik Ekle'yi seçebilirsiniz. Farklı aşağıda gösterildiği gibi radyo düğmesini seçerek OAuth 2.0 erişim jetonlarının doğrulamasını ekleyebilirsiniz OAuth v2.0 Access Tokens ile güvenlik altına alın'ın yanındaki kutuyu işaretleyin. Bu seçeneği belirttiğinizde iki politikalar, biri erişim jetonlarını, diğerini de doğrulamak için yeni oluşturulan API proxy'sine eklenecek işaretini kaldırın.
Ayrıca, OAuth v2.0 Erişim Jetonları ile güvenli seçeneğini belirlediğinizde API Ürününü Yayınla onay kutusu seçilebilir hale gelir ve bu onay kutusu otomatik olarak seçili. Yeni API'yi derlerken otomatik olarak bir ürün oluşturmak istiyorsanız bu seçeneği işaretleyin temsil eder. Otomatik olarak oluşturulan ürün, yeni API proxy'si ile ilişkilendirilecek şekilde oluşturulur. Şu durumda: Bu yeni API'yi ilişkilendirmek istediğiniz mevcut bir ürününüz varsa, bu API'yi onay kutusunu işaretleyin. Ürünler hakkında bilgi için bkz. API ürünü nedir?
API proxy'si için erişim jetonu doğrulamasını etkinleştirmeniz gerekiyorsa varsa tek yapmanız gereken, API'ye OAuthV2 türünde bir politika eklemektir. istediğinize karar verin. OAuthV2 politikaları bir işlem belirterek çalışır. Şunu istiyorsanız: erişim jetonlarını doğrulamak için VerifyAccessToken adlı işlemi belirtirsiniz. (Diğer işlem türleri, OAuthV2 politika türü tarafından GenerateAccessToken ve GenerateRefreshToken desteklenir. Kurulum sırasında bu işlemler hakkında OAuth uç noktaları.)
VerifyOAuthTokens politikası OAuthV2 türü
Erişim jetonlarını doğrulamaya yönelik örnek politika aşağıdaki gibidir. (Ayarlar, aşağıda gösterilmektedir.)
<OAuthV2 name="VerifyOAuthTokens"> <Operation>VerifyAccessToken</Operation> </OAuthV2>
Politika ayarları
Ad | Açıklama | Varsayılan | Zorunlu mu? |
---|---|---|---|
OAuthV2 |
Politika türü | ||
name |
API proxy'si Uç Noktasında referans verilen politikanın adı yapılandırma. | Yok | Evet |
Operation |
OAuthV2 politikası tarafından yürütülecek işlem. VerifyAccessToken'ı belirterek Erişim jetonu isteklerini kontrol etmek ve erişim kodunun Jeton geçerli, süresi dolmamış ve istenen API kaynağını kullanmak üzere onaylanmış (URI). (Bu kontrolü yapmak için politika, uygulamanın onaylandığı API ürününü okur consume.) | Yok | Evet |
Yönetim kullanıcı arayüzünde bu politikayı oluşturmak için API'ler > API Proxy'ler.
API proxy'leri listesinden weatherapi'yi seçin.
Hava durumu API'sinin Genel Bakış bölümünden Geliştir'i seçin. görünüm.
Açılır menüde Yeni Politika > OAuth 2.0 sürümü
OAuth v2.0 politikasını seçtikten sonra, Yeni Politika yapılandırma menüsü gösterilir.
Politikanıza açıklayıcı bir ad verin ve Politika Ekle'yi seçtiğinizden emin olun. Politika eki ayarları olarak Flow PreFlow ve Request'i seçin.
Ekle'yi seçtiğinizde politika oluşturulur ve weatherapi'nin isteğine eklenir. PreFlow.
Politikayı ekledikten sonra aşağıdaki PreFlow yapılandırmasını Designer bölmesi.
Bir metin düzenleyici veya IDE'de yerel olarak çalışıyorsanız Korumak istediğiniz API proxy'sinin PreFlow isteğine ilişkin Politika:
<PreFlow> <Request> <Step><Name>VerifyOAuthTokens</Name></Step> </Request> </PreFlow>
Politikayı PreFlow isteğine ekleyerek politikanın her zaman uygulanmasını sağlarsınız seçeneğini belirleyin.
Artık OAuth 2.0 istemci kimlik bilgileriyle bir API'nin güvenliğini sağladınız. Bir sonraki adım, .
Korunan bir dosyaya erişmek için erişim jetonu kullanma kaynak
Weatherapi'nin artık OAuth 2.0 ile güvenliği sağlandığına göre uygulamaların, kullanmak için erişim jetonları sunması gerekir API. Uygulama, korumalı bir kaynağa erişmek için istekte "Yetkilendirme" HTTP üstbilgisi ile ilgili aşağıdaki gibidir:
$ curl -H "Authorization: Bearer ylSkZIjbdWybfs4fUQe9BqP0LH5Z" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282
API'ye eklenmiş bir OAuthV2 politikası olduğu için Apigee Edge, erişim jetonunun geçerli olup olmadığını kontrol eder ve daha sonra, hava durumu raporunu uygulamaya döndürerek API'ye erişim izni verir istekte bulunan kişidir.
Peki uygulamalar erişim jetonlarını nasıl alır? Bu konuyu bir sonraki bölümde ele alacağız.
İstemci kimlik bilgilerini erişim jetonu
Uygulamalar, erişim jetonlarını tüketici anahtarı/gizli anahtarı çiftlerini jetonda sunarak elde eder. uç nokta. Jeton uç noktası, oauth değerleridir. Bu nedenle, uygulamaların oauth API tarafından sunulan API'yi çağırması gerekir. proxy'sini kullanabilirsiniz. Uygulama bir erişim jetonu aldıktan sonra hava durumu API'sini çağırabilir erişim jetonunun süresi dolana ya da erişim jetonu iptal edilene kadar tekrar tekrar kontrol edin.
Şimdi kendinizi bir uygulama geliştirici olarak düşünmek için biraz değişiklik yapmanız gerekiyor. Şunu aramak istiyorsunuz: uygulamanız için bir erişim jetonu almanız gerekir. Yapmanız gereken ilk şey Bir tüketici anahtarı ve gizli bilgi çifti (diğer adıyla API) anahtarı veya uygulama anahtarı) kullanılabilir.
Kuruluşunuzda Apigee'ye bir uygulama kaydederek tüketici anahtarı ve sırrı edinebilirsiniz. Kenar.
Kuruluşunuzdaki tüm uygulamaları Apigee Edge yönetim kullanıcı arayüzünde görebilirsiniz.
Kuruluşunuzda kayıtlı uygulamaların listesi görüntülenir.
(Herhangi bir uygulama görüntülenmiyorsa Uygulamaları kaydetme ve API'yi yönetme konusundan bir uygulamayı nasıl kaydedeceğinizi öğrenebilirsiniz) tuşlarını kullanın.)
Ayrıntılı profilini görüntülemek için listeden bir uygulama seçin.
Seçtiğiniz uygulamanın ayrıntı görünümünde Tüketici Anahtarı alanlarına dikkat edin ve Tüketici Gizli Anahtarı. Bu iki değer, istemci OAuth erişim jetonu almak için kullanacağınız kimlik bilgilerini girin.
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps \ -u myname:mypass
Bu çağrı, uygulama kimliğine göre bir uygulama listesi döndürür.
[ "da496fae-2a04-4a5c-b2d0-709278a6f9db", "50e3e831-175b-4a05-8fb6-05a54701af6e" ]
Bir uygulamanın profilini, uygulama kimliğinde basit bir GET çağrısı yaparak alabilirsiniz:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \ -u myname:mypass
Örneğin:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/da496fae-2a04-4a5c-b2d0-709278a6f9db \ -u myname:mypass
API çağrısı, belirttiğiniz uygulamanın profilini döndürür. Örneğin, bir kuruluşun uygulama profili weatherapp aşağıdaki JSON gösterimine sahiptir:
{ "accessType" : "read", "apiProducts" : [ ], "appFamily" : "default", "appId" : "da496fae-2a04-4a5c-b2d0-709278a6f9db", "attributes" : [ ], "callbackUrl" : "http://weatherapp.com", "createdAt" : 1380290158713, "createdBy" : "noreply_admin@apigee.com", "credentials" : [ { "apiProducts" : [ { "apiproduct" : "PremiumWeatherAPI", "status" : "approved" } ], "attributes" : [ ], "consumerKey" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K", "consumerSecret" : "hAr4Gn0gA9vAyvI4", "expiresAt" : -1, "issuedAt" : 1380290161417, "scopes" : [ ], "status" : "approved" } ], "developerId" : "5w95xGkpnjzJDBT4", "lastModifiedAt" : 1380290158713, "lastModifiedBy" : "noreply_admin@apigee.com", "name" : "weatherapp", "scopes" : [ ], "status" : "approved" }
consumerKey
ve consumerSecret
değerlerini not edin. Bunları kullanıyorsunuz
kullanarak bir erişim jetonu almak için "Temel Kimlik Doğrulama kimlik bilgileri" olarak sunulacak
aşağıdaki gibi bir HTTP isteği gönderin. İzin türü, isteğe bir sorgu parametresi olarak sunulur.
({org_name} değişkeninin değerini, kuruluşunuzun adını yansıtacak şekilde değiştirdiğinizden emin olun.
hakkında daha fazla bilgi edinin.)
Erişim jetonu almak için istek oluşturun
Aşağıdaki istekte, consumerKey
değerini
client_id
. Şunun için ilişkili consumerSecret
değerini:
client_secret
.
$ curl https://{org_name}-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials -X POST -d 'client_id=bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K&client_secret=hAr4Gn0gA9vAyvI4'
API Hizmetleri, tüketici anahtarını ve sırrını doğrular ve ardından bu uygulama için erişim jetonu:
{ "issued_at" : "1380892555397", "application_name" : "957aa73f-25c2-4ead-8021-adc01f0d2c6b", "scope" : "", "status" : "approved", "api_product_list" : "[oauth-test]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "client_id" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K", "access_token" : "ylSkZIjbdWybfs4fUQe9BqP0LH5Z", "organization_name" : "rqa", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
Yukarıdaki yanıtta yer alan access_token
değerini not edin. Bu, ekibinizin
uygulamanın korunan kaynaklara çalışma zamanı erişimi elde etmek için kullanacağı zamanı ifade eder. Bu uygulama için erişim jetonu
ylSkZIjbdWybfs4fUQe9BqP0LH5Z
Artık kullanılabilecek geçerli bir erişim jetonunuz (ylSkZIjbdWybfs4fUQe9BqP0LH5Z
) var
korumalı API'lere erişmek için kullanır.
Varsayılan OAuth yapılandırmasıyla çalışma
Apigee Edge'deki her kuruluşa (ücretsiz deneme sürümü kuruluşları bile) bir OAuth jetonu sağlanır uç nokta. Uç nokta, API proxy'sindeki politikalarla önceden yapılandırılmıştır. oauth değerleridir. Hesap oluşturur oluşturmaz jeton uç noktasını kullanmaya başlayabilirsiniz Apigee Edge'de bulabilirsiniz.
Varsayılan OAuth uç noktası, aşağıdaki uç nokta URI'sini gösterir:
/oauth/client_credential/accesstoken
Erişim jetonları alması gereken geliştiricilere bu URI'yi yayınlayın. Uygulama geliştiriciler yapılandırması uygulamalarını bu uç noktayı çağırarak erişim elde etmek için tüketici anahtarı ve gizli anahtar çiftleri sunar jeton.
Varsayılan istemci kimlik bilgileri jeton uç noktası, ağ üzerinde aşağıdaki gibi kullanıma sunuldu: URL:
https://{org_name}-{env_name}.apigee.net/oauth/client_credential/accesstoken
Örneğin, kuruluşunuzun adı "apimakers" ise URL şöyle olur:
https://apimakers-test.apigee.net/oauth/client_credential/accesstoken
Bu, geliştiricilerin erişim jetonlarını almak için çağırdıkları URL'dir.
3 aşamalı OAuth yapılandırmaları
Üç aşamalı OAuth yapılandırmaları (yetkilendirme kodu, örtülü ve şifre verme) türler) içerdiğinde uygulama son kullanıcılarının kimliklerini API sağlayıcı olarak sizin doğrulamanız gerekir. Şu zamandan beri: Kuruluş, kullanıcıların kimliğini farklı yöntemlerle doğrular; bazı politika özelleştirmeleri veya kodları gerekir OAuth'u kullanıcı mağazanızla entegre edin. Örneğin, tüm kullanıcılarınız Etkin modda depolanabilir LDAP'de veya başka bir kullanıcı deposunda Üç aşamalı OAuth'u çalışır duruma getirmek için Bu kullanıcı mağazasına yönelik bir kontrolün genel OAuth akışına entegre edilmesi gerekiyor.
OAuth 1.0a
OAuth 1.0a politikasıyla ilgili ayrıntılar için OAuth v1.0a politikası başlıklı makaleye göz atın.
Yardım alın
Yardım için Apigee'ye göz atın Müşteri Desteği.