Skip to content

Commit

Permalink
deploy: 9186644
Browse files Browse the repository at this point in the history
  • Loading branch information
l10178 committed Dec 10, 2023
1 parent ade657e commit f05e155
Show file tree
Hide file tree
Showing 85 changed files with 1,798 additions and 125 deletions.
4 changes: 2 additions & 2 deletions blog/code-server/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
核心逻辑 架构图简单解读,所有过程官方文档都有详细说明,都是配置,以官方配置为准。
keycloak 创建 client,使用 OIDC 协议,作为 oauth2-proxy 的 provider。
ingress(nginx) 使用 auth_request 指令拦截所有请求,从 oauth2-proxy 进行代理认证,配置可参考 oauth2-proxy auth_request 指导。
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri nginx."><meta property="og:type" content="article"><meta property="og:url" content="https://www.xlabs.club/blog/code-server/"><meta property="og:image" content="https://www.xlabs.club/cover.png"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-09-07T16:21:44+08:00"><meta property="article:modified_time" content="2023-12-09T17:36:47+08:00"><meta property="og:site_name" content="XLabs"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://www.xlabs.club/cover.png"><meta name=twitter:title content="使用 Visual Studio Code 搭建多用户远程 IDE"><meta name=twitter:description content="为 VS Code Web 版 code-server 增加外部认证,并支持多用户,不同用户的 code-server 实例完全隔离。
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri nginx."><meta property="og:type" content="article"><meta property="og:url" content="https://www.xlabs.club/blog/code-server/"><meta property="og:image" content="https://www.xlabs.club/cover.png"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-09-07T16:21:44+08:00"><meta property="article:modified_time" content="2023-12-10T10:58:12+08:00"><meta property="og:site_name" content="XLabs"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://www.xlabs.club/cover.png"><meta name=twitter:title content="使用 Visual Studio Code 搭建多用户远程 IDE"><meta name=twitter:description content="为 VS Code Web 版 code-server 增加外部认证,并支持多用户,不同用户的 code-server 实例完全隔离。
主要为了解决问题:
code-server 本身只支持配置文件形式的用户名密码认证(截止目前,以后也许会改进)。所以引入了外部认证系统,Google、GitHub、 okta、CAS、Keycloak 等理论上都是支持的。
code-server 默认没有数据隔离,所以又加了一层 auth proxy,为每个用户创建一个(或多个)code-server 实例,通过 proxy 代理到各自的实例,以实现用户间的数据隔离。
Expand All @@ -26,7 +26,7 @@
核心逻辑 架构图简单解读,所有过程官方文档都有详细说明,都是配置,以官方配置为准。
keycloak 创建 client,使用 OIDC 协议,作为 oauth2-proxy 的 provider。
ingress(nginx) 使用 auth_request 指令拦截所有请求,从 oauth2-proxy 进行代理认证,配置可参考 oauth2-proxy auth_request 指导。
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri nginx."><meta name=twitter:site content="@XLabs Club"><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://www.xlabs.club/","name":"卫星实验室","position":1},{"@type":"ListItem","item":"https://www.xlabs.club/blog/","name":"Blog","position":2},{"@type":"ListItem","name":"使用 Visual Studio Code 搭建多用户远程 ID E","position":3}]}</script><script type=application/ld+json>{"@context":"https://schema.org","@graph":[{"@type":"BlogPosting","headline":"使用 Visual Studio Code 搭建多用户远程 IDE","description":"","isPartOf":{"@id":"https://www.xlabs.club/blog/code-server/"},"mainEntityOfPage":{"@id":"https://www.xlabs.club/blog/code-server/"},"datePublished":"2022-09-07T16:21:44+08:00","dateModified":"2023-12-09T17:36:47+08:00","image":[{"@id":"https://www.xlabs.club/blog/code-server/code-server-auth-proxy.png"}],"author":{"@type":"Organization","name":"XLabs Club","url":"https://www.xlabs.club"},"publisher":{"@type":"Organization","name":"XLabs Club"}}]}</script></head><body class="single section blog" data-bs-spy=scroll data-bs-target=#toc data-bs-root-margin="0px 0px -60%" data-bs-smooth-scroll=true tabindex=0><div class=sticky-top><header class="navbar navbar-expand-lg"><div class=container-fluid><a class="navbar-brand me-auto me-lg-3" href=/>XLabs</a>
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri nginx."><meta name=twitter:site content="@XLabs Club"><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://www.xlabs.club/","name":"卫星实验室","position":1},{"@type":"ListItem","item":"https://www.xlabs.club/blog/","name":"Blog","position":2},{"@type":"ListItem","name":"使用 Visual Studio Code 搭建多用户远程 ID E","position":3}]}</script><script type=application/ld+json>{"@context":"https://schema.org","@graph":[{"@type":"BlogPosting","headline":"使用 Visual Studio Code 搭建多用户远程 IDE","description":"","isPartOf":{"@id":"https://www.xlabs.club/blog/code-server/"},"mainEntityOfPage":{"@id":"https://www.xlabs.club/blog/code-server/"},"datePublished":"2022-09-07T16:21:44+08:00","dateModified":"2023-12-10T10:58:12+08:00","image":[{"@id":"https://www.xlabs.club/blog/code-server/code-server-auth-proxy.png"}],"author":{"@type":"Organization","name":"XLabs Club","url":"https://www.xlabs.club"},"publisher":{"@type":"Organization","name":"XLabs Club"}}]}</script></head><body class="single section blog" data-bs-spy=scroll data-bs-target=#toc data-bs-root-margin="0px 0px -60%" data-bs-smooth-scroll=true tabindex=0><div class=sticky-top><header class="navbar navbar-expand-lg"><div class=container-fluid><a class="navbar-brand me-auto me-lg-3" href=/>XLabs</a>
<button type=button id=searchToggleMobile class="btn btn-link nav-link mx-2 d-lg-none" aria-label="Search website"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><circle cx="10" cy="10" r="7"/><line x1="21" y1="21" x2="15" y2="15"/></svg></button>
<button class="btn btn-link nav-link mx-2 order-3 d-lg-none" type=button data-bs-toggle=offcanvas data-bs-target=#offcanvasNavMain aria-controls=offcanvasNavMain aria-label="Open main navigation menu"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-menu" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><line x1="4" y1="8" x2="20" y2="8"/><line x1="4" y1="16" x2="20" y2="16"/></svg></button><div class="offcanvas offcanvas-end h-auto" tabindex=-1 id=offcanvasNavMain aria-labelledby=offcanvasNavMainLabel><div class=offcanvas-header><h5 class=offcanvas-title id=offcanvasNavMainLabel>XLabs</h5><button type=button class="btn btn-link nav-link p-0" data-bs-dismiss=offcanvas aria-label=Close><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 6 6 18"/><path d="M6 6l12 12"/></svg></button></div><div class="offcanvas-body d-flex flex-column flex-lg-row justify-content-between"><ul class="navbar-nav flex-grow-1"><li class=nav-item><a class=nav-link href=https://www.xlabs.club/docs/guides/introduction/>Docs</a></li><li class=nav-item><a class="nav-link active" href=https://www.xlabs.club/blog/ aria-current=true>Blog</a></li></ul><button type=button id=searchToggleDesktop class="btn btn-link nav-link p-2 d-none d-lg-block" aria-label="Search website"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><circle cx="10" cy="10" r="7"/><line x1="21" y1="21" x2="15" y2="15"/></svg></button>
<button id=buttonColorMode class="btn btn-link mx-auto nav-link p-0 ms-lg-2 me-lg-1" type=button aria-label="Toggle theme"><svg data-bs-theme-value="dark" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-moon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 3c.132.0.263.0.393.0a7.5 7.5.0 007.92 12.446A9 9 0 1112 2.992z"/></svg><svg data-bs-theme-value="light" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-sun" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-4 0a4 4 0 108 0 4 4 0 10-8 0m-5 0h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"/></svg></button><ul id=socialMenu class="nav mx-auto flex-row order-lg-4"><li class=nav-item><a class="nav-link social-link" href=https://github.com/xlabs-club/xlabs-club.github.io><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2 2.8-.3 5.5-1.4 5.5-6a4.6 4.6.0 00-1.3-3.2 4.2 4.2.0 00-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3.0 00-6.2.0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2.0 00-.1 3.2A4.6 4.6.0 004 9.5c0 4.6 2.7 5.7 5.5 6-.6.6-.6 1.2-.5 2V21"/></svg><small class="ms-2 visually-hidden">GitHub</small></a></li></ul></div></div></div></header></div><div class=modal id=searchModal tabindex=-1 aria-labelledby=searchModalLabel aria-hidden=true><div class="modal-dialog modal-dialog-scrollable modal-fullscreen-md-down"><div class=modal-content><div class=modal-header><h1 class="modal-title fs-5 visually-hidden" id=searchModalLabel></h1><button type=button class="btn-close visually-hidden" data-bs-dismiss=modal aria-label=Close></button><div class="search-input flex-grow-1 d-none"><form id=search-form class=search-form action=# method=post accept-charset=utf-8 role=search><label for=query class=visually-hidden></label><div class=d-flex><input type=search id=query name=query class="search-text form-control form-control-lg" placeholder aria-label maxlength=128 autocomplete=off>
Expand Down
Loading

0 comments on commit f05e155

Please sign in to comment.