เข้าถึง Edge API ด้วย SAML

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

SAML รองรับสภาพแวดล้อมการลงชื่อเข้าใช้เพียงครั้งเดียว (SSO) การใช้ SAML กับ Edge จะช่วยให้คุณรองรับ SSO สำหรับ UI และ API ของ Edge นอกเหนือจากบริการอื่นๆ ที่คุณให้บริการและรองรับ SAML ด้วย

ข้อกำหนดเบื้องต้น: คุณต้องเปิดใช้ SAML สำหรับองค์กรอย่างน้อย 1 องค์กรก่อนจึงจะใช้ SAML เพื่อเข้าถึง Edge API ได้

ความแตกต่างระหว่าง SAML กับ OAuth2

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

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

  1. โซน: ผู้ใช้ Edge for Public Cloud ต้องอ้างอิงชื่อโซนเมื่อรับโทเค็น
  2. รหัสผ่าน: ใส่รหัสผ่านแบบใช้งานครั้งเดียวเมื่อขอโทเค็นเพื่อการเข้าถึง/รีเฟรช

SAML ใช้ปลายทางเดียวกันในบริการ Edge OAuth2 โดยเพิ่มชื่อโซนที่เหมาะสม

หากต้องการรับโทเค็นเพื่อการเข้าถึงด้วย SAML คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้ตามที่อธิบายไว้ในส่วนนี้

นอกจากนี้ คุณยังทำให้กระบวนการสร้างโทเค็นสำหรับผู้ใช้ที่เป็นเครื่องอัตโนมัติได้ตามที่อธิบายไว้ในหัวข้อ ทำให้กระบวนการสร้างโทเค็นเป็นอัตโนมัติ

รับโทเค็นเพื่อการเข้าถึงด้วย get_token

คุณสามารถใช้ยูทิลิตี get_token เพื่อแลกเปลี่ยนข้อมูลเข้าสู่ระบบเป็นโทเค็นเพื่อการเข้าถึงและรีเฟรช OAuth2 ที่ใช้กับ SAML

วิธีรับโทเค็นเพื่อการเข้าถึงด้วย get_token

  1. ตั้งค่าตัวแปรสภาพแวดล้อม SSO_LOGIN_URL เป็น URL เข้าสู่ระบบ โดย URL เข้าสู่ระบบจะมีรูปแบบดังนี้
    https://zoneName.login.apigee.com

    ตัวอย่างเช่น หากโซนชื่อ "acme" ให้ตั้งค่า SSO_LOGIN_URL เป็น "https://acme.login.apigee.com" ดังที่แสดงในตัวอย่างต่อไปนี้

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. เรียก get_token เพื่อรับโทเค็นเพื่อการเข้าถึง OAuth2
    get_token -u me@example.com

    ระบบจะแจ้งให้คุณไปที่ URL ที่แสดงเพื่อรับรหัสผ่านแบบใช้งานครั้งเดียว

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    หากคุณไม่ได้ลงชื่อเข้าใช้ผ่านผู้ให้บริการข้อมูลประจำตัวเมื่อเร็วๆ นี้ ระบบจะแจ้งให้คุณลงชื่อเข้าใช้

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

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

  4. เรียก Edge API และส่งโทเค็นเพื่อการเข้าถึงในส่วนหัว Authorization: Bearer ดังที่แสดงในตัวอย่างต่อไปนี้
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    คุณสามารถคัดลอกค่าของโทเค็นเพื่อการเข้าถึงจาก stdout

    ตัวอย่างนี้จะแสดงรายละเอียดเกี่ยวกับองค์กรที่ระบุ ดูรายการปลายทางทั้งหมดของ Management API ได้ที่ ข้อมูลอ้างอิง Apigee Edge API

เมื่อโทเค็นเพื่อการเข้าถึงหมดอายุ คุณสามารถเรียก get_token อีกครั้งเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ เช่น

get_token -u me@example.com

ระบบจะไม่แจ้งให้คุณป้อนรหัสผ่านใหม่จนกว่าโทเค็นการรีเฟรชจะหมดอายุ

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

รับโทเค็นเพื่อการเข้าถึงด้วยบริการ Edge OAuth2

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

วิธีรับโทเค็นคู่ด้วย Edge API

  1. ในเบราว์เซอร์ ให้ไปที่ URL ต่อไปนี้เพื่อรับรหัสผ่านแบบใช้งานครั้งเดียว
    https://zoneName.login.apigee.com/passcode

    ตัวอย่างเช่น หากโซนชื่อ "acme" ให้ไปที่ URL ต่อไปนี้

    https://acme.login.apigee.com/passcode

    หากคุณไม่ได้ลงชื่อเข้าใช้ผ่านผู้ให้บริการข้อมูลประจำตัวเมื่อเร็วๆ นี้ ระบบจะแจ้งให้คุณลงชื่อเข้าใช้

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

  2. ส่งคำขอไปยัง Edge API ดังที่แสดงในตัวอย่างต่อไปนี้
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode ทำหน้าที่เป็นข้อมูลเข้าสู่ระบบสำหรับการให้สิทธิ์

    โดยที่

    • ส่วนหัว Authorization คือ "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (ใช้ค่านี้ ทุกประการ)
    • ประเภทคำขอคือ POST
    • เนื้อหาของคำขอมีข้อมูลต่อไปนี้
      • grant_type คือ "password"
      • response_type คือ "token"
      • passcode โดยที่ passcode คือรหัสผ่านที่แสดงในขั้นตอนก่อนหน้า

    การเรียกจะพิมพ์โทเค็นเพื่อการเข้าถึงและรีเฟรชลงบนหน้าจอ

วิธีรีเฟรชโทเค็นเพื่อการเข้าถึง

ส่งคำขอไปยัง https://zoneName.login.apigee.com/oauth/token, ดังที่แสดงในตัวอย่างต่อไปนี้

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

โดยที่

  • เนื้อหาของคำขอมีข้อมูลต่อไปนี้
    • grant_type คือ "refresh_token"
    • refresh_token คือค่าของโทเค็นการรีเฟรช
  • ส่วนหัว Authorization คือ "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (ใช้ค่านี้ ทุกประการ)
  • ประเภทคำขอคือ POST

เข้าถึง Edge API ด้วย SAML

คุณสามารถใช้เครื่องมือต่างๆ เช่น curl หรือยูทิลิตี acurl ที่สะดวกในการใช้งานของ Apigee เพื่อ เข้าถึง Edge API

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

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

เมื่อใช้ acurl คุณไม่จำเป็นต้องระบุส่วนหัว Authorization เช่น

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

ตัวอย่างเหล่านี้จะเรียกปลายทาง Edge API ที่แสดงรายละเอียดเกี่ยวกับองค์กรที่ระบุ ดูรายการปลายทางทั้งหมดของ Edge API ได้ที่ ข้อมูลอ้างอิง Apigee Edge API

ดูวิธีการเรียก API เพิ่มเติม รวมถึงวิธีตรวจสอบว่าโทเค็นยังคงใช้งานได้ ที่หัวข้อเข้าถึง Edge API ด้วย OAuth2

ผู้ใช้ที่เป็นเครื่องในโซน SAML

คุณสามารถใช้ยูทิลิตี acurl และ get_token เพื่อเขียนสคริปต์การเข้าถึง Edge API แบบอัตโนมัติ สำหรับ ผู้ใช้ที่เป็นเครื่อง ในโซน SAML ตัวอย่างต่อไปนี้แสดงวิธีใช้ get_token เพื่อขอโทเค็นเพื่อการเข้าถึง แล้วเพิ่มค่าโทเค็นลงในการเรียก curl

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

ในตัวอย่างด้านบน การตั้งค่าค่า -m เป็นสตริงว่างจะป้องกันไม่ให้ระบบแจ้งให้ผู้ใช้ที่เป็นเครื่อง ป้อนรหัส MFA การใช้แฟล็ก --force-basic-auth จะลบล้างข้อความแจ้งมาตรฐานสำหรับรหัสผ่านที่ทริกเกอร์โดยคำขอที่มีโซน SAML

หรือคุณจะรวมคำขอโทเค็นและการเรียก curl เข้าด้วยกันโดยใช้ยูทิลิตี acurl ก็ได้ เช่น

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'