وقتی از 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:
- از فرمان
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استفاده میکند. اگر نصب شما از این پیشفرضها استفاده نمیکند، آنها را بهصورت مناسب مشخص کنید.
- SSO_ADMIN_NAME نام کاربری سرپرست تعریفشده توسط
دارایی
- به سیستم «میانای کاربری Edge» وارد شوید و ایمیل کاربر ماشین را به سازمانهایتان اضافه کنید، و کاربر ماشین را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر، افزودن کاربران جهانی را ببینید.
ایجاد کاربر ماشین با Edge management API
میتوانید بااستفاده از Edge management API بهجای استفاده از
ابزار apigee-ssoadminapi.sh، کاربر ماشین ایجاد کنید.
برای ایجاد کاربر ماشین با API مدیریت:
- از فرمان
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در فایل پیکربندی مشخص شده است.این فرمان یک کد نمایش میدهد که برای انجام تماس بعدی به آن نیاز دارید.
- از فرمان
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"در مراحل بعدی به گذرواژه کاربر ماشین نیاز دارید.
- به سیستم «میانای کاربر لبه» وارد شوید.
- ایمیل کاربر ماشین را به سازمانهایتان اضافه کنید و کاربر ماشین را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر، افزودن کاربران جهانی را ببینید.
دریافت و بازآوری کردن ژتونهای کاربر ماشین
از Edge API برای دریافت و بازآوری کردن ژتونهای OAuth2 با ارسال اعتبارنامههای کاربر ماشین بهجای گذررمز استفاده کنید.
برای دریافت کد OAuth2 برای کاربر ماشین:
- برای تولید کدهای دسترسی و بازآوری اولیه، از فراخوانی 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'
نشانها را برای استفاده بعدی ذخیره کنید.
- گذراندن کد دسترسی به یک فراخوانی Edge management API بهعنوان سرایند
Bearer، همانطور که در مثال زیر نشان داده شده است:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
که در آن org_name نام سازمانی است که کاربر ماشین را دربرمیگیرد.
- برای بازآوری کد دسترسی در آینده، از تماس زیر که شامل کد بازآوری است استفاده کنید:
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'