Edge API ile harici bir IDP kullanırken IdP etkileşiminden OAuth2 erişim ve yenileme jetonları almak için kullandığınız işleme şifre kodu akışı denir. Şifre kodu akışında, tek kullanımlık şifre kodu almak için bir tarayıcı kullanırsınız. Bu şifre kodunu daha sonra OAuth2 jetonları almak için kullanırsınız.
Ancak geliştirme ortamınız, test otomasyonu veya CI/CD gibi yaygın geliştirme görevleri için otomasyonu destekleyebilir. Harici bir IdP etkinleştirildiğinde bu görevleri otomatikleştirmek için tarayıcıdan şifre kodu kopyalayıp yapıştırmanıza gerek kalmadan OAuth2 jetonlarını alıp yenilemenin bir yolunu bulmanız gerekir.
Edge, IDP'nin etkin olduğu kuruluşlarda makine kullanıcıları aracılığıyla otomatik jeton oluşturmayı destekler. Makine kullanıcıları, şifre kodu belirtmek zorunda kalmadan OAuth2 jetonları alabilir. Bu, Edge Management API'yi kullanarak OAuth2 jetonlarını alma ve yenileme sürecini tamamen otomatikleştirebileceğiniz anlamına gelir.
Kimlik sağlayıcı (IdP) özellikli bir kuruluş için makine kullanıcı oluşturmanın iki yolu vardır:
Bu yöntemlerin her biri sonraki bölümlerde açıklanmıştır.
Harici IdP'si etkinleştirilmemiş kuruluşlar için makine kullanıcı oluşturamazsınız.
apigee-ssoadminapi.sh ile makine kullanıcısı oluşturma
Kimlik sağlayıcı özellikli bir kuruluşta makine kullanıcı oluşturmak için apigee-ssoadminapi.sh
yardımcı programını kullanın. Daha fazla bilgi için apigee-ssoadminapi.sh'yi kullanma başlıklı makaleyi inceleyin. Tüm kuruluşlarınız tarafından kullanılan tek bir makine kullanıcısı oluşturabilir 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ını yapmaktan sorumlu değilsiniz.
Makine kullanıcısını oluştururken 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.shkomutunu 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
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ğerssoadmin'dir. - SSO_ADMIN_SECRET, yapılandırma dosyasındaki
SSO_ADMIN_SECRETözelliği tarafından belirtilen yönetici şifresidir.Bu örnekte,
apigee-ssomodülü--portiçin 9099 ve--ssliçin http varsayılan değerlerini kullandığından--portve--ssldeğerlerini atlayabilirsiniz. Yüklemeniz bu varsayılanları kullanmıyorsa 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-posta adresini kuruluşlarınıza ekleyin ve makine kullanıcısını gerekli role atayın. Daha fazla bilgi için Genel kullanıcı ekleme başlıklı makaleyi inceleyin.
Edge Management API ile makine kullanıcısı oluşturma
apigee-ssoadminapi.sh yardımcı programını kullanmak yerine Edge Management API'yi kullanarak makine kullanıcısı oluşturabilirsiniz.
Management API ile makine kullanıcı oluşturmak için:
apigee-ssoiçin yönetici hesabının kullanıcı adı olanssoadminkullanıcısına ait jetonu almak üzere aşağıdakicurlkomutunu 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"
SSO_ADMIN_SECRET, yapılandırma dosyasındaki
SSO_ADMIN_SECRETözelliği tarafından belirtildiği şekildeapigee-ssouygulamasını yüklerken ayarladığınız yönetici şifresidir.Bu komut, bir sonraki çağrıyı yapmak için ihtiyacınız olan jetonu gösterir.
- Önceki adımda aldığınız jetonu ileterek makine kullanıcısını oluşturmak için aşağıdaki
curlkomutunu kullanın: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"Makine kullanıcısı şifresine sonraki adımlarda ihtiyacınız olacaktır.
- Edge kullanıcı arayüzüne giriş yapın.
- Makine kullanıcısının e-posta adresini kuruluşlarınıza ekleyin ve makine kullanıcısını gerekli role atayın. Daha fazla bilgi için Genel kullanıcı ekleme başlıklı makaleyi inceleyin.
Makine kullanıcısı jetonlarını alma 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 üzere kaydedin.
- Erişim jetonunu, aşağıdaki örnekte gösterildiği gibi
Bearerbaş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
org_name, makine kullanıcısını içeren kuruluşun adı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 \ http://edge_sso_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken'