การใช้ SAML กับงานอัตโนมัติ

Edge for Private Cloud เวอร์ชัน 4.17.09

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

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

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

สร้างผู้ใช้ที่เป็นเครื่องจักร

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

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

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

วิธีสร้างผู้ใช้เครื่อง

  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 ในไฟล์การกำหนดค่าที่ใช้กำหนดค่าโมดูล Edge SSO โดยค่าเริ่มต้นคือ ssoadmin
    • SSO_ADMIN_SECRET คือรหัสผ่านของผู้ดูแลระบบตามที่ระบุไว้ในพร็อพเพอร์ตี้ SSO_ADMIN_SECRET ในไฟล์การกำหนดค่า

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

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

ใช้ 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
    '

    สำหรับการให้สิทธิ์ ให้ส่งข้อมูลเข้าสู่ระบบของไคลเอ็นต์ OAuth2 ที่สงวนไว้ในส่วนหัว Authorization การเรียกจะพิมพ์โทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชลงในหน้าจอ บันทึกโทเค็นไว้ใช้ในภายหลัง
  2. ส่งโทเค็นเพื่อการเข้าถึงไปยังการเรียก API การจัดการ Edge เป็นส่วนหัว Bearer:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    โดยที่ orgName คือชื่อขององค์กรที่มีผู้ใช้ที่เป็นเครื่องจักร
  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'


    สำหรับการให้สิทธิ์ ให้ส่งข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth2 ที่สงวนไว้ในส่วนหัว Authorization

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

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

  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. เข้าสู่ระบบ Edge UI และเพิ่มอีเมลของผู้ใช้ที่เป็นเครื่องลงในองค์กร แล้วมอบหมายบทบาทที่จำเป็นให้แก่ผู้ใช้ที่เป็นเครื่อง ดูข้อมูลเพิ่มเติมได้ที่หัวข้อการเพิ่มผู้ใช้ทั่วโลก