คุณกำลังดูเอกสารประกอบของ 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 คุณต้องรวมข้อมูลต่อไปนี้เมื่อรับคู่โทเค็น
- โซน: Edge สำหรับผู้ใช้ Cloud สาธารณะต้องอ้างอิงชื่อโซนของตนเมื่อได้รับโทเค็น
- รหัสผ่าน: ใส่รหัสผ่านแบบใช้งานครั้งเดียวเมื่อขอคู่โทเค็นเพื่อการเข้าถึง/รีเฟรช
SAML ใช้ปลายทางเดียวกันในบริการ Edge OAuth2 พร้อมเพิ่มชื่อโซนที่เหมาะสม
หากต้องการรับโทเค็นเพื่อการเข้าถึงด้วย SAML คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้ที่อธิบายไว้ในส่วนนี้
นอกจากนี้ คุณยังทำให้กระบวนการสร้างโทเค็นโดยอัตโนมัติสำหรับผู้ใช้เครื่องได้ ตามที่อธิบายไว้ในกระบวนการสร้างโทเค็นโดยอัตโนมัติ
รับโทเค็นเพื่อการเข้าถึงด้วย get_token
คุณสามารถใช้ยูทิลิตี get_token
เพื่อแลกเปลี่ยนข้อมูลเข้าสู่ระบบสำหรับการเข้าถึง OAuth2 และรีเฟรชโทเค็นที่ใช้กับ SAML
วิธีรับโทเค็นเพื่อการเข้าถึงด้วย get_token
- ตั้งค่าตัวแปรสภาพแวดล้อม
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
- เรียก
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
เพื่อสร้างโทเค็นเพื่อการเข้าถึง เช่น -
ป้อนรหัสผ่าน ยูทิลิตี
get_token
จะรับโทเค็น OAuth2 พิมพ์โทเค็นเพื่อการเข้าถึงไปยังstdout
รวมถึงเขียนโทเค็นเพื่อการเข้าถึงและรีเฟรชไปยัง~/.sso-cli
- เรียก 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
- ไปที่ URL ต่อไปนี้ในเบราว์เซอร์เพื่อรับรหัสผ่านแบบใช้งานครั้งเดียว
https://zoneName.login.apigee.com/passcode
เช่น สำหรับโซนชื่อ "acme" ให้ไปที่ URL ต่อไปนี้
https://acme.login.apigee.com/passcode
หากคุณไม่ได้ลงชื่อเข้าใช้ผ่านผู้ให้บริการข้อมูลประจำตัวเมื่อเร็วๆ นี้ ระบบจะแจ้งให้คุณลงชื่อเข้าใช้
URL นี้จะส่งคืนรหัสผ่านแบบใช้งานครั้งเดียวซึ่งทำหน้าที่เป็นข้อมูลเข้าสู่ระบบของคุณเพื่อรับโทเค็นและจะยังคงใช้ได้อยู่จนกว่าคุณจะรีเฟรช URL เพื่อรับรหัสผ่านใหม่ หรือคุณจะใช้รหัสผ่านกับ
get_token
เพื่อสร้างโทเค็นเพื่อการเข้าถึงก็ได้ เช่น - ส่งคำขอไปยัง 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/...'