ทำให้งานสำหรับ IdP ภายนอกเป็นแบบอัตโนมัติ

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

อย่างไรก็ตาม สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ของคุณอาจรองรับการทำงานอัตโนมัติสำหรับงานการพัฒนาทั่วไป เช่น การทดสอบอัตโนมัติหรือ CI/CD หากต้องการทำให้งานเหล่านี้เป็นแบบอัตโนมัติเมื่อเปิดใช้ IDP ภายนอก คุณต้องมีวิธีรับและรีเฟรชโทเค็น OAuth2 โดยไม่ต้องคัดลอก/วางรหัสผ่านแบบใช้ครั้งเดียวจาก เบราว์เซอร์

Edge รองรับการสร้างโทเค็นอัตโนมัติผ่านการใช้ผู้ใช้ที่เป็นเครื่องภายในองค์กร ที่เปิดใช้ IDP ผู้ใช้ที่เป็นเครื่องสามารถ รับโทเค็น OAuth2 ได้โดยไม่ต้องระบุรหัสผ่านแบบใช้ครั้งเดียว ซึ่งหมายความว่าคุณสามารถทำให้กระบวนการรับและรีเฟรชโทเค็น OAuth2 เป็นแบบอัตโนมัติได้อย่างสมบูรณ์ โดยใช้ Edge Management API

คุณสร้างผู้ใช้ที่เป็นเครื่องสำหรับองค์กรที่เปิดใช้ IDP ได้ 2 วิธีดังนี้

แต่ละวิธีอธิบายไว้ในส่วนต่อไปนี้

คุณไม่สามารถสร้างผู้ใช้ที่เป็นเครื่องสำหรับองค์กรที่ไม่ได้เปิดใช้ IDP ภายนอก

สร้างผู้ใช้ที่เป็นเครื่องด้วย apigee-ssoadminapi.sh

ใช้ยูทิลิตี apigee-ssoadminapi.sh เพื่อสร้างผู้ใช้ที่เป็นเครื่องภายในองค์กรที่เปิดใช้ IDP ดูข้อมูลเพิ่มเติมได้ที่การใช้ apigee-ssoadminapi.sh คุณสามารถสร้างผู้ใช้ที่เป็นเครื่องรายเดียวที่องค์กรทั้งหมดใช้ร่วมกัน หรือสร้างผู้ใช้ที่เป็นเครื่องแยกต่างหากสำหรับแต่ละองค์กรก็ได้

ระบบจะสร้างและจัดเก็บผู้ใช้ที่เป็นเครื่องไว้ใน Datastore ของ Edge ไม่ใช่ใน IDP ดังนั้น คุณ จึงไม่ต้องรับผิดชอบในการดูแลผู้ใช้ที่เป็นเครื่องโดยใช้ UI ของ Edge และ Edge Management API

เมื่อสร้างผู้ใช้ที่เป็นเครื่อง คุณต้องระบุอีเมลและรหัสผ่าน หลังจากสร้างผู้ใช้ที่เป็นเครื่องแล้ว ให้มอบหมายผู้ใช้ดังกล่าวให้กับองค์กรอย่างน้อย 1 องค์กร

วิธีสร้างผู้ใช้ที่เป็นเครื่องด้วย apigee-ssoadminapi.sh:

  1. ใช้คำสั่ง apigee-ssoadminapi.sh ต่อไปนี้เพื่อสร้างผู้ใช้ที่เป็นเครื่อง
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    โดยที่

    • SSO_ADMIN_NAME คือชื่อผู้ใช้ของผู้ดูแลระบบที่กำหนดโดยพร็อพเพอร์ตี้ SSO_ADMIN_NAME ในไฟล์การกำหนดค่าที่ใช้กำหนดค่าโมดูล Apigee SSO ค่าเริ่มต้นคือ ssoadmin
    • SSO_ADMIN_SECRET คือรหัสผ่านของผู้ดูแลระบบตามที่ระบุโดยพร็อพเพอร์ตี้ SSO_ADMIN_SECRET ในไฟล์การกำหนดค่า

      ในตัวอย่างนี้ คุณสามารถละเว้นค่าสำหรับ --port และ --ssl ได้เนื่องจากโมดูล apigee-sso ใช้ค่าเริ่มต้น เป็น 9099 สำหรับ --port และ http สำหรับ --ssl หากการติดตั้งไม่ได้ใช้ค่าเริ่มต้นเหล่านี้ ให้ระบุค่าที่เหมาะสม

  2. เข้าสู่ระบบ UI ของ Edge แล้วเพิ่มอีเมลของผู้ใช้ที่เป็นเครื่องลงในองค์กร และมอบหมาย ผู้ใช้ที่เป็นเครื่องให้มีบทบาทที่จำเป็น ดูข้อมูลเพิ่มเติมได้ที่ การเพิ่มผู้ใช้ส่วนกลาง

สร้างผู้ใช้ที่เป็นเครื่องด้วย Edge Management API

คุณสามารถสร้างผู้ใช้ที่เป็นเครื่องได้โดยใช้ Edge Management API แทนการใช้ apigee-ssoadminapi.sh ยูทิลิตี

วิธีสร้างผู้ใช้ที่เป็นเครื่องด้วย Management API:

  1. ใช้คำสั่ง curl ต่อไปนี้เพื่อรับโทเค็นสำหรับผู้ใช้ ssoadmin ซึ่งเป็น ชื่อผู้ใช้ของบัญชีผู้ดูแลระบบสำหรับ apigee-sso
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    โดยที่ SSO_ADMIN_SECRET คือรหัสผ่านของผู้ดูแลระบบที่คุณตั้งค่าไว้เมื่อติดตั้ง apigee-sso ตามที่ระบุโดยพร็อพเพอร์ตี้ SSO_ADMIN_SECRET ใน ไฟล์การกำหนดค่า

    คำสั่งนี้จะแสดงโทเค็นที่คุณต้องใช้ในการเรียกครั้งถัดไป

  2. ใช้คำสั่ง curl ต่อไปนี้เพื่อสร้างผู้ใช้ที่เป็นเครื่อง โดยส่งโทเค็นที่คุณ ได้รับในขั้นตอนก่อนหน้า
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    คุณต้องใช้รหัสผ่านของผู้ใช้ที่เป็นเครื่องในขั้นตอนต่อๆ ไป

  3. เข้าสู่ระบบ UI ของ Edge
  4. เพิ่มอีเมลของผู้ใช้ที่เป็นเครื่องลงในองค์กร และมอบหมายผู้ใช้ที่เป็นเครื่องให้มีบทบาทที่ จำเป็น ดูข้อมูลเพิ่มเติมได้ที่ การเพิ่ม ผู้ใช้ส่วนกลาง

รับและรีเฟรชโทเค็นของผู้ใช้ที่เป็นเครื่อง

ใช้ Edge API เพื่อรับและรีเฟรชโทเค็น OAuth2 โดยส่งข้อมูลเข้าสู่ระบบของผู้ใช้ที่เป็นเครื่อง แทนรหัสผ่านแบบใช้ครั้งเดียว

วิธีรับโทเค็น OAuth2 สำหรับผู้ใช้ที่เป็นเครื่อง

  1. ใช้การเรียก 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 \
      http://Edge_SSO_IP_DNS:9099/oauth/token -s \
      -d 'grant_type=password&username=m_user_email&password=m_user_password'

    บันทึกโทเค็นไว้เพื่อใช้ในภายหลัง

  2. ส่งโทเค็นเพื่อการเข้าถึงไปยังการเรียก Edge Management API เป็นส่วนหัว Bearer ดังที่แสดงในตัวอย่างต่อไปนี้
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    โดยที่ org_name คือชื่อขององค์กรที่มีผู้ใช้ที่เป็นเครื่อง

  3. หากต้องการรีเฟรชโทเค็นเพื่อการเข้าถึงในภายหลัง ให้ใช้การเรียกต่อไปนี้ซึ่งมีโทเค็นการรีเฟรช
    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 \
      http://edge_sso_IP_DNS:9099/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'