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

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:

  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

    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.

  2. 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:

  1. apigee-sso 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, yapılandırma dosyasındaki SSO_ADMIN_SECRET özelliğinde belirtildiği şekilde apigee-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.

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

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

  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 için kaydedin.

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

  3. 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'