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

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

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

สิ่งที่ต้องทำก่อน: คุณต้องเปิดใช้ 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 โปรดดูข้อมูลอ้างอิง 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 คือ "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 คือ "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/...'