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

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

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

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

دو روش برای ایجاد کاربر ماشین برای سازمان دارای 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» وارد شوید و ایمیل کاربر ماشین را به سازمان‌هایتان اضافه کنید، و کاربر ماشین را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر، افزودن کاربران جهانی را ببینید.

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

می‌توانید بااستفاده از Edge management API به‌جای استفاده از ابزار 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. به سیستم «میانای کاربر لبه» وارد شوید.
  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. گذراندن کد دسترسی به یک فراخوانی Edge management API به‌عنوان سرایند 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'