Edge Management API ile harici IdP kullanma

Temel kimlik doğrulama, Edge Management API'ye çağrı yaparken kimlik doğrulaması yapmanın bir yoludur. Örneğin, kuruluşunuzla ilgili bilgilere erişmek için Edge Management API'ye şu curl isteğini gönderebilirsiniz:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Bu örnekte, Temel kimlik doğrulama kimlik bilgilerini geçirmek için curl -u seçeneği kullanılmaktadır. Alternatif olarak, aşağıdaki örnekte gösterildiği gibi Edge Management API çağrıları yapmak için Bearer üst bilgisinde bir OAuth2 jetonu aktarabilirsiniz:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Kimlik doğrulama için harici bir IdP'yi etkinleştirdikten sonra isteğe bağlı olarak Temel kimlik doğrulamasını devre dışı bırakabilirsiniz. Temel kimlik doğrulamasını devre dışı bırakırsanız Temel kimlik doğrulamayı destekleyen Edge Management API çağrılarını kullanan tüm komut dosyaları (ör. Maven, kabuk ve apigeetool) artık çalışmaz. Bearer başlığındaki OAuth2 erişim jetonlarını geçirmek için Temel kimlik doğrulama kullanan API çağrılarını ve komut dosyalarını güncellemeniz gerekir.

get_token ile jetonları alın ve yenileyin

get_token yardımcı programı, Temel kimlik doğrulama kimlik bilgilerinizi (ve bazı durumlarda bir şifre kodu) OAuth2 erişimi ve yenileme jetonuyla değiştirir. get_token yardımcı programı, kimlik bilgilerinizi kabul eder ve geçerli bir erişim jetonu döndürür. Bir jeton yenilenebilirse yardımcı program onu yeniler ve döndürür. Yenileme jetonunun süresi dolarsa kullanıcı kimlik bilgileri istenir.

get_token yardımcı programı jetonları diskte depolar ve gerektiğinde kullanıma hazır hale getirir. Ayrıca stdout için geçerli bir erişim jetonu da yazdırır. Buradan Postman gibi bir tarayıcı uzantısı kullanabilir veya curl aracında kullanmak üzere bir ortam değişkenine yerleştirebilirsiniz.

Edge Management API çağrıları yapmak amacıyla OAuth2 erişim jetonu almak için:

  1. sso-cli paketini indirin:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    Burada EDGE_SSO_IP_DNS, Apigee TOA modülünü barındıran makinenin IP adresi veya DNS adıdır. Apigee TOA'da TLS'yi yapılandırdıysanız https özelliğini ve doğru TLS bağlantı noktası numarasını kullanın.

  2. ssocli-bundle.zip paketini aşağıdaki örnekte gösterildiği gibi açın:
    unzip ssocli-bundle.zip
  3. Aşağıdaki örnekte gösterildiği gibi get_token uygulamasını /usr/local/bin uygulamasına yükleyin:
    ./install -b PATH

    -b seçeneği farklı bir konum belirtiyor.

  4. SSO_LOGIN_URL ortam değişkenini aşağıdaki biçimde giriş URL'nize ayarlayın:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Burada EDGE_SSO_IP_DNS, Apigee TOA modülünü barındıran makinenin IP adresidir. Apigee TOA'da TLS'yi yapılandırdıysanız https özelliğini ve doğru TLS bağlantı noktası numarasını kullanın.

  5. (Yalnızca SAML) Tarayıcıda, tek seferlik bir şifre kodu almak için aşağıdaki URL'ye gidin:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Apigee TOA'da TLS'yi yapılandırdıysanız https özelliğini ve doğru TLS bağlantı noktası numarasını kullanın.

    Bu istek, yeni bir şifre kodu almak için URL'yi yenileyene veya erişim jetonu oluşturmak için get_token ile şifre kodunu kullanana kadar geçerli olan tek seferlik bir şifre kodu döndürür.

    Şifre kodunu yalnızca SAML IDP ile kimlik doğrularken kullanabileceğinizi unutmayın. LDAP IdP ile kimlik doğrulamak için şifre kodu kullanamazsınız.

  6. OAuth2 erişim jetonunu almak için aşağıdaki örnekte gösterildiği gibi get_token komutunu çağırın:
    get_token -u EMAIL_ADDRESS

    Burada EMAIL_ADDRESS, Edge kullanıcısının e-posta adresidir.

    (Yalnızca SAML) Aşağıdaki örnekte gösterildiği gibi, e-posta adresinin yanı sıra komut satırına şifre kodunu girin:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    get_token yardımcı programı OAuth2 erişim jetonunu alır, ekrana yazdırır, ardından kodu ve yenileme jetonunu ~/.sso-cli adresine yazar.

  7. Erişim jetonunu, aşağıdaki örnekte gösterildiği gibi Bearer başlığı olarak bir Edge Management API çağrısına iletin:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. İlk kez yeni bir erişim jetonu aldıktan sonra, aşağıdaki örnekte gösterildiği gibi, erişim jetonunu alıp tek bir komutla API çağrısına aktarabilirsiniz:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Bu komut biçimiyle, erişim jetonunun süresi dolduysa yenileme jetonunun süresi dolana kadar otomatik olarak yenilenir.

(Yalnızca SAML) Yenileme jetonunun süresi dolduktan sonra get_token, yeni bir şifre kodu girmenizi ister. Yeni bir OAuth erişim jetonu oluşturabilmek için önce 3. adımda gösterilen URL'ye gidip yeni bir şifre kodu oluşturmanız gerekir.

Jetonları almak ve yenilemek için Management API'yi kullanma

Use OAuth2 security with Apigee Edge management API (Apigee Edge Management API ile OAuth2 güvenliğini kullanma) jeton almak ve yenilemek için Edge Management API'nin nasıl kullanılacağını gösterir. SAML onaylarından oluşturulan jetonları almak için Edge API çağrılarını da kullanabilirsiniz.

Apigee Edge Management API ile OAuth2 güvenliğini kullanma bölümünde belirtilen API çağrıları arasındaki tek fark, çağrı URL'sinin alt bölge adınıza referans vermesi gerektiğidir. Ayrıca, SAML IDP ile ilk erişim jetonunu oluşturmak için, yukarıdaki prosedürün 3. adımında gösterildiği gibi şifre kodunu eklemeniz gerekir.

Yetkilendirme için Authorization üst bilgisinde ayrılmış bir OAuth2 istemci kimlik bilgisi iletin. Çağrı, erişim ve yenileme jetonlarını ekrana yazdırır.

Erişim jetonu alma

(LDAP) İlk erişim ve yenileme jetonlarını oluşturmak için aşağıdaki API çağrısını kullanın:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) İlk erişim ve yenileme jetonlarını oluşturmak için aşağıdaki API çağrısını kullanın:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

SAML IDP ile kimlik doğrulama için geçici bir şifre kodu gerekirken LDAP IDP'si ile kimlik doğrulama için böyle bir zorunluluk yoktur.

Erişim jetonunu yenileme

Erişim jetonunu daha sonra yenilemek için yenileme jetonunu içeren aşağıdaki çağrıyı kullanın:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'