Edge API'ye erişmek için OAuth2'yi kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Apigee Edge, OAuth2 jetonları ile 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. Edge kullanıyorsanız Private Cloud için OAuth2'yi SAML'yi veya LDAP'yi kurmanız gerekir.

OAuth2 nasıl çalışır? (Apigee Edge API ile)

Apigee Edge API'ye yapılan çağrılarda kimliğinizin doğru olduğundan emin olabilmemiz için kimlik doğrulaması gerekir siz olduğunuzu söylersiniz. Kimliğinizin doğrulanması için isteğinizle birlikte bir OAuth2 erişim jetonunun gönderilmesi gerekiyor API'ye erişmek için bu adımları uygulayın.

Örneğin, Edge'deki bir kuruluşla ilgili ayrıntıları almak istiyorsanız şunun gibi bir URL:

https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

Ancak bize kim olduğunuzu söylemeden bu isteği gönderemezsiniz. Aksi halde herkes kuruluşunuzun ayrıntılarını görebilir.

OAuth2 burada devreye girer. Kimlik doğrulamanız için bize bir erişim jetonu göndermeniz gerekir. dikkate almalısınız. Erişim jetonu bize kim olduğunuzu bildirir. Böylece, erişim izninizin olduğundan emin olabiliriz. kurumun ayrıntılarına bakabilirsiniz.

Neyse ki kimlik bilgilerinizi Edge OAuth2 hizmetine göndererek jeton alabilirsiniz. İlgili içeriği oluşturmak için kullanılan erişim ve yenileme jetonlarıyla yanıt verdiğinden emin olun.

OAuth2 akışı: İlk istek

Aşağıdaki resimde, ilk zaman:

OAuth akışı: İlk istek
Şekil 1: OAuth Akışı: İlk istek

Şekil 1'de gösterildiği gibi, Edge API'ye ilk kez istek gönderirken:

  1. Erişim jetonu isteğinde bulunursunuz. Bunu yapmak için Edge API, acurl veya get_token. Örnek:
    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
    .
  2. Edge OAuth2 hizmeti, erişim jetonuyla yanıt verir ve bunu stdout adresine yazdırır; örneğin:
    Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz
    AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm
    NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI
    GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic
    ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0
    RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG
    420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M
    2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw

    acurl ve get_token yardımcı programları, erişimi sessizce kaydeder ve yenileme jetonları ~/.sso-cli (Yenileme jetonu, stdout.) Jetonları almak için Edge OAuth2 hizmetini kullanıyorsanız jetonları kendinizi kullanacaksınız.

  3. Erişim jetonuyla Edge API'ye bir istek gönderirsiniz. acurl ekler jeton otomatik olarak oluşturulur; ö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"
  4. 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 dolmamış olması koşuluyla, sahip olduğunuz erişim jetonunu eklemeniz yeterlidir:

OAuth akışı: Sonraki istekler
Şekil 2: OAuth Akışı: Sonraki istekler

Şekil 2'de gösterildiği gibi, zaten bir erişim jetonunuz olduğunda:

  1. Erişim jetonuyla Edge API'ye bir istek gönderirsiniz. acurl ekler jeton otomatik olarak oluşturulur. Başka araçlar kullanıyorsanız jetonu manuel olarak eklemeniz gerekir.
  2. 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

Erişim jetonunun süresi dolduğunda (12 saat sonra), yeni bir jeton almak için yenileme jetonunu kullanabilirsiniz erişim jetonu:

OAuth akışı: Erişim jetonunu yenileme
Şekil 3: OAuth Akışı: Erişim jetonunu yenileme

Şekil 3'te gösterildiği gibi, erişim jetonunuzun süresi dolduğunda:

  1. Edge API'ye istek gönderdiniz ancak erişim jetonunuzun süresi dolmuş.
  2. Edge API, isteğinizi yetkisiz olarak reddeder.
  3. Edge OAuth2 hizmetine yenileme jetonu gönderirsiniz. acurl kullanıyorsanız bu işlem yeterlidir otomatik olarak oluşturur.
  4. Edge OAuth2 hizmeti yeni bir erişim jetonuyla yanıt verir.
  5. Edge API'ye yeni erişim jetonuyla istek gönderirsiniz.
  6. 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 aşağıdaki komutu kullanabilirsiniz curl gibi bir yardımcı programın yanı sıra Apigee yardımcı programları:

  • 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 jetonları yenileyin.
  • acurl yardımcı programı: Standart bir özet için bir kolaylık sarmalayıcı sağlar curl komutudur. Uçta HTTP istekleri oluşturur API, get_token adlı iş ortağından erişim ve yenileme jetonları alır ve erişim jetonunu .
  • Edge OAuth2 hizmetindeki jeton uç noktaları: Erişim ve yenileme jetonları için Edge API'ye yapılan bir çağrıyla Apigee kimlik bilgileri.

Bu yardımcı programlar, Apigee hesap kimlik bilgilerinizi (e-posta adresi ve şifre) aşağıdaki sürelere sahip jetonlar için geçerlidir:

  • 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 API çağrısı yaptığınızda jeton çiftini 30 gün boyunca kullanmaya devam edebilirsiniz. Süre sona erdikten sonra, yeni jetonlar alabilirsiniz.

OAuth2 ile Edge API'ye erişme

Edge API'ye erişmek için bir API uç noktasına istek gönderip erişim jetonunu eklersiniz. Bunu curl gibi bir komut satırı yardımcı programı da dahil olmak üzere herhangi bir HTTP istemcisiyle yapabilirsiniz. bir Apigee yardımcı programı (ör. Postman gibi) veya acurl gibi bir Apigee yardımcı programı kullanın.

Edge API'ye acurl ve curl ile erişme talimatları şu sayfada açıklanmıştır: bu bölümde bulabilirsiniz.

Acurl kullan

Edge API'ye acurl ile erişmek için ilk isteğinizde kimlik bilgileri. Edge OAuth2 hizmeti, erişim ve yenileme jetonlarıyla yanıt verir. acurl. jetonları yerel olarak kaydeder.

Sonraki isteklerde acurl, ~/.sso-cli içindeki kayıtlı jetonları kullanır. Bu şekilde, kimlik bilgilerinizi tekrar eklemeniz gerekmez.

Aşağıdaki örnekte,acurl "ahamilton-eval" kuruluş:

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, ikinci bir istek daha gösterilmektedir "helloworld" içindeki politika listesini alan API proxy'si. İkinci istek "o" kısaltması "kuruluşlar" için gelir.

acurl hizmetinin, erişim jetonunu ikinci istekte otomatik olarak ilettiğini unutmayın. Siz acurl, OAuth2 jetonlarını depoladığında kullanıcı kimlik bilgilerinizi iletmenize gerek yoktur. Google sonraki çağrılar için ~/.sso-cli tarafından sağlanan jetonu alır.

Daha fazla bilgi için Edge API'ye erişmek için acurl kullanma bölümüne bakın.

Curl kullan

Edge API'ye erişmek için curl kullanabilirsiniz. Bunun için öncelikle erişim ve yenileme jetonlarıdır. Bunları get_token veya Uç OAuth2 hizmeti..

Erişim jetonunuzu başarıyla kaydettikten sonra Edge API'ye yapılan çağrılarınızın Authorization üst bilgisi (aşağıdaki örnekte gösterildiği gibi) gösterir:

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 jetonunun verilmesi için 30 gün boyunca kullanılabilir kimlik bilgileri gerektirmeden başka bir erişim jetonu ekleyebilirsiniz. Apigee, yeni bir erişim jetonu talep etmek yerine yalnızca referans jetonunun süresi dolduktan sonra bunu yapmanızı önerir. kimlik bilgilerini girme ve her API çağrısıyla yeni bir istek yapma.

Jetonun son kullanma tarihi

Erişim jetonunuzun süresi dolduğunda yenileme jetonunu, kimlik bilgilerinizi tekrar göndermeniz gerekiyor.

Erişim jetonunuzu yenileme yönteminiz, kullandığınız araca bağlıdır:

  • acurl: Herhangi bir işlem yapmanız gerekmez. acurl, erişim jetonunu otomatik olarak yeniler eski bir istek içeren yeni bir istek gönderdiğinizi varsayalım.
  • get_token: Erişim jetonunu yenilemek için get_token öğesini çağırın.
  • Uç 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

Otomatik erişim komut dosyası için acurl ve get_token yardımcı programlarını kullanabilirsiniz yönelik OAuth2 kimlik doğrulamasına sahip Edge API'leridir. Aşağıdaki örnekte, get_token ile şu işlemleri yapın: erişim jetonu isteyin ve ardından jeton değerini bir curl çağrısına ekleyin:

  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ılarının bunun MFA kodu sorulmasını engeller.