Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Neler öğreneceksiniz?
- Örnek bir API proxy'si indirip dağıtın.
- OAuth ile korunan bir API proxy'si oluşturun.
- Ürün, geliştirici ve uygulama oluşturun.
- Kimlik bilgilerini OAuth erişim jetonuyla değiştirin.
- Erişim jetonuyla bir API çağırın.
Bu eğiticide, OAuth 2.0 ile bir API'nin güvenliğini nasıl sağlayacağınız gösterilmektedir.
OAuth, uygulamaların kullanıcı adı ve şifrelerini açıklamalarına gerek kalmadan kullanıcılar adına bilgilere erişmesini sağlayan bir yetkilendirme protokolüdür.
OAuth ile güvenlik kimlik bilgileri (ör. kullanıcı adı/şifre veya anahtar/gizli) erişim jetonuyla değiştirilir. Örneğin:
joe:joes_password (username:password) veya
Nf2moHOASMJeUmXVdDhlMbPaXm2U7eMc:unUOXYpPe74ZfLEb (key:secret)
şuna benzer bir şey olur:
b0uiYwjRZLEo4lEu7ky2GGxHkanN
Erişim jetonu, rastgele bir karakter dizisidir ve geçicidir (nispeten kısa bir süre sonra süresi dolmalıdır). Bu nedenle, bir kullanıcıyı uygulama iş akışında doğrulamak için erişim jetonunu iletmek, gerçek kimlik bilgilerini iletmeye kıyasla çok daha güvenlidir.
OAuth 2.0 spesifikasyonu, uygulamalar için erişim jetonlarının dağıtılmasına yönelik "izin türleri" adı verilen farklı mekanizmalar tanımlar. OAuth 2.0 tarafından tanımlanan en temel erişim izni türüne "istemci kimlik bilgileri" adı verilir. Bu izin türünde, OAuth erişim jetonları istemci kimlik bilgileri karşılığında oluşturulur. Bu kimlik bilgileri, yukarıdaki örnekte olduğu gibi tüketici anahtarı/tüketici gizli anahtarı çiftleridir.
Edge'deki istemci kimlik bilgileri atama türü, API proxy'lerindeki politikalar kullanılarak uygulanır. Tipik bir OAuth akışı iki adımdan oluşur:
- İstemci kimlik bilgilerinden OAuth erişim jetonu oluşturmak için API proxy'si 1'i çağırın. Bu işlem, API proxy'sindeki bir OAuth v2.0 politikası tarafından gerçekleştirilir.
- API çağrısında OAuth erişim jetonunu göndermek için API proxy'si 2'yi çağırın. API proxy'si, OAuth v2.0 politikası kullanarak erişim jetonunu doğrular.
İhtiyacınız olanlar
- Apigee Edge hesabı Henüz hesabınız yoksa Apigee Edge hesabı oluşturma bölümündeki talimatları uygulayarak kaydolabilirsiniz.
- Komut satırından API çağrıları yapmak için makinenize cURL'nin yüklenmesi gerekir.
Jeton oluşturan bir API proxy'sini indirip dağıtma
Bu adımda, bir API çağrısında gönderilen tüketici anahtarı ve tüketici gizli anahtarından OAuth erişim jetonu oluşturan API proxy'sini oluşturacaksınız. Apigee, bunu yapan örnek bir API proxy'si sağlar. Proxy'yi şimdi indirip dağıtacak, ardından eğitimde kullanacaksınız. (Bu API proxy'sini kendiniz kolayca oluşturabilirsiniz. Bu indirme ve dağıtma adımı, kolaylık sağlamak ve daha önce oluşturulmuş proxy'leri paylaşmanın ne kadar kolay olduğunu göstermek için uygulanır.)
- "oauth" örnek API proxy'si ZIP dosyasını dosya sisteminizdeki herhangi bir dizine indirin.
- https://apigee.com/edge adresine gidip oturum açın.
- Soldaki gezinme çubuğunda Geliştir > API Prox'ileri'ni seçin.
- + Proxy'yi tıklayın.

- Create Proxy (Proxy Oluştur) sihirbazında Upload proxy bundle'ı (Proxy paketi yükle) tıklayın.
- İndirdiğiniz
oauth.zipdosyasını seçip Sonraki'yi tıklayın. - Oluştur'u tıklayın.
- Derleme tamamlandıktan sonra, yeni proxy'yi API proxy düzenleyicisinde görüntülemek için Proxy'yi düzenle'yi tıklayın.
- API Proxy Editor'daki Genel Bakış sayfasında Deployment (Dağıtım) açılır listesini tıklayın
ve test'i (test) seçin. Bu, kuruluşunuzdaki test ortamıdır.

Onay isteminde Dağıt'ı tıklayın.
Dağıtım açılır listesini tekrar tıkladığınızda, proxy'nin test ortamına dağıtıldığını gösteren yeşil bir simge görünür.

Tebrikler! Bir erişim jetonu oluşturan API proxy'sini Edge kuruluşunuza başarıyla indirip dağıttınız.
OAuth akışını ve politikasını görüntüleme
API proxy'sinin içeriğini daha yakından inceleyelim.
- API proxy düzenleyicide Geliştir sekmesini tıklayın. Soldaki Navigator bölmesinde iki politika görürsünüz. Ayrıca,
Proxy Endpointsbölümünde ikiPOSTakışı görürsünüz. -
Proxy Endpointsbölümünde AccessTokenClientCredential'ı tıklayın.

XML kodu görünümünde
Flowadlı birAccessTokenClientCredentialgörürsünüz:<Flow name="AccessTokenClientCredential"> <Description/> <Request> <Step> <Name>GenerateAccessTokenClient</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/accesstoken") and (request.verb = "POST")</Condition> </Flow>Akış, API proxy'sindeki bir işleme adımıdır. Bu durumda, akış belirli bir koşul karşılandığında tetiklenir (koşullu akış olarak adlandırılır).
<Condition>öğesinde tanımlanan koşul, API proxy çağrısı/accesstokenkaynağına yapılırsa ve istek fiiliPOSTise erişim jetonunu oluşturanGenerateAccessTokenClientpolitikasının yürütülmesini belirtir. -
Şimdi koşullu akışın tetikleyeceği politikaya bakalım. Akış şemasında GenerateAccessTokenClient politika simgesini tıklayın.

Aşağıdaki XML yapılandırması, kod görünümüne yüklenir:<OAuthV2 name="GenerateAccessTokenClient"> <!-- This policy generates an OAuth 2.0 access token using the client_credentials grant type --> <Operation>GenerateAccessToken</Operation> <!-- This is in millseconds, so expire in an hour --> <ExpiresIn>3600000</ExpiresIn> <SupportedGrantTypes> <!-- This part is very important: most real OAuth 2.0 apps will want to use other grant types. In this case it is important to NOT include the "client_credentials" type because it allows a client to get access to a token with no user authentication --> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <GenerateResponse/> </OAuthV2>
Yapılandırma şunları içerir:
- Birkaç önceden tanımlanmış değerden biri olabilen
<Operation>, politikanın ne yapacağını tanımlar. Bu durumda, bir erişim jetonu oluşturur. - Jetonun süresi, oluşturulduktan 1 saat (3.600.000 milisaniye) sonra dolar.
<SupportedGrantTypes>içinde, kullanılması beklenen OAuth<GrantType>,client_credentials(tüketici anahtarı ve sırrını OAuth jetonuyla değiştirme) olmalıdır.- İkinci
<GrantType>öğesi, OAuth 2.0 spesifikasyonunun gerektirdiği şekilde, API çağrısında izin türü parametresinin nerede aranacağını politikaya bildirir. (Bunu daha sonra API çağrısında göreceksiniz.) İzin türü, HTTP üstbilgisinde (request.header.grant_type) veya form parametresi olarak (request.formparam.grant_type) da gönderilebilir.
- Birkaç önceden tanımlanmış değerden biri olabilen
Şu anda API proxy'siyle ilgili başka bir işlem yapmanız gerekmiyor. Sonraki adımlarda, OAuth erişim jetonu oluşturmak için bu API proxy'sini kullanacaksınız. Ancak öncelikle birkaç işlem daha yapmanız gerekir:
- OAuth ile güvenliğini sağlamak istediğiniz API proxy'sini oluşturun.
- Erişim jetonu için değiştirmeniz gereken tüketici anahtarı ve tüketici gizli anahtarı ile sonuçlanacak birkaç ek yapay nesne oluşturun.
OAuth ile korunan API proxy'sini oluşturma
Şimdi korumak istediğiniz API proxy'sini oluşturacaksınız. Bu, istediğiniz bir şeyi döndüren API çağrısıdır. Bu durumda, API proxy'si IP adresinizi döndürmek için Apigee'nin mocktarget hizmetini çağırır. ANCAK, bu yanıtı yalnızca API çağrınızla birlikte geçerli bir OAuth erişim jetonu iletirseniz görürsünüz.
Burada oluşturduğunuz API proxy'si, istekte OAuth jetonu olup olmadığını kontrol eden bir politika içerir.
- Soldaki gezinme çubuğunda Geliştir > API Prox'ileri'ni seçin.
- + Proxy'yi tıklayın.

- Proxy Oluşturma sihirbazında Ters proxy (en yaygın) seçeneğini belirleyin ve İleri'yi tıklayın.
- Proxy'yi aşağıdakilerle yapılandırın:
Bu alanda bunu yap Proxy Adı Şunu girin: helloworld_oauth2Project Base Path Şuna ayarlanacak:
/hellooauth2Proje Temel Yolu, API proxy'sine istekte bulunmak için kullanılan URL'nin bir parçasıdır.
Mevcut API Şunu girin:
https://mocktarget.apigee.net/ipBu, Apigee Edge'in API proxy'sine yapılan bir istekte çağırdığı hedef URL'yi tanımlar.
Açıklama Şunu girin: hello world protected by OAuth - İleri'yi tıklayın.
- Genel politikalar sayfasında:
Bu alanda bunu yap Güvenlik: Yetkilendirme OAuth 2.0'ı seçin. - İleri'yi tıklayın.
- Sanal Ana Makineler sayfasında Sonraki'yi tıklayın.
- Oluştur sayfasında test ortamının seçili olduğundan emin olun ve Oluştur ve Dağıt'ı tıklayın.
- Özet sayfasında, yeni API proxy'nizin başarıyla oluşturulduğu ve API proxy'sinin test ortamınıza dağıtıldığına dair bir onay görürsünüz.
- API proxy'sinin Genel bakış sayfasını görüntülemek için Proxy'yi düzenle'yi tıklayın.
Bu kez API proxy'sinin otomatik olarak dağıtıldığına dikkat edin. "Test" ortamının yanında yeşil bir dağıtım noktası olduğundan emin olmak için Dağıtım açılır listesini tıklayın.
Politikaları görüntüleme
Oluşturduğunuz öğeleri daha yakından inceleyelim.
- API proxy düzenleyicide Geliştir sekmesini tıklayın. API proxy'sinin istek akışına iki politika eklendiğini görürsünüz:
- OAuth v2.0 erişim jetonunu doğrulama: Geçerli bir OAuth jetonunun mevcut olduğundan emin olmak için API çağrısını kontrol eder.
- Remove Header Authorization: Erişim jetonu kontrol edildikten sonra hedef hizmete iletilmemesi için kaldıran bir AssignMessage politikasıdır. (Hedef hizmetin OAuth erişim jetonuna ihtiyacı varsa bu politikayı kullanmazsınız).
-
Akış görünümünde OAuth v2.0 Erişim Jetonunu Doğrula simgesini tıklayın ve kod bölmesinde altındaki XML'ye bakın.

<OAuthV2 async="false" continueOnError="false" enabled="true" name="verify-oauth-v2-access-token"> <DisplayName>Verify OAuth v2.0 Access Token</DisplayName> <Operation>VerifyAccessToken</Operation> </OAuthV2><Operation>bilgisininVerifyAccessTokenolduğunu unutmayın. İşlem, politikanın ne yapması gerektiğini tanımlar. Bu durumda, istekte geçerli bir OAuth jetonu olup olmadığı kontrol edilir.
API ürünü ekleme
Apigee kullanıcı arayüzünü kullanarak API ürünü eklemek için:
- Yayınla > API Ürünleri'ni seçin.
- +API ürünü'nü tıklayın.
- API ürününüz için Ürün ayrıntıları'nı girin.
Alan Açıklama Ad API ürününün dahili adı. Ad içinde özel karakterler belirtmeyin.
Not: API ürünü oluşturulduktan sonra adı düzenleyemezsiniz. Örneğin,helloworld_oauth2-ProductGörünen ad API ürününün görünen adı. Görünen ad, kullanıcı arayüzünde kullanılır ve istediğiniz zaman düzenlenebilir. Belirtilmezse ad değeri kullanılır. Bu alan, Ad değeri kullanılarak otomatik olarak doldurulur. İçeriğini düzenleyebilir veya silebilirsiniz. Görünen ad özel karakterler içerebilir. Örneğin, helloworld_oauth2-Product.Açıklama API ürününün açıklaması. Ortam API ürününün erişime izin vereceği ortamlar. API proxy'sini dağıttığınız ortamı seçin. Örneğin, test.Erişim Herkese açık'ı seçin. Erişim isteklerini otomatik olarak onaylama Bu API ürünü için herhangi bir uygulamadan gelen anahtar isteklerinin otomatik olarak onaylanmasını etkinleştirin. Kota Bu eğitim için yoksayın. İzin verilen OAuth kapsamları Bu eğitim için yoksayın. - API proxy'leri alanında, yeni oluşturduğunuz API proxy'sini seçin.
- Yol alanına "/" girin. Diğer alanları yoksayın.
- Kaydet'i tıklayın.
Kuruluşunuza geliştirici ve uygulama ekleme
Ardından, bir geliştiricinin API'lerinizi kullanmak için kaydolma iş akışını simüle edeceksiniz. Geliştiricilerin ve uygulamalarının, geliştirici portalınız üzerinden kaydedilmesi idealdir. Ancak bu adımda, geliştirici ve uygulamayı yönetici olarak ekleyeceksiniz.
Bir geliştiricinin, API'lerinizi çağıran bir veya daha fazla uygulaması olur. Her uygulama için benzersiz bir tüketici anahtarı ve tüketici gizli anahtarı oluşturulur. Bu uygulama başına anahtar/gizli dizi, API sağlayıcı olarak size API'lerinize erişim üzerinde daha ayrıntılı kontrol ve API trafiği hakkında daha ayrıntılı analiz raporları da sunar. Bunun nedeni, Edge'in hangi geliştiricinin ve uygulamanın hangi OAuth jetonuna ait olduğunu bilmesidir.
Geliştirici oluşturma
Nigel Tufnel adlı bir geliştirici oluşturalım.
- Menüden Yayınla > Geliştiriciler'i seçin.
- + Geliştirici'yi tıklayın.
- Yeni Geliştirici penceresinde aşağıdakileri girin:
Bu alanda Enter Ad NigelSoyadı TufnelKullanıcı Adı nigelE-posta nigel@example.com - Oluştur'u tıklayın.
Uygulama kaydetme
Nigel için bir uygulama oluşturalım.
- Yayınla > Uygulamalar'ı seçin.
- + Uygulama'yı tıklayın.
- Yeni Uygulama penceresine aşağıdakileri girin:
Bu alanda bunu yap Ad ve Görünen Ad Şunu girin: nigel_appDeveloper Geliştirici'yi tıklayın ve şunlardan birini seçin: Nigel Tufnel (nigel@example.com)Geri çağırma URL'si ve Notlar Boş bırakın - Ürünler bölümünde Ürün Ekle'yi tıklayın.
- helloworld_oauth2-Product'ı seçin.
- Oluştur'u tıklayın.
Tüketici anahtarını ve tüketici gizli anahtarını alma
Artık OAuth erişim jetonuyla değiştirilecek tüketici anahtarını ve tüketici sırrını alacaksınız.
- nigel_app sayfasının görüntülendiğinden emin olun. Aksi takdirde, Uygulamalar sayfasında (Yayınla > Uygulamalar) nigel_app'i tıklayın.
-
nigel_app sayfasında, Key (Anahtar) ve Secret (Gizli) sütunlarında Show'u (Göster) tıklayın. Anahtar/gizli dizinin, daha önce otomatik olarak oluşturulan "helloworld_oauth2-Product" ile ilişkilendirildiğini unutmayın.
- Anahtarı ve gizli anahtarı seçip kopyalayın. Geçici bir metin dosyasına yapıştırın. Bu kimlik bilgilerini, daha sonraki bir adımda API proxy'sini çağırırken kullanacaksınız. API proxy'si, bu kimlik bilgilerini OAuth erişim jetonuyla değiştirir.
IP adresinizi almak için API'yi çağırmayı deneyin (başarısız!)
Eğlence amaçlı olarak, IP adresinizi döndürmesi gereken korumalı API proxy'sini çağırmayı deneyin. Bir terminal penceresinde aşağıdaki cURL komutunu çalıştırın ve Edge kuruluşunuzun adını girin. URL'deki test kelimesi, kuruluşunuzun test ortamıdır (proxy'lerinizi dağıttığınız ortam). Proxy temel yolu, /hellooauth2 şeklindedir. Bu, proxy'yi oluştururken belirttiğiniz temel yoldur.
Çağrıda OAuth erişim jetonu geçirmediğinizi fark edin.
curl https://ORG_NAME-test.apigee.net/hellooauth2
API proxy'sinde, istekte geçerli bir OAuth jetonunu kontrol eden OAuth v2.0 Erişim Jetonunu Doğrula politikası bulunduğundan, çağrı aşağıdaki mesajla başarısız olmalıdır:
{"fault":{"faultstring":"Invalid access token","detail":{"errorcode":"oauth.v2.InvalidAccessToken"}}}Bu durumda başarısızlık iyidir. Bu, API proxy'nizin çok daha güvenli olduğu anlamına gelir. Bu API'yi yalnızca geçerli bir OAuth erişim jetonuna sahip güvenilir uygulamalar başarıyla çağırabilir.
OAuth erişim jetonu alma
Şimdi ise büyük ödülün zamanı. Kopyalayıp bir metin dosyasına yapıştırdığınız anahtarı ve gizli anahtarı kullanıp bunları OAuth erişim jetonuyla değiştirmek üzeresiniz. Şimdi, içe aktardığınız oauth adlı örnek API proxy'sine bir API çağrısı yapacaksınız. Bu çağrı, bir API erişim jetonu oluşturur.
Bu anahtarı ve gizliyi kullanarak aşağıdaki cURL çağrısını yapın (protokolün https olduğunu unutmayın). Edge kuruluşunuzun adını, anahtarınızı ve gizli kodunuzu belirtilen yerlere girin:
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \ "https://ORG_NAME-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials" \ -d "client_id=CLIENT_KEY&client_secret=CLIENT_SECRET"
Çağrıyı yapmak için Postman gibi bir istemci kullanıyorsanız client_id ve client_secret değerlerinin isteğin gövdesinde yer alacağını ve x-www-form-urlencoded olması gerektiğini unutmayın.
Şuna benzer bir yanıt alırsınız:
{ "issued_at" : "1466025769306", "application_name" : "716bbe61-f14a-4d85-9b56-a62ff8e0d347", "scope" : "", "status" : "approved", "api_product_list" : "[helloworld_oauth2-Product]", "expires_in" : "3599", //--in seconds "developer.email" : "nigel@example.com", "token_type" : "BearerToken", "client_id" : "xNnREu1DNGfiwzQZ5HUN8IAUwZSW1GZW", "access_token" : "GTPY9VUHCqKVMRB0cHxnmAp0RXc0", "organization_name" : "myOrg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
OAuth erişim jetonunuzu aldınız. access_token değerini (tırnak işaretleri olmadan) kopyalayın ve metin dosyanıza yapıştırın. Bu bilgiyi birazdan kullanacaksınız.
Bu neydi şimdi?
Daha önce oauth proxy'sindeki koşullu akışa baktığınızda kaynak URI'si /accesstoken ise ve istek fiili POST ise erişim jetonu oluşturan GenerateAccessTokenClient OAuth politikasının yürütülmesini sağlayan akışı hatırlıyor musunuz? cURL komutunuz bu koşulları karşıladığı için OAuth politikası yürütüldü. Tüketici anahtarınızı ve tüketici sırrınızı doğrulayıp bunları 1 saat içinde sona erecek bir OAuth jetonuyla değiştirir.
API'yi erişim jetonuyla çağırma (başarılı!)
Erişim jetonunuz olduğuna göre, API proxy'sini çağırmak için bu jetonu kullanabilirsiniz. Aşağıdaki cURL çağrısını yapın. Edge kuruluşunuzun adını ve erişim jetonunu girin.
curl https://ORG_NAME-test.apigee.net/hellooauth2 -H "Authorization: Bearer TOKEN"
Bu aşamada, IP adresinizi döndüren API proxy'sine başarılı bir çağrı gönderilir. Örneğin:
{"ip":"::ffff:192.168.14.136"}Bu API çağrısını yaklaşık bir saat boyunca tekrarlayabilirsiniz. Bu sürenin sonunda erişim jetonunun süresi dolar. Bir saat sonra arama yapmak için önceki adımları kullanarak yeni bir erişim jetonu oluşturmanız gerekir.
Tebrikler! Bir API proxy'si oluşturdunuz ve geçerli bir OAuth erişim jetonunun çağrıya dahil edilmesini zorunlu kılarak bu proxy'yi korudunuz.
İlgili konular
- OAuth ana sayfası
- OAuthV2 politikası
- API proxy'lerini indirme (İndirdiğiniz gibi bir ZIP dosyasına API proxy'sinin nasıl paketleneceğini gösterir)