هنگام استفاده از یک 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
:
- برای ایجاد کاربر ماشین از دستور
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
استفاده می کند. اگر نصب شما از این پیش فرض ها استفاده نمی کند، آنها را به صورت مناسب مشخص کنید.
- SSO_ADMIN_NAME نام کاربری ادمین است که توسط ویژگی
- وارد رابط کاربری Edge شوید و ایمیل کاربر دستگاه را به سازمان های خود اضافه کنید و کاربر دستگاه را به نقش لازم اختصاص دهید. برای اطلاعات بیشتر به افزودن کاربران جهانی مراجعه کنید.
یک کاربر ماشین با API مدیریت Edge ایجاد کنید
شما می توانید با استفاده از API مدیریت Edge به جای استفاده از ابزار 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 شوید.
- ایمیل کاربر ماشین را به سازمان های خود اضافه کنید و به کاربر ماشین نقش لازم را اختصاص دهید. برای اطلاعات بیشتر به افزودن کاربران جهانی مراجعه کنید.
توکنهای کاربر دستگاه را دریافت و بهروزرسانی کنید
از 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
به یک فراخوانی API مدیریت Edge ارسال کنید: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'