การใช้ SAML กับ Edge Management API

Edge for Private Cloud เวอร์ชัน 4.17.09

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

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

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

curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

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

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

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

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

ขั้นตอนต่อไปนี้อธิบายวิธีใช้ get_token เพื่อรับโทเค็นเพื่อการเข้าถึง 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 ของเครื่อง การโฮสต์โมดูล EDGE SSO หากคุณกำหนดค่า TLS ใน EDGE SSO ให้ใช้ https และหมายเลขพอร์ต TLS ที่ถูกต้อง

  2. แตกไฟล์ ZIP ของแพ็กเกจ ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. ติดตั้ง get_token ใน /usr/local/bin:
    ./install

    ใช้ตัวเลือก -b เพื่อระบุตำแหน่งอื่น

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

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

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

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

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

  6. เรียกใช้ get_token เพื่อรับโทเค็นเพื่อการเข้าถึง OAuth2:
    get_token -u emailAddress

    โดยที่ emailAddress คือที่อยู่อีเมลของผู้ใช้ Edge คุณ ได้รับข้อความแจ้งให้ป้อนรหัสผ่านแบบใช้ครั้งเดียวที่คุณได้รับในขั้นตอนที่ 3:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

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

    คุณสามารถป้อนรหัสผ่านในบรรทัดคำสั่งโดยใช้ คำสั่ง get_token ในแบบฟอร์ม:

    get_token -u emailAddress -p passcode
  7. ส่งโทเค็นเพื่อการเข้าถึงไปยังการเรียก Edge Management API เป็นส่วนหัวสำหรับผู้ถือ
    curl -H "Authorization: Bearer access_token"
    https://ms_IP:8080/v1/organizations/orgName

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

    header=`get_token` &&
    curl -H "Authorization: Bearer $header"
    https://ms_IP:8080/v1/o/orgName

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

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

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

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

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

ตัวอย่างเช่น ใช้การเรียก 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'

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

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

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=refreshToken'