[บันทึกกันลืม] JupyterHub Authenticated with OIDC

ต่อจากตอนที่แล้ว [บันทึกกันลืม] JupyterHub ด้วย Docker คราวนี้ ถ้าต้องการให้ ยืนยันตัวตนด้วย OpenID เช่น PSU Passport เป็นต้น ก็ให้ทำดังนี้ ในไฟล์ jupyterhub_config.py ใส่ configuration ประมาณนี้ อธิบายเพิ่มเติมนิดนึง จากนั้น ถ้าทุกอยากเรียบร้อยดี ก็จะได้หน้าจอประมาณนี้ (อันนี้ทำเร็ว ๆ ยังไม่ได้ใส่ HTTPS) เมื่อคลิก Sign in with OAuth2.0 ก็จะวิ่งไปหา IdP ที่ตั้งไว้ (ในที่นี้ใช้ Authentik ของหน่วยงาน ซึ่ง แยกออกจากของมหาวิทยาลัยอีกที — เดี๋ยวเขียนวิธีการทำอีกที) ไหลไปเรื่อย ๆ ก็จะเจอหน้า Authentication ของมหาวิทยาลัย แล้วก็กลับมาที่ IdP ของเรา จากนั้นก็เข้าใช้งาน JupyterHub ได้ตามปรกติ หวังว่าจะเป็นประโยขน์ครับ

[บันทึกกันลืม] JupyterHub ด้วย Docker

นาน ๆ ทำที บันทึกไว้ก่อน รันคำสั่งนี้ เพื่อ ติดตั้ง JupyterHub รุ่นที่ทดลอง 5.2.1 ใน Docker จะสร้าง user ชื่อ admin และ jupyteruser01 โดย admin จะเป็น Administrator ส่วน jupyteruser01 ให้เป็น user ทั่วไป ตรงนี้จะสร้าง user อยู่ภายใน docker container container นี้ จะชื่อว่า ‘jupyterhub01’ เข้าถึงได้ที่ port 8000 (หากต้องการเปลี่ยนก็ทำได้) จากนั้น สร้างไฟล์ jupyterhub_config.py อย่างน้อย ต้องมีการตั้งค่าดังนี้ บรรทัดล่างสุดนั้น เป็นการอนุญาตให้ทุกคนที่เข้าใช้งานได้ และให้ ‘admin’ มีหน้าที่เป็น Admin จากนั้น ให้ copy file … Read more

การเชื่อม OAUTH2 ของ PSU ด้วย NEXT.JS (PAGE ROUTE)

file : pages/challback.js const inter = Inter({ subsets: [“latin”] }); export default function Home({show2}) {      return (        <>            <div className=”container”>                <h1>Check OAuth</h1>                <p>Code: {JSON.stringify(show2)}</p>            </div>        </>    );} export async function getServerSideProps(context) {// เมื่อทำการ SignOn ระบบจะทำการเรียก callback url โดยส่ง parameter code มา    const … Read more

การเชื่อม OAUTH2 ของ PSU ด้วย NEXT.JS (APP ROUTE)

file app/api/callback/route.ts async function GET(request: Request) {// เมื่อทำการ SignOn ระบบจะทำการเรียก callback url โดยส่ง parameter code มา    const { searchParams } = new URL(request.url);    const code = searchParams.get(‘code’);    const state = searchParams.get(‘state’); //เตรียมข้อมูลเพื่อรับ access token    const pData1 = {        grant_type: ‘authorization_code’,        client_id: ‘XXXXXXXX’, // ได้มาจากสำนักนวัตถกรรม        client_secret: ‘XXXXXXXX’, // ได้มาจากสำนักนวัตถกรรม        code: code,       … Read more

OVAL Definition Generator Information

เพิ่มเติมจากhttps://sysadmin.psu.ac.th/2023/02/14/ubuntu-oval/OVAL Definition Generator Information (ทางขวาในรายงาน) เป็น Canonical USN OVAL Generator ซึ่งรายงานจะสรุปเป็นหมวดหมู่ช่องโหว่ต่างจากรายงานที่โครงการ Data Lake ส่งมาใช้ OVAL Definition Generator Information เป็น Canonical CVE OVAL Generator เน้นแสดงตาม CVE จึงไม่มีสรุปว่า CVE เกี่ยวกับช่องโหว่ใด