ใช้ SAML กับ Edge Management API

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

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

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

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

หลังจากเปิดใช้ SAML คุณจะเลือกปิดใช้การตรวจสอบสิทธิ์พื้นฐานได้ หากปิดใช้การตรวจสอบสิทธิ์พื้นฐาน สคริปต์ทั้งหมด (สคริปต์ Maven, สคริปต์ Shell, apigeetool ฯลฯ) ที่อาศัยการเรียก Edge Management 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. แตกไฟล์แพ็กเกจ 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 ( รับรหัสที่ https://edge_sso_IP.com/passcode)
    ป้อนรหัสผ่านหากเปิดใช้ SAML อยู่ หรือกด ENTER:


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

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

    หลังจากได้รับโทเค็นเพื่อการเข้าถึงใหม่เป็นคำสั่ง access-header หลังได้รับโทเค็นการเข้าถึงใหม่ คำสั่ง access to [rrลิงก์/หัวข้อ>" จะถูกจำกัดการทำงานแล้ว
    จะรับโทเค็นการเข้าถึงและโค้ดการเข้าถึงใหม่ในช่วงแรก คำสั่ง Authorization: Bearer access_token": https://ms_IP:8080/v1/organizations/orgName

    หลังจากได้รับโทเค็นการเข้าถึงใหม่ คำสั่ง Authorization: Bearer: access_header" จะได้รับคำสั่งการเข้าถึงใหม่เป็นโค้ด Authorization/

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

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

การใช้การรักษาความปลอดภัยของ OAuth2 กับ Apigee Edge Management 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'