Edge API ile harici bir IDP kullanırken, IDP etkileşiminden OAuth2 erişimi almak ve jetonları yenilemek için kullandığınız sürece şifre kodu akışı adı verilir. Şifre kodu akışıyla, daha sonra OAuth2 jetonlarını almak için kullanacağınız tek kullanımlık bir şifre kodunu almak için tarayıcı kullanırsınız.
Bununla birlikte, geliştirme ortamınız test otomasyonu veya CI/CD gibi yaygın geliştirme görevleri için otomasyonu destekliyor olabilir. Harici bir IdP etkinleştirildiğinde bu görevleri otomatik hale getirmek için tarayıcıdan şifre kodu kopyalayıp yapıştırmanıza gerek kalmadan OAuth2 jetonlarını alabileceğiniz ve yenileyebileceğiniz bir yönteme ihtiyacınız vardır.
Edge, IDP'nin etkin olduğu kuruluşlarda makine kullanıcılarının kullanarak otomatik jeton oluşturmayı destekler. Makine kullanıcıları, şifre kodu belirtmek zorunda kalmadan OAuth2 jetonları alabilir. Bu sayede, Edge Management API'yi kullanarak OAuth2 jetonları alma ve yenileme işlemini tamamen otomatikleştirebilirsiniz.
IdP'nin etkin olduğu bir kuruluş için makine kullanıcısı oluşturmanın iki yolu vardır:
Bu yöntemlerin her biri sonraki bölümlerde açıklanmıştır.
Harici IdP'yi etkinleştirmemiş kuruluşlar için makine kullanıcısı oluşturamazsınız.
apigee-ssoadminapi.sh
ile makine kullanıcısı oluşturun
IdP özellikli bir kuruluşta makine kullanıcısı oluşturmak için apigee-ssoadminapi.sh
yardımcı programını kullanın. Daha fazla bilgi için Apigee-ssoadminapi.sh'i kullanma bölümüne bakın. Tüm kuruluşlarınız tarafından kullanılan tek bir makine kullanıcısı veya her kuruluş için ayrı bir makine kullanıcısı oluşturabilirsiniz.
Makine kullanıcısı, IDP'nizde değil, Edge veri deposunda oluşturulur ve depolanır. Bu nedenle, Edge kullanıcı arayüzünü ve Edge Management API'yi kullanarak makine kullanıcısının bakımından sorumlu olmazsınız.
Makine kullanıcısını oluşturduğunuzda bir e-posta adresi ve şifre belirtmeniz gerekir. Makine kullanıcısını oluşturduktan sonra bir veya daha fazla kuruluşa atarsınız.
apigee-ssoadminapi.sh
ile makine kullanıcısı oluşturmak için:
- Makine kullanıcısını oluşturmak için aşağıdaki
apigee-ssoadminapi.sh
komutunu kullanın:apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \ --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \ -u machine_user_email -p machine_user_password
QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?
Burada:
- SSO_ADMIN_NAME, Apigee TOA modülünü yapılandırmak için kullanılan yapılandırma dosyasındaki
SSO_ADMIN_NAME
özelliği tarafından tanımlanan yönetici kullanıcı adıdır. Varsayılan değer:ssoadmin
. - SSO_ADMIN_SECRET, yapılandırma dosyasındaki
SSO_ADMIN_SECRET
özelliği tarafından belirtilen yönetici şifresidir.Bu örnekte,
apigee-sso
modülü--port
için 9099,--ssl
için de http değerlerini kullandığından--port
ve--ssl
değerlerini çıkarabilirsiniz. Yüklemeniz bu varsayılanları kullanmıyorsa bunları uygun şekilde belirtin.
- SSO_ADMIN_NAME, Apigee TOA modülünü yapılandırmak için kullanılan yapılandırma dosyasındaki
- Edge kullanıcı arayüzüne giriş yapın ve makine kullanıcısının e-postasını kuruluşunuza ekleyin. Ardından makine kullanıcısını gerekli role atayın. Daha fazla bilgi için Genel kullanıcılar ekleme konusuna bakın.
Edge Management API ile makine kullanıcısı oluşturma
apigee-ssoadminapi.sh
yardımcı programını kullanmak yerine Edge Management API'yi kullanarak bir makine kullanıcısı oluşturabilirsiniz.
Yönetim API'si ile makine kullanıcısı oluşturmak için:
apigee-sso
yönetici hesabının kullanıcı adı olanssoadmin
kullanıcısı için jeton almak üzere aşağıdakicurl
komutunu kullanın:curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \ -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \ -d "response_type=token" -d "grant_type=client_credentials" \ --data-urlencode "client_secret=SSO_ADMIN_SECRET" \ --data-urlencode "client_id=ssoadmin"
Burada SSO_ADMIN_SECRET, yapılandırma dosyasındaki
SSO_ADMIN_SECRET
özelliğinde belirtildiği şekildeapigee-sso
hizmetini yüklerken ayarladığınız yönetici şifresidir.Bu komut, bir sonraki çağrıyı yapmak için ihtiyacınız olan bir jetonu görüntüler.
- Aşağıdaki
curl
komutunu kullanarak makine kullanıcısını oluşturun ve önceki adımda aldığınız jetonu iletin:curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \ -H "Accept: application/json" -H "Content-Type: application/json" \ -d '{"userName" : "machine_user_email", "name" : {"formatted":"DevOps", "familyName" : "last_name", "givenName" : "first_name"}, "emails" : [ {"value" : "machine_user_email", "primary" : true } ], "active" : true, "verified" : true, "password" : "machine_user_password" }' \ -H "Authorization: Bearer token"
Sonraki adımlarda makine kullanıcısı şifresine ihtiyacınız olacaktır.
- Edge kullanıcı arayüzüne giriş yapın.
- Makine kullanıcısının e-postasını kuruluşlarınıza ekleyin ve makine kullanıcısını gerekli role atayın. Daha fazla bilgi için Genel kullanıcılar ekleme konusuna bakın.
Makine kullanıcısı jetonları edinme ve yenileme
Şifre kodu yerine makine kullanıcısının kimlik bilgilerini ileterek OAuth2 jetonlarını almak ve yenilemek için Edge API'yi kullanın.
Makine kullanıcısı için OAuth2 jetonları almak üzere:
- İlk 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 \ http://Edge_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=m_user_email&password=m_user_password'
Jetonları daha sonra kullanmak için kaydedin.
- Erişim jetonunu, aşağıdaki örnekte gösterildiği gibi
Bearer
başlığı olarak bir Edge Management API çağrısına iletin:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
Burada org_name, makine kullanıcısını içeren kuruluşun adıdır.
- Daha sonra erişim jetonunu 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 \ http://edge_sso_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken'