Harici IdP'ler için görevleri otomatik hale getirme

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 geçiş kodu akışı adı verilir. Şifre kodu akışında, tarayıcı kullanarak tek kullanımlık bir şifre kodu alırsınız. Bu kodu daha sonra OAuth2 jetonlarını 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 geçiş kodu kopyalayıp yapıştırmanıza gerek kalmadan OAuth2 jetonlarını alıp yenilemenin bir yolunu bulmanız gerekir.

Edge, kimlik sağlayıcının etkin olduğu kuruluşlarda makine kullanıcıları kullanılarak otomatik jeton oluşturmayı destekler. Bir makine kullanıcısı, geçiş kodu belirtmek zorunda kalmadan OAuth2 jetonları alabilir. Bu sayede, Edge Management API'yi kullanarak OAuth2 jetonlarını alma ve yenileme sürecini tamamen otomatikleştirebilirsiniz.

Kimlik sağlayıcı etkin 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 kimlik sağlayıcıyı etkinleştirmemiş kuruluşlar için makine kullanıcısı oluşturamazsınız.

apigee-ssoadminapi.sh ile makine kullanıcısı oluşturma

Kimlik sağlayıcı etkin bir kuruluşta makine kullanıcısı oluşturmak için apigee-ssoadminapi.sh aracını kullanın. Daha fazla bilgi için apigee-ssoadminapi.sh 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 yönetim API'sini kullanarak makine kullanıcısını korumak sizin sorumluluğunuzda değildir.

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:

  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, Apigee TOA modülünü yapılandırmak için kullanılan yapılandırma dosyasındaki SSO_ADMIN_NAME özelliğiyle tanımlanan yönetici kullanıcı adıdır. Varsayılan değer ssoadmin'dir.
    • SSO_ADMIN_SECRET, yapılandırma dosyasındaki SSO_ADMIN_SECRET özelliğiyle belirtilen yönetici şifresidir.

      Bu örnekte, --port ve --ssl değerlerini atlayabilirsiniz. Çünkü apigee-sso modülü, --port için varsayılan 9099 değerini, --ssl için ise varsayılan http değerini kullanır. Kurulumunuzda bu varsayılanlar kullanılmıyorsa bunları uygun şekilde belirtin.

  2. Edge kullanıcı arayüzünde oturum açı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.

Edge yönetim API'si 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.

Yönetim API'si ile makine kullanıcısı oluşturmak için:

  1. ssoadmin kullanıcısı için jeton almak üzere aşağıdaki curl komutunu kullanın. Bu kullanıcı, apigee-sso için yönetici hesabının kullanıcı adıdır:
    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ği tarafından belirtildiği şekilde apigee-sso'ı yüklerken ayarladığınız yönetici şifresidir.

    Bu komut, bir sonraki aramayı yapmak için ihtiyacınız olan jetonu gösterir.

  2. Makine kullanıcısını oluşturmak için aşağıdaki curl komutunu kullanın 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"

    Daha sonraki adımlarda makine kullanıcısının şifresine ihtiyacınız olacaktır.

  3. Edge kullanıcı arayüzüne giriş yapın.
  4. 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ı jetonlarını alma ve yenileme

Makine kullanıcısının kimlik bilgilerini geçiş kodu yerine 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'

    Jetonları daha sonra kullanmak üzere kaydedin.

  2. Erişim jetonunu, aşağıdaki örnekte gösterildiği gibi Bearer üstbilgisi olarak bir Edge yönetim API'si ç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.

  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'