SAML'yi otomatik görevlerle kullanma

Edge for Private Cloud 4.18.05 sürümü

Edge API ile SAML kullanırken, SAML onayından OAuth2 erişimi ve jeton yenileme jetonları almak için kullandığınız sürece şifre kodu akışı denir. Şifre kodu akışıyla, tek kullanımlık bir şifre kodu almak için bir tarayıcı kullanırsınız. Bu şifreyi 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örevlerinin otomasyonunu destekliyor olabilir. SAML 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, makine kullanıcılarının kullanımıyla 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.

Makine kullanıcısı oluşturma

Bir 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'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ı, SAML kimlik sağlayıcınızda değil, Edge veri deposunda oluşturulur ve depolanır. Bu nedenle, Edge Kullanıcı Arayüzü 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.

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

Makine kullanıcısı jetonu alıp yenileyin

Ş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 bir Edge Management API çağrısına Bearer başlığı 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. 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'

Edge Management API'yi kullanarak 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.

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