Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Apigee Edge, OAuth2 jetonlarıyla kimliği doğrulanan Edge API çağrıları yapmanıza olanak tanır. Bulut hesapları için Edge'de OAuth2 desteği varsayılan olarak etkindir. Private Cloud için Edge kullanıyorsanız önce SAML veya LDAP'yi ayarlamadan OAuth2'yi kullanamazsınız.
OAuth2'nin çalışma şekli (Apigee Edge API ile)
Belirttiğiniz kişi olduğunuzdan emin olabilmemiz için Apigee Edge API'ye yapılan çağrılar kimlik doğrulama gerektirir. Kimliğinizi doğrulayabilmek için API'ye erişim isteğinizle birlikte bir OAuth2 erişim jetonu gönderilmesini zorunlu kılarız.
Örneğin, Edge'deki bir kuruluşla ilgili ayrıntıları almak isterseniz aşağıdaki gibi bir URL'ye istek gönderirsiniz:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Ancak bunu bize kim olduğunuzu söylemeden gönderemezsiniz. Aksi takdirde herkes kuruluşunuzun ayrıntılarını görebilir.
OAuth2 burada devreye girer: Kimliğinizi doğrulamak için söz konusu istekte bize bir erişim jetonu göndermeniz gerekir. Erişim jetonu bize kim olduğunuzu bildirir. Böylece, kuruluşla ilgili ayrıntıları görmenize izin verildiğinden emin olabiliriz.
Neyse ki kimlik bilgilerinizi Edge OAuth2 hizmetine göndererek bir 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 gerçekleşen OAuth2 akışı gösterilmektedir:
Şekil 1'de gösterildiği gibi, Edge API'ye ilk isteğinizi yaptığınızda:
- Erişim jetonu istediğinizde. Bu işlemi Edge API, acurl veya
get_token
ile yapabilirsiniz. Örneğin:get_token Enter username:
ahamilton@apigee.com
Enter 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, erişim jetonuyla yanıt verir ve bunu
stdout
hizmetine yazdırır. Örneğin:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
acurl
veget_token
yardımcı programları, erişim jetonlarını sessizce~/.sso-cli
kaydına kaydeder ve jetonları~/.sso-cli
için yenileme (yenileme jetonu,stdout
öğesine yazılmaz.) Jetonları almak için Edge OAuth2 hizmetini kullanıyorsanız bunları daha sonra kullanmak üzere 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 veri içeren bir yanıt döndürür.
OAuth2 akışı: Sonraki istekler
Sonraki isteklerde, kimlik bilgilerinizi jetonla değiştirmeniz gerekmez. Bunun yerine, henüz süresi dolmadığı sürece sahip olduğunuz erişim jetonunu eklemeniz yeterlidir:
Şekil 2'de gösterildiği gibi, bir 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 veri içeren bir yanıt döndürür.
OAuth2 akışı: Erişim jetonunuzun süresi dolduğunda
Bir erişim jetonunun süresi dolduğunda (12 saat sonra), 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'ye bir istek gönderdiniz, ancak erişim jetonunuzun süresi doldu.
- Edge API, isteğinizi yetkisiz olarak reddeder.
- Edge OAuth2 hizmetine bir yenileme jetonu gönderirsiniz.
acurl
kullanıyorsanız bu işlem sizin için otomatik olarak gerçekleştirilir. - 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 veri içeren bir yanıt döndürür.
Jetonları alın
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 erişim için değiştirir ve Edge API'yi çağırmak için kullanabileceğiniz yenileme jetonlarını kullanır.
- acurl yardımcı programı: Standart bir
curl
komutu etrafında bir kolaylık sarmalayıcı sağlar. Edge API'ye HTTP istekleri oluşturur,get_token
kaynağından erişim ve yenileme jetonları alır ve erişim jetonunu Edge API'ye iletir. - Edge OAuth2 hizmetindeki jeton uç noktaları: Erişim için Apigee kimlik bilgilerinizi değiştirin ve Edge API'ye yapılan bir çağrı aracılığıyla jetonları yenileyin.
Bu yardımcı programlar, Apigee hesabınızın kimlik bilgilerini (e-posta adresi ve şifre) aşağıdaki sürelere sahip jetonlarla değiştirir:
- Erişim jetonlarının süresi 12 saat içinde dolar.
- Yenileme jetonlarının süresi 30 gün içinde dolar.
Sonuç olarak, acurl
veya get_token
ile başarılı bir şekilde API çağrısı yaptıktan sonra, jeton çiftini 30 gün boyunca kullanmaya devam edebilirsiniz. Süre sona erdikten 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 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.
Edge API'ye acurl
ve curl
ile erişim aşağıdaki bölümlerde açıklanmıştır.
Acurl kullan
Edge API'ye acurl
ile erişmek için ilk isteğinizde kimlik bilgileriniz bulunmalıdır. Edge OAuth2 hizmeti, erişim ve yenileme jetonlarıyla yanıt verir. acurl
, jetonları yerel olarak kaydeder.
Sonraki isteklerde acurl
, ~/.sso-cli
üzerinde kayıtlı 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ı almanın yanı sıra "helloworld" API proxy'si içindeki politikaların listesini alan ikinci bir istek de gösterilmektedir. İkinci istekte "kuruluşlar" için URL'de "o" kısaltması kullanılır.
acurl
tarayıcısının erişim jetonunu ikinci istekte otomatik olarak ilettiğini unutmayın. acurl
, OAuth2 jetonlarını depoladıktan sonra kullanıcı kimlik bilgilerinizi iletmeniz gerekmez. Sonraki çağrılar için jetonu ~/.sso-cli
üzerinden alır.
Daha fazla bilgi için Edge API'sine erişmek için acurl'u kullanma konusuna bakın.
Curl kullan
Edge API'ye erişmek için curl
kullanabilirsiniz. Bunu yapmak için önce erişim ve yenileme jetonlarına sahip olmanız gerekir. Bunları get_token
veya Edge OAuth2 hizmeti gibi bir yardımcı program kullanarak alabilirsiniz.
Erişim jetonunuzu başarıyla kaydettikten sonra, aşağıdaki örnekte gösterildiği gibi, jetonu Edge API'ye yapılan çağrılarınızın Authorization
başlığında geçirirsiniz:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Erişim jetonu verildikten sonra 12 saat boyunca geçerlidir. Erişim jetonunun süresi dolduktan sonra yenileme jetonu, kimlik bilgileri gerekmeden başka bir erişim jetonu oluşturmak için 30 gün boyunca kullanılabilir. Apigee, kimlik bilgilerini girip her API çağrısıyla yeni bir istekte bulunmak yerine, yalnızca referans jetonunun süresi dolduktan sonra yeni bir erişim jetonu talep etmenizi ö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, hangi aracı kullandığınıza bağlı olarak değişir:
acurl
: Herhangi bir işlem yapmanız gerekmez.acurl
, güncel olmayan jeton içeren bir istek gönderdiğinizde erişim jetonunu otomatik olarak yeniler.get_token
: Erişim jetonunu yenilemek içinget_token
işlevini çağırın.- Edge OAuth2 hizmeti: Aşağıdakileri içeren bir istek gönderin:
- Yenileme jetonu
grant_type
form parametresi "refresh_token" olarak ayarlandı
Makine kullanıcıları için OAuth2
Makine kullanıcıları için OAuth2 kimlik doğrulamasıyla Edge API'lerine otomatik erişimi komut dosyası haline getirmek için acurl
ve get_token
yardımcı programlarını kullanabilirsiniz. Aşağıdaki örnekte, erişim jetonu istemek ve ardından jeton değerini bir curl
çağrısına eklemek için get_token
öğesinin nasıl kullanılacağı gösterilmektedir:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Alternatif olarak, acurl
yardımcı programını kullanarak jeton isteğini ve curl
çağrısını birleştirebilirsiniz.
Örneğin:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
Her iki örnekte de -m
değerinin boş bir dizeye ayarlanması, makine kullanıcısından MFA kodu istenmesini engeller.