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

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

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

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

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

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

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

  1. โซน: Edge สำหรับผู้ใช้ 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

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

เมื่อโทเค็นเพื่อการเข้าถึงหมดอายุ คุณสามารถเรียกใช้ 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 คือ "โทเค็น"
      • 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 หรือเครื่องมืออำนวยความสะดวกของ Apigee acurl เพื่อเข้าถึง 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/...'