Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Apigee Edge, OAuth2 jetonlarıyla kimliği doğrulanmış Edge API çağrıları yapmanıza olanak tanır. OAuth2 desteği, Cloud hesapları için Edge'de varsayılan olarak etkindir. Özel bulut için Edge kullanıyorsanız önce SAML'yi ayarlamadan veya LDAP'yi ayarlamadan OAuth2'yi kullanamazsınız.
OAuth2'nin işleyiş şekli (Apigee Edge API ile)
Apigee Edge API'ye yapılan çağrılar, kimliğinizin doğru olduğundan emin olabilmemiz için kimlik doğrulama gerektirir. Kimliğinizi doğrulamak için API'ye erişim isteğinizle birlikte bir OAuth2 erişim jetonu gönderilmesi gerekir.
Örneğin, Edge'de bir kuruluş hakkında ayrıntılı bilgi almak istiyorsanız aşağıdaki gibi bir URL'ye istek gönderirsiniz:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Ancak kim olduğunuzu belirtmeden bu isteği gönderemezsiniz. Aksi takdirde herkes kuruluşunuzun ayrıntılarını görebilir.
Bu noktada OAuth2 devreye girer: Kimliğinizi doğrulamak için bu istekle birlikte bize bir erişim jetonu da göndermeniz gerekir. Erişim jetonu, kuruluşun ayrıntılarını görmenize izin verildiğinden emin olabilmemiz için kim olduğunuzu bize bildirir.
Neyse ki kimlik bilgilerinizi Edge OAuth2 hizmetine göndererek jeton alabilirsiniz. Hizmet, erişim ve yenileme jetonlarıyla yanıt verir.
OAuth2 akışı: İlk istek
Aşağıdaki resimde, Edge API'ye ilk kez eriştiğinizde OAuth2 akışı gösterilmektedir:
Şekil 1'de gösterildiği gibi, Edge API'ye ilk isteğinizi gönderdiğinizde:
- Erişim jetonu isteğinde bulunursunuz. Bu işlemi Edge API, acurl veya
get_tokenile yapabilirsiniz. Örneğin:get_token Enter username:
ahamilton@apigee.comEnter the password for user 'ahamilton@apigee.com'[hidden input]Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456 - Edge OAuth2 hizmeti, bir erişim jetonuyla yanıt verir ve bunu
stdout'ya yazdırır. Örneğin:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
acurlveget_tokenyardımcı programları, erişim ve yenileme jetonlarını~/.sso-cli'ye sessizce kaydeder (Yenileme jetonustdout'ye yazılmaz). Jeton almak için Edge OAuth2 hizmetini kullanıyorsanız bunları daha sonra kullanmak üzere kendiniz kaydetmeniz gerekir. - Erişim jetonuyla Edge API'ye bir istek gönderirsiniz.
acurl, jetonu otomatik olarak ekler. Örneğin:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Başka bir HTTP istemcisi kullanıyorsanız erişim jetonunu eklediğinizden emin olun. Örneğin:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- Edge API, isteğinizi yürütür ve genellikle verilerle birlikte bir yanıt döndürür.
OAuth2 akışı: Sonraki istekler
Sonraki isteklerde kimlik bilgilerinizi jetonla değiştirmeniz gerekmez. Bunun yerine, süresi henüz dolmamış olan mevcut erişim jetonunuzu ekleyebilirsiniz:
Şekil 2'de gösterildiği gibi, erişim jetonunuz varsa:
- Erişim jetonuyla Edge API'ye bir istek gönderirsiniz.
acurl, jetonu otomatik olarak ekler. Başka araçlar kullanıyorsanız jetonu manuel olarak eklemeniz gerekir. - Edge API, isteğinizi yürütür ve genellikle verilerle birlikte bir yanıt döndürür.
OAuth2 akışı: Erişim jetonunuzun süresi dolduğunda
Erişim jetonu 12 saat sonra sona erdiğinde yeni bir erişim jetonu almak için yenileme jetonunu kullanabilirsiniz:
Şekil 3'te gösterildiği gibi, erişim jetonunuzun süresi dolduğunda:
- Edge API'sine istek gönderiyorsunuz ancak erişim jetonunuzun süresi dolmuş.
- Edge API, isteğinizi yetkisiz olarak reddeder.
- Edge OAuth2 hizmetine bir yenileme jetonu gönderirsiniz.
acurlkullanıyorsanız bu işlem sizin için otomatik olarak yapılır. - Edge OAuth2 hizmeti yeni bir erişim jetonuyla yanıt verir.
- Yeni erişim jetonuyla Edge API'ye bir istek gönderirsiniz.
- Edge API, isteğinizi yürütür ve genellikle verilerle birlikte bir yanıt döndürür.
Jetonları alma
Edge API'ye gönderebileceğiniz bir erişim jetonu almak için curl gibi bir yardımcı programın yanı sıra aşağıdaki Apigee yardımcı programlarını kullanabilirsiniz:
- get_token yardımcı programı: Apigee kimlik bilgilerinizi, Edge API'yi çağırmak için kullanabileceğiniz erişim ve yenileme jetonlarıyla değiştirir.
- acurl yardımcı programı: Standart bir
curlkomut için kolaylık sağlayan bir sarmalayıcı sunar. Edge API'ye HTTP istekleri oluşturur,get_token'dan erişim ve yenileme jetonları alır ve erişim jetonunu Edge API'ye iletir. - Edge OAuth2 hizmetindeki jeton uç noktaları: Edge API'ye yapılan bir çağrı aracılığıyla erişim ve yenileme jetonları için Apigee kimlik bilgilerinizi değiştirin.
Bu yardımcı programlar, Apigee hesabı kimlik bilgilerinizi (e-posta adresi ve şifre) aşağıdaki sürelerde geçerli olan jetonlarla değiştirir:
- Erişim jetonlarının süresi 12 saat sonra dolar.
- Yenileme jetonlarının geçerlilik süresi 30 gündür.
Sonuç olarak, acurl veya get_token ile başarılı bir API çağrısı yaptıktan sonra jeton çiftini 30 gün boyunca kullanmaya devam edebilirsiniz. Geçerlilik süresi dolduktan sonra kimlik bilgilerinizi yeniden girmeniz ve yeni jetonlar almanız gerekir.
OAuth2 ile Edge API'ye erişme
Edge API'ye erişmek için bir API uç noktasına istek gönderir ve erişim jetonunu eklersiniz.
Bunu, curl gibi bir komut satırı yardımcı programı, Postman gibi tarayıcı tabanlı bir kullanıcı arayüzü veya acurl gibi bir Apigee yardımcı programı da dahil olmak üzere herhangi bir HTTP istemcisiyle yapabilirsiniz.
acurl ve curl ile Edge API'ye erişme, sonraki bölümlerde açıklanmıştır.
acurl kullanma
acurl ile Edge API'ye erişmek için ilk isteğiniz kimlik bilgilerinizi içermelidir. Edge OAuth2 hizmeti, erişim ve yenileme jetonlarıyla yanıt verir. acurl
Jetonları yerel olarak kaydeder.
Sonraki isteklerde acurl, ~/.sso-cli içinde kaydedilen jetonları kullanır. Böylece, jetonların süresi dolana kadar kimlik bilgilerinizi tekrar eklemeniz gerekmez.
Aşağıdaki örnekte, "ahamilton-eval" kuruluşuyla ilgili ayrıntıları alan ilk acurl isteği gösterilmektedir:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
Bu örnekte, kuruluşla ilgili ayrıntıların yanı sıra "helloworld" API proxy'sindeki politikaların listesini alan ikinci bir istek de gösterilmektedir. İkinci istekte URL'deki "organizations" için "o" kısaltması kullanılıyor.
acurl, ikinci istekte erişim jetonunu otomatik olarak iletir. acurl, OAuth2 jetonlarını depoladıktan sonra kullanıcı kimlik bilgilerinizi iletmeniz gerekmez. Sonraki aramalar için jetonu ~/.sso-cli kaynağından alır.
Daha fazla bilgi için Edge API'ye erişmek için acurl'u kullanma başlıklı makaleyi inceleyin.
Curl'ü kullanma
Edge API'ye erişmek için curl kullanabilirsiniz. Bunu yapmak için öncelikle erişim ve yenileme jetonlarını almanız gerekir. Bunları get_token gibi bir yardımcı program veya Edge OAuth2 hizmeti kullanarak alabilirsiniz.
Erişim jetonunuzu başarıyla kaydettikten sonra, aşağıdaki örnekte gösterildiği gibi Edge API'ye yaptığınız çağrıların Authorization üstbilgisinde iletirsiniz:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Erişim jetonu, oluşturulduktan sonra 12 saat boyunca geçerlidir. Erişim jetonunun süresi dolduktan sonra, kimlik bilgileri gerekmeden başka bir erişim jetonu oluşturmak için yenileme jetonu 30 gün boyunca kullanılabilir. Apigee, kimlik bilgilerini girip her API çağrısında yeni bir istekte bulunmak yerine yalnızca yenileme jetonunun süresi dolduktan sonra yeni bir erişim jetonu isteğinde bulunmanızı önerir.
Jetonun son kullanma tarihi
Erişim jetonunuzun süresi dolduğunda, kimlik bilgilerinizi tekrar göndermenize gerek kalmadan yeni bir erişim jetonu almak için yenileme jetonunu kullanabilirsiniz.
Erişim jetonunuzu nasıl yenileyeceğiniz, kullandığınız araca bağlıdır:
acurl: Herhangi bir işlem yapmanız gerekmez.acurl, eski bir erişim jetonu içeren bir istek gönderdiğinizde erişim jetonunu otomatik olarak yeniler.get_token: Erişim jetonunu yenilemek içinget_tokenişlevini çağırın.- Edge OAuth2 hizmeti: Aşağıdakileri içeren bir istek gönderin:
- Yenileme jetonu
grant_typeform parametresi "refresh_token" olarak ayarlanmış
Makine kullanıcıları için OAuth2
Makine kullanıcıları için OAuth2 kimlik doğrulamasıyla Edge API'lerine otomatik erişim sağlayan komut dosyaları oluşturmak üzere acurl ve get_token yardımcı programlarını kullanabilirsiniz. Aşağıdaki örnekte, erişim jetonu istemek için get_token öğesinin nasıl kullanılacağı ve ardından jeton değerinin curl çağrısına nasıl ekleneceği gösterilmektedir:
USER=me@example.comPASS=not-that-secretTOKEN=$(get_token -u $USER:$PASS -m '')curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Alternatif olarak, curl yardımcı programını kullanarak jeton isteğini ve acurl çağrısını birleştirebilirsiniz.
Örneğin:
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
Her iki örnekte de -m değerini boş bir dize olarak ayarlamak, makine kullanıcısından çok faktörlü kimlik doğrulama kodu istenmesini engeller.