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

Edge for Private Cloud v4.18.01

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

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

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

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

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

  1. ดาวน์โหลด sso-cli กลุ่ม:
    &gt; 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 ใน SSO ของ Edge ให้ใช้ https และหมายเลขพอร์ต TLS ที่ถูกต้อง
  2. แตกไฟล์ ssocli-bundle.zip bundle:
    > unzip ssocli-bundle.zip
  3. ติดตั้ง get_token ใน /usr/local/bin:
    &gt; ./install ใช้ -b เพื่อระบุ สถานที่อื่น: > ./install -b เส้นทาง
  4. ตั้งค่าตัวแปรสภาพแวดล้อม SSO_LOGIN_URL เป็น URL เข้าสู่ระบบในรูปแบบ
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    โดยที่ edge_sso_IP_DNS คือที่อยู่ IP ของชื่อ DNS ของเครื่องที่โฮสต์โมดูล SSO ของ Edge หากคุณกำหนดค่า 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:
    &gt; get_token -u emailAddress

    โดยที่ emailAddress คืออีเมลของผู้ใช้ Edge คุณ แจ้งให้ป้อนรหัสผ่านแบบใช้ครั้งเดียวที่คุณได้รับในขั้นตอนที่ 3:
    รหัสแบบใช้ครั้งเดียว ( รับรหัสที่ https://edge_sso_IP.com/passcode )
    ป้อนรหัสผ่านหากเปิดใช้ SAML หรือกด ENTER:


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

    คุณสามารถป้อนรหัสผ่านในบรรทัดคำสั่งโดยใช้คำสั่ง get_token ในรูปแบบต่อไปนี้
    &gt; get_token -u emailAddress -p รหัสผ่าน
  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 ใหม่

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

การใช้การรักษาความปลอดภัย OAuth2 กับ API การจัดการ Apigee Edge มีวิธีการแสดงวิธีใช้ API การจัดการ Edge เพื่อรับและรีเฟรชโทเค็น นอกจากนี้ คุณยังใช้การเรียก 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'