SAML ile Edge API'ye erişme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

SAML, tek oturum açma (TOA) ortamını destekler. Edge ile SAML'yi kullanarak, sağladığınız ve SAML'yi destekleyen diğer hizmetlere ek olarak Edge kullanıcı arayüzü ve API için TOA'yı destekleyebilirsiniz.

Ön koşul: Edge API'ye erişmek üzere kullanabilmek için önce en az bir kuruluş için SAML'yi etkinleştirmeniz gerekir.

SAML ve OAuth2 arasındaki farklar

SAML'yi kullanmak, Edge API'ye erişmek için OAuth2 kullanmaya çok benzer. Edge API'yi çağırdığınızda isteğinize bir OAuth2 erişim jetonu eklersiniz.

Edge API'ye erişirken SAML ile OAuth2 arasındaki temel fark, jetonları alma şeklinizdir. SAML'de jeton çiftinizi alırken aşağıdakileri eklemeniz gerekir:

  1. Alt bölgeler: Herkese Açık Bulut için Edge kullanıcıları, jetonları alırken alt bölge adlarına başvurmalıdır.
  2. Şifre kodu: Erişim/yenileme jetonu çifti isteğinde bulunurken tek kullanımlık bir şifre kodu ekleyin.

SAML, Edge OAuth2 hizmetinde aynı uç noktaları, uygun alt bölge adıyla birlikte kullanır.

SAML ile erişim jetonları almak için bu bölümde açıklanan aşağıdaki yöntemlerden birini kullanabilirsiniz:

Ayrıca, Jeton oluşturma işlemini otomatikleştirme bölümünde açıklandığı şekilde makine kullanıcıları için jeton oluşturma sürecini otomatik hale getirebilirsiniz.

get_token ile erişim jetonları alın

Kimlik bilgilerinizi OAuth2 erişimiyle değiştirmek ve SAML ile kullandığınız jetonları yenilemek için get_token yardımcı programını kullanabilirsiniz.

get_token ile erişim jetonu almak için:

  1. SSO_LOGIN_URL ortam değişkenini giriş URL'nize ayarlayın. Giriş URL'si aşağıdaki biçimde olur:
    https://zoneName.login.apigee.com

    Örneğin, "acme" adlı bir alt bölge için aşağıdaki örnekte gösterildiği gibi SSO_LOGIN_URL özelliğini "https://acme.login.Apigee.com" olarak ayarlayın:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. OAuth2 erişim jetonunu almak için get_token numaralı telefonu arayın:
    get_token -u me@example.com

    Tek seferlik şifre kodunu almak için görüntülenen URL'yi ziyaret etmeniz istenir:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    Yakın zamanda kimlik sağlayıcınız üzerinden oturum açmadıysanız oturum açmanız istenir.

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

  3. Şifre kodunu girin. get_token yardımcı programı OAuth2 jetonlarını alır, erişim jetonunu stdout cihazına yazdırır, erişim ve yenileme jetonlarını ~/.sso-cli adresine yazar.

  4. Edge API'yi çağırın ve erişim jetonunu, aşağıdaki örnekte gösterildiği gibi Authorization: Bearer üst bilgisinde iletin:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    Erişim jetonunun değeri stdout öğesinden kopyalanabilir.

    Bu örnekte, belirtilen kuruluşla ilgili ayrıntılar verilmektedir. Management API uç noktalarının tam listesi için Apigee Edge API Referansı'nı inceleyin.

Erişim jetonunuzun süresi dolduğunda yeni bir erişim jetonu almak için get_token yöntemini tekrar çağırabilirsiniz. Örneğin:

get_token -u me@example.com

Yenileme jetonunun süresi dolana kadar yeni bir şifre kodu girmeniz istenmez.

Yenileme jetonunun süresi dolduğunda get_token sizden yeni bir şifre kodu girmenizi ister. Yeni bir OAuth2 erişim jetonu oluşturabilmek için önce yeni bir şifre kodu oluşturmanız gerekir.

Edge OAuth2 hizmetiyle erişim jetonları alma

SAML ile kullandığınız erişim jetonlarını almak için Edge OAuth2 hizmetini kullanabilirsiniz. Edge API ile kimliğinizi doğrulamak amacıyla, erişim/yenileme jetonu çifti almak için ilk isteğinizde bir şifre kodu kullanır ve yeni bir jeton çifti almak için tekrar kullanırsınız.

Edge API ile jeton çifti almak için:

  1. Tarayıcıda, tek seferlik bir şifre kodu almak için aşağıdaki URL'ye gidin:
    https://zoneName.login.apigee.com/passcode

    Örneğin, "acme" adlı bir alt bölge için şu URL'ye gidin:

    https://acme.login.apigee.com/passcode

    Yakın zamanda kimlik sağlayıcınız üzerinden oturum açmadıysanız oturum açmanız istenir.

    Bu URL, jeton almak için kimlik bilgileriniz olarak işlev gören tek seferlik bir şifre kodu döndürür ve yeni bir şifre kodu almak üzere URL'yi yenileyene veya erişim jetonu oluşturmak için get_token ile şifre kodunu kullanana kadar geçerli kalır. Örneğin:

  2. Edge API'ye aşağıdaki örnekte gösterildiği gibi istek gönderin:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode, yetkilendirme için kimlik bilgileriniz olarak kullanılır.

    Burada:

    • Authorization üst bilgisi "Temel ZWRnZWNsaTplZGdlY2xpc2VjcmV0" şeklindedir (tam değeri kullanın).
    • İstek türü: POST.
    • İsteğin gövdesinde şu bilgiler yer alır:
      • grant_type "şifre"dir.
      • response_type "jeton"dur.
      • passcode. Burada passcode, önceki adımda döndürülen şifre kodudur.

    Çağrı, erişim ve yenileme jetonlarını ekrana yazdırır.

Erişim jetonunuzu yenilemek için:

Aşağıdaki örnekte gösterildiği gibi https://zoneName.login.apigee.com/oauth/token adresine bir istek gönderin:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

Burada:

  • İsteğin gövdesinde şu bilgiler yer alır:
    • grant_type "refresh_token".
    • refresh_token, yenileme jetonunun değeridir.
  • Authorization üst bilgisi "Temel ZWRnZWNsaTplZGdlY2xpc2VjcmV0" şeklindedir (tam değeri kullanın).
  • İstek türü: POST.

SAML ile Edge API'ye erişme

Edge API'ye erişmek için curl veya Apigee kolaylık yardımcı programı acurl gibi araçları kullanabilirsiniz.

curl ile Edge API'yi çağırır ve aşağıdaki örnekte gösterildiği gibi, Authorization: Bearer üstbilgisinde erişim jetonunu geçirirsiniz:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

acurl ile Authorization üstbilgisini belirtmeniz gerekmez. Örneğin:

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

Bu örneklerde, belirtilen kuruluşla ilgili ayrıntıları alan Edge API uç noktası çağrılır. Edge API uç noktalarının tam listesi için Apigee Edge API Referansı'nı inceleyin.

Jetonunuzun güncel kalmasını sağlamak için yöntemler de dahil olmak üzere API'yi çağırmaya yönelik diğer yöntemler için OAuth2 ile Edge API'ye erişme bölümüne bakın.

SAML alt bölgelerindeki makine kullanıcıları

SAML alt bölgelerindeki makine kullanıcıları için Edge API'lerine otomatik erişimi komut dosyası haline getirmek amacıyla 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 '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

Yukarıdaki örnekte -m değerinin boş bir dizeye ayarlanması, makine kullanıcısından MFA kodu istenmesini engeller. --force-basic-auth işaretinin kullanılması, SAML alt bölgelerine sahip istekler tarafından tetiklenen bir şifre kodu için standart istemi geçersiz kılar.

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 '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'