Edge Management API ile SAML kullanma

Edge for Private Cloud s. 4.17.09

Temel Kimlik Doğrulama, Edge Management API'ye çağrı yaparken kullanabileceğiniz kimlik doğrulama yöntemlerinden biridir. Örneğin, örneğin, aşağıdaki cURL isteğini Edge management API'ye iletebilir ve kuruluşunuz hakkında:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

Bu örnekte, Temel Yetkilendirme kimlik bilgilerini iletmek için cURL -u seçeneğini kullanırsınız. Alternatif olarak Edge management API'yi oluşturmak için Bearer başlığında bir OAuth2 jetonu iletebilir çağrısının en iyi yolu. Örneğin:

curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

SAML'yi etkinleştirdikten sonra isteğe bağlı olarak Temel Kimlik Doğrulama'yı devre dışı bırakabilirsiniz. Temel Kimlik Doğrulama'yı devre dışı bırakırsanız Edge kullanan komut dosyaları (Maven komut dosyaları, kabuk komut dosyaları, apigeetool vb.) Temel Kimlik Doğrulama'yı destekleyen management API çağrıları artık çalışmamaktadır. Tüm API çağrılarını ve Taşıyıcı üstbilgisindeki OAuth2 erişim jetonlarını aktarmak için Temel Kimlik Doğrulama'yı kullanan komut dosyaları.

Jetonları almak ve yenilemek için get_token kullanma

get_token yardımcı programı Temel Kimlik Doğrulama kimlik bilgilerinizi ve şifre kodunu OAuth2 erişimi ve yenileme jetonuyla değiştirir. İlgili içeriği oluşturmak için kullanılan get_token yardımcı programı kimlik bilgilerini gönderir ve geçerli bir erişim jetonu yazdırır. Jeton yenilenebiliyorsa yenilenebilir ve yazdırabilirsiniz. Yenileme jetonunun süresi dolarsa kullanıcı kimlik bilgileri istenir.

get_token yardımcı programı mağazaları gerektiğinde kullanılmak üzere hazır olur. Ayrıca stdout'a geçerli bir erişim jetonu da yazdırır. Buradan, Postman'i kullanabilir veya curl'de kullanmak üzere bir ortam değişkenine yerleştirebilirsiniz.

Aşağıdaki prosedürde, OAuth2 erişim jetonunun get_token aracılığıyla nasıl alınacağı açıklanmaktadır. Edge management API çağrıları yapın:

  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, makinenin DNS adının IP adresidir. giriş yapıyor. Uç TOA'da TLS'yi yapılandırdıysanız https ve doğru TLS bağlantı noktası numarası.

  2. ssocli-bundle.zip adlı paketin sıkıştırmasını açın:
    unzip ssocli-bundle.zip
  3. get_token uygulamasını yükle /usr/local/bin:
    ./install

    Farklı bir konum belirtmek için -b seçeneğini kullanın:

    ./install -b path
  4. SSO_LOGIN_URL ortam değişkenini giriş URL'nize şu biçimde ayarlayın:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    Burada edge_sso_IP_DNS, makinenin DNS adının IP adresidir. giriş yapıyor. Uç TOA'da TLS'yi yapılandırdıysanız https ve doğru TLS bağlantı noktası numarası.

  5. Tek seferlik şifre kodunu almak için tarayıcıda aşağıdaki URL'ye gidin:
    http://edge_sso_IP_DNS:9099/passcode

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

    Bu URL, tek seferlik bir şifre kodu döndürür. Bu şifre kodunu almak için URL yenilenene kadar Yeni bir şifre kodu kullanın veya erişim oluşturmak için get_token ile şifre kodunu kullanın jeton.

  6. OAuth2 erişim jetonunu almak için get_token komutunu çağırın:
    get_token -u emailAddress

    Burada emailAddress bir Edge kullanıcısının e-posta adresidir. Şu anki düzeyiniz: 3. adımda aldığınız tek kullanımlık şifre kodunu girmeniz istenir:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

    Şifre kodunu girin. get_token yardımcı programı OAuth2 erişimini elde eder imzasını alır, ekrana yazdırır ve bu kod ile yenileme jetonunu ~/.sso-cli.

    Şifre kodunu bir komut satırından Şu formdaki get_token komutu:

    get_token -u emailAddress -p passcode
  7. Erişim jetonunu, Taşıyıcı başlığı olarak bir Edge management API çağrısına iletin:
    curl -H "Authorization: Bearer access_token"
    https://ms_IP:8080/v1/organizations/orgName

    İlk kez yeni bir erişim jetonu aldıktan sonra, yeni bir erişim jetonunu aşağıdaki gibi tek bir komutla bir API çağrısına iletin:

    header=`get_token` &&
    curl -H "Authorization: Bearer $header"
    https://ms_IP:8080/v1/o/orgName

    Komutun bu biçimiyle, erişim jetonunun süresi dolmuşsa jeton otomatik olarak yenilenir geçerlilik süresi sona erene kadar bekleyin.

Yenileme jetonunun süresi dolduğunda get_token sizden yeni bir şifre kodu girmenizi ister. Siz bir şifre kodu oluşturmadan önce, yukarıdaki 3. Adım'da gösterilen URL'ye gitmeniz ve yeni bir şifre kodu oluşturmanız gerekir: yeni OAuth erişim jetonu

Alma ve yenileme için management API'yi kullanma jetonlar

OAuth2'yi kullanma güvenlik duvarıyla ilgili daha kapsamlı bilgiler, Jetonları almak ve yenilemek için uç yönetim API'si. Ayrıca, jetonlar için Edge API çağrılarını da kullanabilirsiniz üretilir.

Şurada belgelenen API çağrıları arasındaki tek fark: OAuth2 güvenliğini kullanma birlikte kullanılması, çağrı URL'sinin bölgenize referans vermesi gerektiği anlamına gelir. dokunun. Ayrıca, ilk erişim jetonunu oluşturmak için şifre kodunu da aşağıdaki prosedürün 3. adımında gösterilmiştir.

Örneğin, ilk 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'

Yetkilendirme için Authorization içinde ayrılmış bir OAuth2 istemci kimlik bilgisini iletin kullanabilirsiniz. Aramada, erişim ve yenileme jetonları ekranda yazdırılır.

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=refreshToken'