هنگام استفاده از 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:
- از فرمان
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 UI وارد شوید و ایمیل کاربر ماشین را به سازمانهایتان اضافه کنید و کاربر ماشین را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر، افزودن کاربران جهانی را ببینید.
ایجاد کاربر ماشینی با Edge management API
میتوانید بااستفاده از Edge management API بهجای استفاده از ابزار کمکی
apigee-ssoadminapi.sh، کاربر ماشین ایجاد کنید.
برای ایجاد کاربر ماشین با میانای برنامهسازی کاربردی مدیریت:
- از فرمان
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 UI وارد شوید.
- ایمیل کاربر ماشین را به سازمانهایتان اضافه کنید و کاربر ماشین را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر، به افزودن کاربران جهانی مراجعه کنید.
دریافت و بازآوری کردن ژتونهای کاربر ماشین
از 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'
نشانها را برای استفاده بعدی ذخیره کنید.
- همانطور که در مثال زیر نشان داده شده است، کد دسترسی را بهعنوان سرصفحه
Bearerبه فراخوانی Edge management API ارسال کنید: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'