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

Edge API ile harici bir IDP kullanırken OAuth2'yi edinmek için kullandığınız işlem IDP etkileşimindeki erişim ve yenileme jetonlarına şifre kodu akışı denir. Şununla Şifre kodu akışında, bir defalık şifre kodu alırsınız ve bu şifre kodunu OAuth2'yi edinmek için kullanırsınız. jeton.

Ancak, geliştirme ortamınız yaygın geliştirme görevleri için otomasyonu destekleyebilir, Örneğin, test otomasyonu veya CI/CD. Harici bir IdP etkinleştirildiğinde bu görevleri otomatik hale getirmek için bir şifre kodunu kopyalayıp yapıştırmak zorunda kalmadan OAuth2 jetonlarını almak ve yenilemek için bir yönteme emin olun.

Edge, kuruluşlardaki makine kullanıcılarının kullanımı aracılığıyla otomatik jeton oluşturmayı destekler. Bu kullanıcıların IdP'si etkinleştirilmiş olmalıdır. Makine kullanıcısı OAuth2 jetonlarını almak için bir şifre kodu belirtmeniz gerekmez. Bu sayede kendinizi tamamen otomatik hale Edge management API'yi kullanarak OAuth2 jetonları alma ve yenileme işlemidir.

IDP 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 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

apigee-ssoadminapi.sh kullanın yardımcı programını kullanarak, IDP'nin etkin olduğu bir kuruluşta makine kullanıcısı oluşturabilirsiniz. Bkz. Apigee-ssoadminapi.sh kodunu inceleyebilirsiniz. Tüm kullanıcılar tarafından kullanılan tek bir makine kullanıcısı kuruluşlarınızı kullanabilir veya her kuruluş için ayrı makine kullanıcıları oluşturabilirsiniz.

Makine kullanıcısı IDP'nizde değil, Edge veri deposunda oluşturulur ve depolanır. Dolayısıyla, Edge kullanıcı arayüzü ve Edge yönetimi kullanarak makine kullanıcılarının bakımından sorumlu değildir API'ye gidin.

Makine kullanıcısını oluşturduğunuzda bir e-posta adresi ve şifre belirtmeniz gerekir. Şu tarihten sonra: 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, yapılandırma dosyasında kullanılan SSO_ADMIN_NAME özelliği Apigee TOA modülü. Varsayılan değer: ssoadmin.
    • SSO_ADMIN_SECRET, SSO_ADMIN_SECRET özelliği ekleyin.

      Bu örnekte, --port ve apigee-sso modülü varsayılan değeri kullandığı için --ssl --port için 9099 ve --ssl için http değerlerine karşılık gelir. Eğer yüklemede bu varsayılan ayarlar kullanılmıyorsa uygun şekilde belirtin.

  2. Edge kullanıcı arayüzüne giriş yapın, makine kullanıcısının e-postasını kuruluşunuza ekleyin ve gereken role atanabilir. Görüntüleyin Genel kullanıcı ekleme daha fazla.

Edge ile makine kullanıcısı oluşturma management API'si

Ayrıca, apigee-ssoadminapi.sh yardımcı programı.

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: apigee-sso için yönetici hesabının kullanıcı adı:
    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 nerede, yüklerken ayarladığınız yönetici şifresidir? SSO_ADMIN_SECRET özelliği tarafından belirtildiği şekliyle apigee-sso yapılandırma dosyası.

    Bu komut, bir sonraki çağrıyı yapmanız için gereken jetonu gösterir.

  2. Girdiğiniz jetonu ileterek makine kullanıcısını oluşturmak için aşağıdaki curl komutunu kullanın son adımda:
    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şunuza ekleyin ve makine kullanıcısını çok önemlidir. Bkz. Ekleme global kullanıcıları arayın.

Makine kullanıcı jetonları alın ve yenileyin

Makine kullanıcısının kimlik bilgileri girmeniz gerekir.

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, Bearer üstbilgisi olarak bir Edge management API çağrısına iletin: aşağıdaki örnek gösterilmektedir:
    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'
    .