Edge Management API ile harici IdP kullanma

Temel kimlik doğrulama, Edge Management API'ye çağrı yaparken kimlik doğrulamanın bir yoludur. Örneğin, kuruluşunuzla ilgili bilgilere erişmek için Edge Management API'ye aşağıdaki 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 iletmek için curl -u seçeneğini kullanırsınız. Alternatif olarak, aşağıdaki örnekte gösterildiği gibi Edge yönetim API'si çağrıları yapmak için Bearer başlığında bir OAuth2 jetonu iletebilirsiniz:

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, isterseniz temel kimlik doğrulamayı devre dışı bırakabilirsiniz. Temel kimlik doğrulamasını devre dışı bırakırsanız temel kimlik doğrulamasını destekleyen Edge Management API çağrılarını kullanan tüm komut dosyaları (ör. Maven, kabuk ve apigeetool) artık çalışmaz. Temel kimlik doğrulama kullanan tüm API çağrılarını ve komut dosyalarını, Bearer üstbilgisinde OAuth2 erişim jetonlarını iletecek şekilde güncellemeniz gerekir.

get_token ile jeton alma ve yenileme jetonu alma

get_token yardımcı programı, temel kimlik doğrulama bilgilerinizi (ve bazı durumlarda bir şifre kodunu) OAuth2 erişim 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 yenilenebiliyorsa yardımcı program, jetonu yeniler ve döndürür. Yenileme jetonunun süresi dolarsa kullanıcı kimlik bilgileri istenir.

get_token yardımcı programı, jetonları diskte saklar 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 içinde kullanmak üzere bir ortam değişkenine yerleştirebilirsiniz.

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

  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 ve doğru TLS bağlantı noktası numarasını kullanın.

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

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

  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 ve doğru TLS bağlantı noktası numarasını kullanın.

  5. (Yalnızca SAML) Tek kullanımlık şifre kodu almak için tarayıcıda aşağıdaki URL'ye gidin:
    http://EDGE_SSO_IP_DNS:9099/passcode

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

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

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

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

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

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

    get_token -u EMAIL_ADDRESS -p PASSCODE

    get_token yardımcı programı, OAuth2 erişim jetonunu alır, ekrana yazdırır ve yenileme jetonuyla birlikte ~/.sso-cli dosyasına yazar.

  7. Erişim jetonunu, aşağıdaki örnekte gösterildiği gibi Bearer başlığı olarak bir Edge yönetim API'si ç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 iletebilirsiniz:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Komutun bu biçiminde, erişim jetonunun süresi dolmuşsa yenileme jetonunun süresi dolana kadar otomatik olarak yenilenir.

(Yalnızca SAML) Yenileme jetonunun süresi dolduktan sonra get_token sizden yeni bir şifre kodu 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

Apigee Edge Management API ile OAuth2 güvenliğini kullanma başlıklı makalede, jetonları almak ve yenileme jetonlarını kullanmak için Edge Management API'nin nasıl kullanılacağı gösterilmektedir. 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 açıklanan API çağrıları arasındaki tek fark, çağrının URL'sinin 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 başlığında 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 için gerekmediğini unutmayın.

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'