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

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

การตรวจสอบสิทธิ์พื้นฐานเป็นวิธีหนึ่งในการตรวจสอบสิทธิ์เมื่อเรียกใช้ API การจัดการ Edge ตัวอย่างเช่น คุณส่งคำขอ 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 ฯลฯ) ที่ใช้การเรียก API การจัดการของ Edge ที่รองรับการตรวจสอบสิทธิ์พื้นฐานจะใช้งานไม่ได้อีกต่อไป คุณต้องอัปเดตการเรียก API และสคริปต์ที่ใช้การตรวจสอบสิทธิ์พื้นฐานเพื่อส่งโทเค็นการเข้าถึง OAuth2 ในส่วนหัว Bearer

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

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

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

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

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

    หากคุณกําหนดค่า TLS ใน SSO ของ Edge ให้ใช้ 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. ส่งโทเค็นการเข้าถึงไปยังการเรียก API การจัดการ Edge เป็นส่วนหัว Bearer ดังนี้
    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 ใหม่ได้

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

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

ความแตกต่างเพียงอย่างเดียวระหว่างการเรียก API ที่บันทึกไว้ในการใช้การรักษาความปลอดภัย OAuth2 กับ API การจัดการ Apigee Edge คือ 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'