ทำงานโดยอัตโนมัติด้วยผู้ใช้ที่เป็นเครื่องจักร

เมื่อใช้ IDP ภายนอกกับ Edge API กระบวนการมาตรฐานในการรับโทเค็นเพื่อการเข้าถึง OIDC/OAuth2 จาก CLI คือ ขั้นตอนการให้สิทธิ์เข้าถึงอุปกรณ์ OAuth 2.0 โดยในขั้นตอนนี้ คุณจะใช้ยูทิลิตี get_token ซึ่งจะแจ้งให้คุณไปที่ URL ในเบราว์เซอร์เพื่อตรวจสอบสิทธิ์ผ่าน IDP แล้วยกเลิกการบล็อกเทอร์มินัลของคุณโดยอัตโนมัติ

อย่างไรก็ตาม สภาพแวดล้อมในการพัฒนาซอฟต์แวร์อาจรองรับการทำงานอัตโนมัติสำหรับงานการพัฒนาทั่วไป เช่น การทดสอบอัตโนมัติหรือไปป์ไลน์ CI/CD หากต้องการทำให้งานเหล่านี้เป็นแบบอัตโนมัติเมื่อเปิดใช้ IDP ภายนอก คุณต้องมีวิธีรับและรีเฟรชโทเค็น OAuth2 แบบไม่มีส่วนหัว โดยไม่ต้องมีการโต้ตอบกับเบราว์เซอร์

Edge รองรับการสร้างโทเค็นอัตโนมัติผ่านการใช้ผู้ใช้เครื่องแบบไม่มีส่วนหัว ผู้ใช้เครื่องสามารถ รับโทเค็น OIDC/OAuth2 ผ่านการให้สิทธิ์เข้าถึงด้วยรหัสผ่านมาตรฐานโดยไม่ต้องใช้เบราว์เซอร์ ซึ่งหมายความว่าคุณสามารถทำให้กระบวนการรับและรีเฟรชโทเค็นสำหรับสคริปต์เป็นแบบอัตโนมัติได้อย่างสมบูรณ์

สร้างผู้ใช้เครื่อง

คุณสามารถสร้างผู้ใช้เครื่องที่องค์กรทั้งหมดใช้ร่วมกัน หรือสร้างผู้ใช้เครื่องแยกต่างหากสำหรับแต่ละองค์กรก็ได้

ระบบจะสร้างและจัดเก็บผู้ใช้เครื่องไว้ในไดเรกทอรี OpenLDAP ในเครื่องโดยตรง และติดแท็กเป็นผู้ใช้เครื่องอย่างชัดเจน (employeeType: machineuser) ซึ่งช่วยให้ Apigee SSO ตรวจสอบสิทธิ์ผู้ใช้เครื่องได้อย่างปลอดภัยผ่านการให้สิทธิ์เข้าถึงด้วยรหัสผ่าน แม้ว่าจะมีการบังคับใช้ SAML/OIDC แบบรวมศูนย์อย่างเข้มงวดกับผู้ใช้ที่เป็นบุคคล

ดูวิธีการโดยละเอียดเกี่ยวกับการสร้าง การแสดงรายการ และการจัดการผู้ใช้เครื่องได้ที่หัวข้อ จัดการผู้ใช้เครื่องด้วย apigee-machineuser.sh

รับและรีเฟรชโทเค็นของผู้ใช้เครื่อง

คุณสามารถใช้ยูทิลิตี get_token และ acurl ที่มีให้ใน /opt/apigee/apigee-openldap/bin/ หรือ curl มาตรฐานเพื่อรับโทเค็นสำหรับผู้ใช้เครื่อง

  • การใช้ยูทิลิตี Apigee: Wrapper get_token และ acurl จะจัดการการแคชโทเค็น การสร้างเพย์โหลด และการรีเฟรชอัตโนมัติโดยอัตโนมัติ ดูวิธีการและตัวอย่างโดยละเอียดเกี่ยวกับการใช้เครื่องมือเหล่านี้ได้ที่หัวข้อ การใช้ยูทิลิตี get_token และ acurl
  • การใช้ curl มาตรฐาน: หากสคริปต์การทำงานอัตโนมัติไม่มีสิทธิ์เข้าถึง Wrapper ของ Apigee คุณสามารถโต้ตอบกับ Apigee SSO ได้โดยตรงโดยใช้คำสั่ง curl มาตรฐานต่อไปนี้

วิธีรับและรีเฟรชโทเค็นโดยใช้ curl มาตรฐาน:

  1. ใช้การเรียก API ต่อไปนี้เพื่อสร้างโทเค็นเพื่อการเข้าถึงและโทเค็นรีเฟรชเริ่มต้นจาก Apigee SSO โดยตรง
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token -s \
        -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access'
      
  2. ส่งโทเค็นเพื่อการเข้าถึงไปยังการเรียก Edge Management API ในส่วนหัว Authorization: Bearer
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. หากต้องการรีเฟรชโทเค็นเพื่อการเข้าถึงในภายหลัง ให้ใช้การเรียกต่อไปนี้ซึ่งมีโทเค็นรีเฟรช
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'