ใช้ 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 เพื่อเรียก Edge Management API ตามตัวอย่างต่อไปนี้ได้

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 เพื่อเรียก Edge Management API

  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 ใน Apigee SSO ให้ใช้ 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 ใน Apigee SSO ให้ใช้ https และหมายเลขพอร์ต TLS ที่ถูกต้อง

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

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

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

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

  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 กับ API การจัดการ Apigee Edge คือ 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'