Edge for Private Cloud 4.19.01 sürümü
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 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 yönetim API'si çağrıları yapmak için Bearer başlığında bir OAuth2 jetonu 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 Temel Kimlik Doğrulama'yı destekleyen Edge Management API'si çağrılarını kullanan tüm komut dosyaları (Maven komut dosyaları, kabuk komut dosyaları, apigeetool vb.) artık çalışmaz. Temel Kimlik Doğrulama'yı kullanan tüm API çağrılarını ve komut dosyalarını, Bearer üstbilgisinde OAuth2 erişim jetonlarını iletecek şekilde güncellemeniz gerekir.
Jetonları almak ve yenileme jetonlarını kullanmak için get_token kullanma
get_token yardımcı programı, Temel Kimlik Doğrulama kimlik bilgilerinizi ve şifre kodunuzu 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 yazdırır. Yenilenebilen jetonlar yenilenir ve yazdırılır. Yenileme jetonunun süresi dolarsa kullanıcı kimlik bilgileri istenir.
get_token yardımcı programı, jetonları diskte depolar ve gerektiğinde kullanıma hazır hale getirir. Ayrıca stdout'a geçerli bir erişim jetonu yazdırır. Buradan Postman'i kullanabilir veya curl'de kullanmak için bir ortam değişkenine yerleştirebilirsiniz.
Aşağıdaki prosedürde, Edge yönetim API'si çağrıları yapmak için OAuth2 erişim jetonu almak üzere get_token'ın nasıl kullanılacağı açıklanmaktadır:
- 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 TOA modülünü barındıran makinenin IP adresi veya DNS adıdır. Edge TOA'da TLS'yi yapılandırdıysanız
httpsve doğru TLS bağlantı noktası numarasını kullanın. ssocli-bundle.zippaketini açın:unzip ssocli-bundle.zip
- get_token'ı /usr/local/bin dizinine yükleyin:
> ./install Farklı bir konum belirtmek için -b seçeneğini kullanın: > ./install -b path - 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, Edge TOA modülünü barındıran makinenin DNS adının IP adresidir. Edge TOA'da TLS'yi yapılandırdıysanız https'i ve doğru TLS bağlantı noktası numarasını kullanın. - Bir tarayıcıda, tek kullanımlık şifre kodu almak için aşağıdaki URL'ye gidin:
http://edge_sso_IP_DNS:9099/passcode
Edge TOA'da TLS'yi yapılandırdıysanız https ve doğru TLS bağlantı noktası numarasını kullanın.
Not: Kimlik sağlayıcınızda 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. - OAuth2 erişim jetonunu almak için get_token'ı çağırın:
> get_token -u emailAddress
Burada emailAddress, bir Edge kullanıcısının e-posta adresidir. 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şim jetonunu alır, ekrana yazdırır ve yenileme jetonuyla birlikte ~/.sso-cli dosyasına yazar.
Şifre kodunu, komut satırına aşağıdaki biçimde bir get_token komutu kullanarak girebilirsiniz:
> get_token -u emailAddress -p passcode - Erişim jetonunu, Bearer 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, erişim jetonunu alıp tek bir komutla API çağrısına iletebilirsiniz. Bu işlem aşağıda gösterilmiştir:
> header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
Komutun bu biçiminde, erişim jetonunun süresi dolmuşsa yenileme jetonunun süresi dolana kadar otomatik olarak yenilenir.
Yenileme jetonunun süresi dolduktan sonra get_token sizden yeni bir şifre kodu ister. Yeni bir OAuth erişim jetonu oluşturabilmek için yukarıdaki 3. adımda gösterilen URL'ye gidip yeni bir şifre kodu oluşturmanız gerekir.
Management API'sini kullanarak jeton alma ve yenileme
Apigee Edge Management API'si ile OAuth2 güvenliğini kullanma başlıklı makalede, jetonları almak ve yenileme jetonlarını kullanmak için Edge Management API'sinin nasıl kullanılacağını gösteren talimatlar yer alır. SAML onaylarından oluşturulan jetonlar 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, 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.
Ö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 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 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'