SAML'yi otomatik görevlerle kullanma

Private Cloud için Edge v4.18.01

SAML'i Edge API ile kullanırken, SAML beyanı üzerinden OAuth2 erişim ve yenileme jetonları almak için kullandığınız işleme şifre kodu akışı denir. Şifre kodu akışında, bir tarayıcı kullanarak tek kullanımlık şifre kodu alırsınız. Bu kodu daha sonra OAuth2 jetonları almak için kullanırsınız.

Ancak geliştirme ortamınız, test otomasyonu veya sürekli entegrasyon/sürekli dağıtım (CI/CD) gibi yaygın geliştirme görevleri için otomasyonu destekleyebilir. SAML etkinken bu görevleri otomatikleştirmek için tarayıcıdan geçiş kodu kopyalayıp yapıştırmak zorunda kalmadan OAuth2 jetonlarını alma ve yenileme yöntemine ihtiyacınız vardır.

Edge, makine kullanıcıları kullanılarak otomatik jeton oluşturmayı destekler. Makine kullanıcıları, geçiş kodu belirtmek zorunda kalmadan OAuth2 jetonları alabilir. Yani Edge Management API'yi kullanarak OAuth2 jetonlarını alma ve yenileme sürecini tamamen otomatikleştirebilirsiniz.

Makine kullanıcısı oluşturma

SAML kuruluşu için makine kullanıcısı oluşturmak üzere apigee-ssoadminapi.sh yardımcı programını kullanın. Daha fazla bilgi için apigee-ssoadminapi.sh dosyasını kullanma başlıklı makaleyi inceleyin. 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ı, SAML kimlik sağlayıcınızda değil Edge veri deposunda oluşturulur ve saklanır. Bu nedenle, Edge kullanıcı arayüzünü ve Edge yönetim API'sini kullanarak makine kullanıcısını korumaktan 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.

Makine kullanıcısı oluşturmak için:

  1. 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

    Burada:
    • SSO_ADMIN_NAME, Edge TOA modülünü yapılandırmak için kullanılan yapılandırma dosyasında SSO_ADMIN_NAME mülkü tarafından tanımlanan yönetici kullanıcı adıdır. Varsayılan değer ssoadmin'dir.
    • SSO_ADMIN_SECRET, yapılandırma dosyasında SSO_ADMIN_SECRET özelliği tarafından belirtilen yönetici şifresidir.

      Bu örnekte, apigee-sso modülü --port için 9099 ve --ssl için http varsayılan değerlerini kullandığından --port ve --ssl değerlerini atlayabilirsiniz. Kurulumunuzda bu varsayılanlar kullanılmıyorsa bunları uygun şekilde belirtin.
  2. 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 Küresel kullanıcı ekleme başlıklı makaleyi inceleyin.

Makine kullanıcısı jetonunu 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:

  1. İ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
    '
    Görüşme, erişim ve yenileme jetonlarını ekrana yazdırır. Jetonları daha sonra kullanmak üzere kaydedin.
  2. Erişim jetonunu, Edge yönetim API çağrısına Taşıyıcı üstbilgisi olarak iletin:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    Burada orgName, makine kullanıcısını içeren kuruluşun adıdır.
  3. 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'

Edge yönetim API'sini kullanarak makine kullanıcısı oluşturma

apigee-ssoadminapi.sh yardımcı programını kullanmak yerine Edge yönetim API'sini kullanarak makine kullanıcısı oluşturabilirsiniz. Makine kullanıcısı oluşturmak için:

  1. apigee-sso'nun yönetici hesabının kullanıcı adı olan ssoadmin kullanıcısı için jeton almak üzere aşağıdaki cURL 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, apigee-sso'yu yüklerken belirlediğiniz yönetici şifresidir. Bu şifre, yapılandırma dosyasında SSO_ADMIN_SECRET mülkü tarafından belirtilir.

    Bu komut, bir sonraki aramayı yapmak için ihtiyacınız olan jetonu gösterir.
  2. Önceki adımda aldığınız jetonu ileterek makine kullanıcısını oluşturmak için aşağıdaki cURL komutunu 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"


    Sonraki adımlarda makine kullanıcısı şifresine ihtiyacınız vardır.
  3. 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 Küresel kullanıcı ekleme başlıklı makaleyi inceleyin.