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

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

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

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

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

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

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

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

ยูทิลิตี get_token จะจัดเก็บโทเค็นในดิสก์ พร้อมใช้งานเมื่อจําเป็น และจะพิมพ์โทเค็นการเข้าถึงที่ถูกต้องไปยัง stdout ด้วย จากที่นั่น คุณสามารถใช้ส่วนขยายของเบราว์เซอร์ เช่น Postman หรือฝังไว้ในตัวแปรสภาพแวดล้อมเพื่อใช้ใน curl

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

  1. ดาวน์โหลดแพ็กเกจ sso-cli:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

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

  2. แตกไฟล์กลุ่ม ssocli-bundle.zip ดังตัวอย่างต่อไปนี้
    unzip ssocli-bundle.zip
  3. ติดตั้ง get_token ใน /usr/local/bin ตามตัวอย่างต่อไปนี้
    ./install -b PATH

    ตัวเลือก -b ระบุสถานที่ตั้งอื่น

  4. ตั้งค่าตัวแปรสภาพแวดล้อม SSO_LOGIN_URL เป็น URL สำหรับเข้าสู่ระบบในเงื่อนไขต่อไปนี้ แบบฟอร์ม:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

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

  5. (SAML เท่านั้น) ในเบราว์เซอร์ ให้ไปที่ URL ต่อไปนี้เพื่อรับคำขอแบบครั้งเดียว รหัสผ่าน:
    http://EDGE_SSO_IP_DNS:9099/passcode

    หากคุณกำหนดค่า TLS ใน SSO ของ Apigee ให้ใช้ https และพอร์ต TLS ที่ถูกต้อง หมายเลข

    คำขอนี้จะแสดงผลรหัสผ่านแบบใช้ครั้งเดียวที่ใช้งานได้จนกว่าคุณจะรีเฟรช URL นั้นเพื่อรับรหัสผ่านใหม่ หรือใช้รหัสผ่านกับ get_token เพื่อสร้างโทเค็นการเข้าถึง

    โปรดทราบว่าคุณจะใช้รหัสผ่านได้ก็ต่อเมื่อตรวจสอบสิทธิ์ด้วย SAML IDP เท่านั้น คุณไม่สามารถใช้ รหัสผ่านเพื่อตรวจสอบสิทธิ์กับ IDP ของ LDAP

  6. เรียกใช้ get_token เพื่อรับโทเค็นเพื่อการเข้าถึง OAuth2 ตามตัวอย่างต่อไปนี้
    get_token -u EMAIL_ADDRESS

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

    (SAML เท่านั้น) ป้อนรหัสผ่านในบรรทัดคำสั่งนอกเหนือจากอีเมล ตามตัวอย่างต่อไปนี้

    get_token -u EMAIL_ADDRESS -p PASSCODE

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

  7. ส่งโทเค็นเพื่อการเข้าถึงไปยังการเรียก Edge Management API เป็นส่วนหัว Bearer ดังตัวอย่างต่อไปนี้
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. หลังจากได้รับโทเค็นเพื่อการเข้าถึงใหม่เป็นครั้งแรก คุณจะได้รับโทเค็นเพื่อการเข้าถึงและ ส่งไปยังการเรียก API ในคำสั่งเดียว ตามตัวอย่างต่อไปนี้
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    ด้วยคำสั่งรูปแบบนี้ หากโทเค็นเพื่อการเข้าถึงหมดอายุ จะมีการสร้างโดยอัตโนมัติ รีเฟรชจนกว่าโทเค็นการรีเฟรชจะหมดอายุ

(SAML เท่านั้น) หลังจากที่โทเค็นการรีเฟรชหมดอายุ get_token จะแจ้งให้คุณตั้งรหัสผ่านใหม่ คุณ ต้องไปที่ URL ที่แสดงด้านบนในขั้นตอนที่ 3 แล้วสร้างรหัสผ่านใหม่ก่อนจึงจะสร้างได้ โทเค็นเพื่อการเข้าถึง OAuth ใหม่

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

ใช้ OAuth2 การรักษาความปลอดภัยด้วย Apigee Edge Management API จะแสดงวิธีใช้ Edge Management API เพื่อรับและรีเฟรชโทเค็น คุณยังใช้การเรียก Edge API เพื่อรับโทเค็นได้ด้วย ที่สร้างขึ้นจากการยืนยันผ่าน SAML

ความแตกต่างเพียงอย่างเดียวระหว่างการเรียก API ที่บันทึกไว้ใน การใช้ OAuth2 ด้วย Apigee Edge Management API ก็คือ URL ของการเรียกใช้จะต้องอ้างอิงถึง ชื่อโซน นอกจากนี้ หากต้องการสร้างโทเค็นเพื่อการเข้าถึงเริ่มต้นด้วย SAML IDP คุณจะต้องใส่ รหัสผ่านดังที่แสดงในขั้นตอนที่ 3 ของกระบวนการด้านบน

สำหรับการให้สิทธิ์ โปรดส่งข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth2 ที่จองไว้ใน Authorization ส่วนหัว การโทรจะพิมพ์โทเค็นเพื่อการเข้าถึงและรีเฟรชไปยังหน้าจอ

รับโทเค็นเพื่อการเข้าถึง

(LDAP) ใช้การเรียก 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=USER_EMAIL&password=USER_PASSWORD'

(SAML) ใช้การเรียก 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 \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

โปรดทราบว่าการตรวจสอบสิทธิ์ด้วย SAML IDP ต้องใช้รหัสผ่านชั่วคราว ขณะที่การตรวจสอบสิทธิ์ด้วย LDAP IDP ใช้ไม่ได้

รีเฟรชโทเค็นเพื่อการเข้าถึง

หากต้องการรีเฟรชโทเค็นเพื่อการเข้าถึงในภายหลัง ให้ใช้การเรียกต่อไปนี้ที่มีโทเค็นการรีเฟรช

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 \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'