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 tüm hizmetlerin yanı sıra Edge kullanıcı arayüzü ve API için TOA'yı destekleyebilirsiniz.

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

SAML ile OAuth2 arasındaki farklar

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

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

  1. Bölgeler: Public Cloud için Edge kullanıcıları, jeton alırken bölge adlarını referans olarak kullanmalıdır.
  2. Şifre kodu: Erişim/yenileme jetonu çifti istenirken tek kullanımlık şifre kodu ekleyin.

SAML, uygun bölge adının eklenmesiyle Edge OAuth2 hizmetinde aynı uç noktaları 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 sürecini otomatikleştirme bölümünde açıklandığı gibi makine kullanıcıları için jeton oluşturma sürecini de otomatikleştirebilirsiniz.

get_token ile erişim jetonları alma

Kimlik bilgilerinizi, SAML ile kullandığınız OAuth2 erişim ve yenileme jetonlarıyla değiştirmek 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'niz olarak ayarlayın. Giriş URL'si aşağıdaki biçimdedir:
    https://zoneName.login.apigee.com

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

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

    Tek kullanımlık şifre kodu almak için gösterilen 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 için 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. Örneğin:

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

  4. Aşağıdaki örnekte gösterildiği gibi, Edge API'yi çağırın ve erişim jetonunu 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 hizmetinden kopyalanabilir.

    Bu örnekte, belirtilen kuruluşla ilgili ayrıntılar alınır. Yönetim API uç noktalarının tam listesi için Apigee Edge API Referansı'na bakın.

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

get_token -u me@example.com

Yenileme jetonunun süresi dolana kadar yeni bir geçiş kodu girmeniz istenmez.

Yenileme jetonunun süresi dolduğunda get_token sizden yeni bir şifre kodu ister. Yeni bir OAuth2 erişim jetonu oluşturabilmek için önce yeni bir geçiş 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'de kimliğinizi doğrulamak için ilk isteğinizde erişim/yenileme jetonu çifti almak üzere ve tekrar yeni bir jeton çifti almak üzere bir geçiş kodu kullanırsınız.

Edge API ile jeton çifti almak için:

  1. Tek kullanımlık şifre kodu almak için tarayıcıda aşağıdaki URL'ye gidin:
    https://zoneName.login.apigee.com/passcode

    Örneğin, "acme" adlı bir 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 kullanımlık bir şifre kodu döndürür ve yeni bir şifre kodu almak için URL'yi yenileyene kadar geçerli kalır. Alternatif olarak, erişim jetonu oluşturmak için şifre kodunu get_token ile birlikte kullanabilirsiniz. Örneğin:

  2. Aşağıdaki örnekte gösterildiği gibi Edge API'ye 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 üstbilgisi "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" şeklindedir (bu değeri aynen kullanın).
    • İstek türü POST.
    • İsteğin gövdesi aşağıdakileri içerir:
      • grant_type, "şifre"dir.
      • response_type, "token" değerine sahip.
      • passcode (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övdesi aşağıdakileri içerir:
    • grant_type: "refresh_token".
    • refresh_token, yenileme jetonunun değeridir.
  • Authorization üstbilgisi "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" şeklindedir (bu değeri aynen 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 erişim jetonunu aşağıdaki örnekte gösterildiği gibi Authorization: Bearer üst bilgisinde iletirsiniz:

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 örnekler, belirli bir kuruluşla ilgili ayrıntıları alan bir Edge API uç noktasını çağırır. Edge API uç noktalarının tam listesi için Apigee Edge API Referansı'na bakın.

Jetonunuzun güncel kalmasını sağlamanın yolları da dahil olmak üzere API'yi çağırmanın ek yöntemleri için Access the Edge API with OAuth2 (OAuth2 ile Edge API'ye erişme) başlıklı makaleyi inceleyin.

SAML bölgelerindeki makine kullanıcıları

SAML bölgelerindeki makine kullanıcıları için Edge API'lerine otomatik erişim oluşturmak üzere acurl ve get_token yardımcı programlarını kullanabilirsiniz. Aşağıdaki örnekte, erişim jetonu istemek için get_token öğesinin nasıl kullanılacağı ve ardından jeton değerinin curl çağrısına nasıl ekleneceği 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ğerini boş bir dize olarak ayarlamak, makine kullanıcısının MFA kodu istemesini engeller. --force-basic-auth işaretini kullanmak, SAML bölgeleri içeren istekler tarafından tetiklenen standart geçiş kodu istemini geçersiz kılar.

Alternatif olarak, curl yardımcı programını kullanarak jeton isteğini ve acurl ç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/...'