Edge Management API ile SAML kullanma

Edge for Private Cloud 4.18.01 sürümü

Temel kimlik doğrulama, Edge yönetim API'sine çağrı yaparken kimlik doğrulamanın bir yoludur. Örneğin, bilgilere erişmek için Edge management API'ye aşağıdaki cURL isteğini gönderebilirsiniz kuruluşunuz hakkında:

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

Bu örnekte, Temel Kimlik Doğrulama kimlik bilgilerini iletmek için cURL -u seçeneğini kullanırsınız. Alternatif olarak, Edge Management API çağrıları yapmak için Bearer üstbilgisinde bir OAuth2 jetonu da iletebilirsiniz. Ö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'e dayanan 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. OAuth2 erişim jetonlarını Bearer üst bilgisinde iletmek için Temel Kimlik Doğrulama kullanan tüm API çağrılarını ve komut dosyalarını güncellemeniz gerekir.

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. Yenilenebilecek bir jeton varsa jeton yenilenir ve yazdırılır. Yenileme jetonunun süresi dolarsa kullanıcı kimlik bilgileri istenir.

get_token yardımcı programı, jetonları diskte saklayarak gerektiğinde kullanıma hazır hale getirir. Ayrıca, stdout'a geçerli bir erişim jetonu da yazdırır. Buradan Postman'ı kullanabilir veya curl'de kullanmak için bir ortam değişkenine yerleştirebilirsiniz.

Aşağıdaki prosedürde, OAuth2 erişim jetonu almak için get_token yönteminin nasıl kullanılacağı 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, Edge SSO modülünü barındıran makinenin DNS adının IP adresidir. TLS'yi uç TOA'da yapılandırdıysanız https'yi ve doğru TLS bağlantı noktası numarasını kullanın.
  2. ssocli-bundle.zip dosyasını açın. paket:
    &gt; sıkıştırmayı aç ssocli-bundle.zip
  3. get_token kodunu yükleyin. /usr/local/bin:
    &gt; ./install adresini ziyaret edin. -b seçeneği ile farklı konum: > ./yükleme -b path
  4. SSO_LOGIN_URL'yi ayarlayın ortam değişkenini giriş URL'nize şu biçimde ekleyin:
    dışa aktar SSO_LOGIN_URL=&quot;http://edge_sso_IP_DNS:9099&quot;

    Burada edge_sso_IP_DNS, makinenin DNS adının IP adresidir. giriş yapıyor. TLS'yi uç TOA'da yapılandırdıysanız https'yi ve doğru TLS bağlantı noktası numarasını kullanın.
  5. Tarayıcıda, tek seferlik şifre kodunu almak için aşağıdaki URL'ye gidin:
    http://edge_sso_IP_DNS:9099/passcode

    . TLS'yi uç TOA'da yapılandırdıysanız https ve doğru TLS bağlantı noktası numarasını kullanın.
    .
    . Not: Şu anda kimlik sağlayıcınız tarafından giriş yapmadıysanız giriş yapmanız istenir.
    .
    . Bu URL, tek seferlik bir şifre kodu döndürür. Bu şifre kodunu almak için URL yenilenene kadar veya erişim jetonu oluşturmak için şifre kodunu get_token ile kullanırsanız.
  6. OAuth2 erişim jetonunu almak için get_token'u çağırın:
    > get_token -u emailAddress

    Burada emailAddress, Edge kullanıcısının e-posta adresidir. 3. adımda elde ettiğiniz tek kullanımlık şifre kodunu girmeniz istenir:
    Tek Kullanımlık Kod ( https://edge_sso_IP.com/passcode adresinden edinebilirsiniz.)
    SAML etkinse şifre kodunu girin veya ENTER tuşuna basın:


    Şifre kodunu girin. get_token yardımcı programı, OAuth2 erişim jetonunu alır, ekrana yazdırır ve jetonu ile yenileme jetonunu ~/.sso-cli dosyasına yazar.
    .
    . Şifre kodunu, aşağıdaki biçimde bir get_token komutunu kullanarak komut satırına girebilirsiniz:
    &gt; get_token -u (get_token -u) emailAddress -p emailAddress
  7. Erişim jetonunu, Taşıyıcı başlığı olarak bir Edge management API çağrısına iletin:
    &gt; curl -H "Yetkilendirme: Taşıyıcı access_token&quot; 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:
    &gt; header=`get_token` && curl -H "Yetkilendirme: Taşıyıcı $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 dolduktan sonra get_token, 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.

OAuth2 güvenliğini kullanma" bölümünde açıklanan API çağrıları arasındaki tek fark 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 yukarıdaki işlemin 3. adımında gösterildiği gibi şifre kodunu eklemeniz gerekir.

Ö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 Yetkilendirme üstbilgisine ayrılmış bir OAuth2 istemcisi kimlik bilgisi iletin. Görüşmede, erişim ve yenileme jetonlarıdı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'