خودکارسازی کردن تکالیف برای ارائه‌دهندگان هویت خارجی

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

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

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

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

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

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

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

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

کاربر ماشین در پایگاه داده Edge ایجاد و ذخیره می‌شود، نه در IDP شما. بنابراین، شما مسئول نگهداری کاربر ماشین بااستفاده از Edge UI و Edge management API نیستید.

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

برای ایجاد کاربر ماشین با 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

    مکان:

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

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

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

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

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

برای ایجاد کاربر ماشین با میانای برنامه‌سازی کاربردی مدیریت:

  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 UI وارد شوید.
  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. همان‌طور که در مثال زیر نشان داده شده است، کد دسترسی را به‌عنوان سرصفحه Bearer به فراخوانی Edge management API ارسال کنید:
    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'