خودکارسازی وظایف برای آوارگان خارجی

هنگام استفاده از یک IDP خارجی با API Edge، فرآیندی که برای به دست آوردن دسترسی OAuth2 و به‌روزرسانی نشانه‌ها از تعامل IDP استفاده می‌کنید، جریان رمز عبور نامیده می‌شود. با جریان رمز عبور، از یک مرورگر برای به دست آوردن یک رمز عبور یک بار مصرف استفاده می کنید که سپس برای به دست آوردن نشانه های OAuth2 استفاده می کنید.

با این حال، محیط توسعه شما ممکن است از اتوماسیون برای کارهای توسعه رایج، مانند اتوماسیون تست یا CI/CD پشتیبانی کند. برای خودکار کردن این وظایف زمانی که یک IDP خارجی فعال است، به راهی برای به دست آوردن و بازخوانی نشانه‌های OAuth2 بدون نیاز به کپی/پیست کردن رمز عبور از مرورگر نیاز دارید.

Edge از تولید توکن خودکار از طریق استفاده از کاربران ماشین در سازمان‌هایی که IDP فعال دارند پشتیبانی می‌کند. کاربر ماشین می تواند توکن های OAuth2 را بدون نیاز به تعیین رمز عبور به دست آورد. این بدان معناست که می‌توانید با استفاده از API مدیریت Edge، فرآیند دریافت و به‌روزرسانی توکن‌های OAuth2 را کاملاً خودکار کنید.

دو راه برای ایجاد کاربر ماشین برای یک سازمان دارای IDP وجود دارد:

هر یک از این روش ها در بخش های بعدی توضیح داده شده است.

شما نمی توانید یک کاربر ماشین برای سازمان هایی ایجاد کنید که IDP خارجی را فعال نکرده اند.

یک کاربر ماشین با apigee-ssoadminapi.sh ایجاد کنید

از ابزار apigee-ssoadminapi.sh برای ایجاد یک کاربر ماشین در یک سازمان دارای IDP استفاده کنید. برای اطلاعات بیشتر به استفاده از apigee-ssoadminapi.sh مراجعه کنید. می‌توانید یک کاربر ماشینی ایجاد کنید که توسط همه سازمان‌های شما استفاده می‌شود، یا یک کاربر ماشین جداگانه برای هر سازمان ایجاد کنید.

کاربر ماشین در Edge datastore ایجاد و ذخیره می شود، نه در IDP شما. بنابراین، شما مسئولیتی در قبال حفظ کاربر دستگاه با استفاده از رابط کاربری Edge و API مدیریت Edge ندارید.

هنگام ایجاد کاربر دستگاه، باید آدرس ایمیل و رمز عبور را مشخص کنید. پس از ایجاد کاربر ماشین، آن را به یک یا چند سازمان اختصاص می دهید.

برای ایجاد یک کاربر ماشین با apigee-ssoadminapi.sh :

  1. برای ایجاد کاربر ماشین از دستور apigee-ssoadminapi.sh زیر استفاده کنید:
    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?

    جایی که:

    • SSO_ADMIN_NAME نام کاربری ادمین است که توسط ویژگی SSO_ADMIN_NAME در فایل پیکربندی استفاده شده برای پیکربندی ماژول Apigee SSO تعریف شده است. پیش فرض ssoadmin است.
    • SSO_ADMIN_SECRET رمز عبور مدیریت است که توسط ویژگی SSO_ADMIN_SECRET در فایل پیکربندی مشخص شده است.

      در این مثال، می توانید مقادیر --port و --ssl را حذف کنید زیرا ماژول apigee-sso از مقادیر پیش فرض 9099 برای --port و http برای --ssl استفاده می کند. اگر نصب شما از این پیش فرض ها استفاده نمی کند، آنها را به صورت مناسب مشخص کنید.

  2. وارد رابط کاربری Edge شوید و ایمیل کاربر دستگاه را به سازمان های خود اضافه کنید و کاربر دستگاه را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر به افزودن کاربران جهانی مراجعه کنید.

یک کاربر ماشین با API مدیریت Edge ایجاد کنید

شما می توانید با استفاده از API مدیریت Edge به جای استفاده از ابزار apigee-ssoadminapi.sh یک کاربر ماشین ایجاد کنید.

برای ایجاد یک کاربر ماشین با API مدیریت :

  1. از دستور curl زیر برای به دست آوردن یک نشانه برای کاربر ssoadmin ، نام کاربری حساب مدیریت برای apigee-sso استفاده کنید:
    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 رمز عبور مدیریتی است که هنگام نصب apigee-sso همانطور که توسط ویژگی SSO_ADMIN_SECRET در فایل پیکربندی مشخص شده است، تنظیم می کنید.

    این دستور رمزی را نشان می دهد که برای برقراری تماس بعدی به آن نیاز دارید.

  2. از دستور curl زیر برای ایجاد کاربر ماشین استفاده کنید و رمزی را که در مرحله قبل دریافت کردید ارسال کنید:
    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"

    در مراحل بعدی به رمز عبور کاربر دستگاه نیاز دارید.

  3. وارد رابط کاربری Edge شوید.
  4. ایمیل کاربر ماشین را به سازمان های خود اضافه کنید و به کاربر ماشین نقش لازم را اختصاص دهید. برای اطلاعات بیشتر به افزودن کاربران جهانی مراجعه کنید.

توکن‌های کاربر دستگاه را دریافت و به‌روزرسانی کنید

از Edge API برای به دست آوردن و بازخوانی توکن های OAuth2 با ارسال اطلاعات کاربری کاربر دستگاه، به جای رمز عبور استفاده کنید.

برای به دست آوردن نشانه های OAuth2 برای کاربر ماشین:

  1. از فراخوانی API زیر برای ایجاد توکن‌های دسترسی اولیه و تازه‌سازی استفاده کنید:
    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'

    توکن ها را برای استفاده بعدی ذخیره کنید.

  2. همانطور که مثال زیر نشان می دهد، رمز دسترسی را به یک فراخوانی API مدیریت Edge به عنوان هدر Bearer ارسال کنید:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    جایی که org_name نام سازمانی است که کاربر ماشین را در خود جای داده است.

  3. برای بازخوانی رمز دسترسی، از فراخوانی زیر استفاده کنید که شامل نشانه رفرش است:
    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'