ใช้ IDP ภายนอกกับ Edge Management API

การตรวจสอบสิทธิ์พื้นฐานเป็นวิธีหนึ่งในการตรวจสอบสิทธิ์เมื่อทำการเรียก Edge Management API ตัวอย่างเช่น คุณสามารถส่งคำขอ curl ต่อไปนี้ไปยัง Edge Management API เพื่อเข้าถึง ข้อมูลเกี่ยวกับองค์กร

curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

ในตัวอย่างนี้ คุณใช้ตัวเลือก curl -u เพื่อส่งข้อมูลเข้าสู่ระบบสำหรับการตรวจสอบสิทธิ์พื้นฐาน หรือจะส่งโทเค็น OIDC/OAuth2 ในส่วนหัว Authorization: Bearer เพื่อทำการเรียก Edge Management API ก็ได้ ดังที่แสดงในตัวอย่างต่อไปนี้

curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

หลังจากเปิดใช้ IDP ภายนอกสำหรับการตรวจสอบสิทธิ์แล้ว คุณจะเลือกปิดใช้การตรวจสอบสิทธิ์พื้นฐาน ก็ได้ หากปิดใช้การตรวจสอบสิทธิ์พื้นฐาน สคริปต์ทั้งหมด (เช่น Maven, Shell และ apigeetool) ที่ อาศัยการเรียก Edge Management API ซึ่งรองรับการตรวจสอบสิทธิ์พื้นฐานจะไม่ทำงานอีกต่อไป คุณต้องอัปเดต การเรียก API และสคริปต์ที่ใช้การตรวจสอบสิทธิ์พื้นฐานเพื่อส่งโทเค็นเพื่อการเข้าถึง OAuth2 ใน Bearerส่วนหัว

รับและรีเฟรชโทเค็นด้วย get_token

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

ยูทิลิตี get_token จะแคชโทเค็นอย่างปลอดภัยบนดิสก์ใน ~/.sso-cli/ ซึ่งพร้อมใช้งานเมื่อจำเป็น นอกจากนี้ยังพิมพ์โทเค็นเพื่อการเข้าถึงที่ถูกต้องไปยัง stdout ด้วย หากรีเฟรชโทเค็นที่มีอยู่ได้ ยูทิลิตีจะรีเฟรชโทเค็นนั้นโดยอัตโนมัติ หากโทเค็นการรีเฟรชหมดอายุ ระบบจะเริ่มขั้นตอนการให้สิทธิ์ใหม่ในเบราว์เซอร์

วิธีรับโทเค็นเพื่อเข้าถึง OAuth2 เพื่อทำการเรียก Edge Management API

  1. ยูทิลิตี get_token และ acurl ได้รับการติดตั้งไว้ล่วงหน้าในโหนดที่โฮสต์ Apigee SSO (โหนด OpenLDAP) ที่: /opt/apigee/apigee-openldap/bin/
  2. (ไม่บังคับ) ตั้งค่าตัวแปรสภาพแวดล้อม SSO_LOGIN_URL เป็น URL ผู้ออก SSO ในรูปแบบต่อไปนี้
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    โดยที่ EDGE_SSO_IP_DNS คือที่อยู่ IP หรือชื่อ DNS ของเครื่องที่โฮสต์ Apigee SSO หากกำหนดค่า TLS ใน Apigee SSO ให้ใช้ https และหมายเลขพอร์ต TLS ที่ถูกต้อง

  3. เรียกใช้ get_token ด้วยอีเมลเพื่อเริ่มขั้นตอนรหัสอุปกรณ์ OAuth 2.0
    /opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS

    โดยที่ EMAIL_ADDRESS คืออีเมลของผู้ใช้ Edge

  4. ยูทิลิตีจะหยุดชั่วคราวและพิมพ์ URL และรหัสอุปกรณ์ 8 อักขระลงในเทอร์มินัล
    Please visit: http://EDGE_SSO_IP_DNS:9099/device
    And enter code: ABCD-EFGH
  5. เปิด URL ที่ระบุในเบราว์เซอร์ ป้อนรหัสอุปกรณ์ แล้วคลิกส่ง ระบบจะเปลี่ยนเส้นทางคุณไปยัง IDP ภายนอก (หรือแบบฟอร์ม LDAP ในเครื่อง) เพื่อตรวจสอบสิทธิ์และอนุมัติคำขอ
  6. หลังจากตรวจสอบสิทธิ์ในเบราว์เซอร์เรียบร้อยแล้ว ให้กลับไปที่เทอร์มินัล ยูทิลิตี get_token จะตรวจหาการอนุมัติโดยอัตโนมัติ รับโทเค็นเพื่อการเข้าถึง OAuth2 พิมพ์โทเค็นลงในหน้าจอ และแคชโทเค็นอย่างปลอดภัย
  7. ส่งโทเค็นเพื่อเข้าถึงไปยังการเรียก Edge Management API โดยใช้ยูทิลิตี acurl ซึ่งจะอ่านโทเค็นที่แคชไว้และแทรกส่วนหัว Bearer โดยอัตโนมัติ
    /opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

    หรือจะส่งโทเค็นด้วยตนเองโดยใช้ curl มาตรฐานก็ได้

    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

ใช้ Management API เพื่อรับและรีเฟรชโทเค็น

ระบบได้นำปลายทาง /passcode แบบเดิมออกแล้ว ดังนั้น ผู้ใช้ที่เป็นบุคคลต้องใช้ยูทิลิตี get_token ตามที่อธิบายไว้ก่อนหน้านี้เพื่อเริ่มขั้นตอนรหัสอุปกรณ์ OAuth 2.0 ในเบราว์เซอร์สำหรับการตรวจสอบสิทธิ์เริ่มต้น

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