เมื่อใช้ IDP ภายนอกกับ Edge API กระบวนการที่คุณใช้เพื่อรับ OAuth2 การเข้าถึงและรีเฟรชโทเค็นจากการโต้ตอบของ IdP จะเรียกว่าขั้นตอนรหัสผ่าน ด้วยฟังก์ชัน ขั้นตอนรหัสผ่าน ให้ใช้เบราว์เซอร์เพื่อรับรหัสผ่านที่สามารถใช้งานได้เพียงครั้งเดียวซึ่งจะใช้ในการรับ OAuth2 โทเค็น
อย่างไรก็ตาม สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ของคุณอาจรองรับระบบอัตโนมัติสำหรับงานการพัฒนาทั่วไป เช่น การทดสอบระบบอัตโนมัติหรือ CI/CD หากต้องการให้งานเหล่านี้ทำงานโดยอัตโนมัติเมื่อเปิดใช้ IdP ภายนอก คุณต้องมีวิธีรับและรีเฟรชโทเค็น OAuth2 โดยไม่ต้องคัดลอก/วางรหัสผ่านจาก เบราว์เซอร์
Edge รองรับการสร้างโทเค็นอัตโนมัติผ่านการใช้ผู้ใช้เครื่องภายในองค์กร ที่เปิดใช้ IDP ผู้ใช้เครื่องสามารถ รับโทเค็น OAuth2 โดยไม่ต้องระบุรหัสผ่าน คุณจึงดำเนินการแบบอัตโนมัติ กระบวนการรับและรีเฟรชโทเค็น OAuth2 โดยใช้ Edge Management API
การสร้างผู้ใช้เครื่องสำหรับองค์กรที่เปิดใช้ IdP ทำได้ 2 วิธีดังนี้
วิธีการเหล่านี้จะอธิบายไว้ในส่วนถัดไป
คุณไม่สามารถสร้างผู้ใช้เครื่องสำหรับองค์กรที่ไม่ได้เปิดใช้ IdP ภายนอก
สร้างผู้ใช้เครื่องด้วย apigee-ssoadminapi.sh
ใช้ apigee-ssoadminapi.sh
เพื่อสร้างผู้ใช้เครื่องภายในองค์กรที่เปิดใช้ IDP ดูการใช้
apigee-ssoadminapi.sh เพื่อดูข้อมูลเพิ่มเติม คุณสามารถสร้างผู้ใช้เครื่อง 1 รายที่ใช้โดย
องค์กร หรือสร้างผู้ใช้เครื่องแยกกันสำหรับแต่ละองค์กร
ระบบจะสร้างผู้ใช้เครื่องและจัดเก็บไว้ในพื้นที่เก็บข้อมูล Edge ไม่ใช่ใน IdP ดังนั้นคุณจึง จะไม่รับผิดชอบในการดูแลรักษาผู้ใช้เครื่องโดยใช้ Edge UI และการจัดการ Edge API
เมื่อสร้างผู้ใช้เครื่อง คุณต้องระบุอีเมลและรหัสผ่าน หลัง ที่สร้างผู้ใช้เครื่อง คุณจะต้องกำหนดผู้ใช้ให้กับองค์กรอย่างน้อย 1 แห่ง
วิธีสร้างผู้ใช้เครื่องด้วย 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
ในไฟล์การกำหนดค่าที่ใช้กำหนดค่า โมดูล SSO ของ Apigee โดยมีค่าเริ่มต้นเป็นssoadmin
- SSO_ADMIN_SECRET คือรหัสผ่านของผู้ดูแลระบบตามที่ระบุโดย
SSO_ADMIN_SECRET
ในไฟล์การกำหนดค่าในตัวอย่างนี้ คุณสามารถละค่าสำหรับ
--port
และ--ssl
เนื่องจากโมดูลapigee-sso
ใช้ค่าเริ่มต้น ค่า 9099 สำหรับ--port
และ http สำหรับ--ssl
หาก การติดตั้งไม่ได้ใช้ค่าเริ่มต้นเหล่านี้ โปรดระบุตามความเหมาะสม
- SSO_ADMIN_NAME คือชื่อผู้ใช้ของผู้ดูแลระบบที่กำหนดโดย
พร็อพเพอร์ตี้
- เข้าสู่ระบบ Edge UI และเพิ่มอีเมลของผู้ใช้เครื่องในองค์กร และกำหนด ผู้ใช้เครื่องให้มีบทบาทที่จำเป็น โปรดดู การเพิ่มผู้ใช้ทั่วโลกสำหรับ และอีกมากมาย
สร้างผู้ใช้เครื่องด้วย Edge API การจัดการ
คุณสร้างผู้ใช้เครื่องได้โดยใช้ Edge Management API แทนที่จะใช้
ยูทิลิตี apigee-ssoadminapi.sh
วิธีสร้างผู้ใช้เครื่องด้วย Management 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 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'
บันทึกโทเค็นไว้ใช้ในภายหลัง
- ส่งโทเค็นเพื่อการเข้าถึงไปยังการเรียก 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'