NudoAuth | 透透龍女
¶我有自己的單一簽入了!
¶使用方法
點上面的連結(或是各龍女平台的應用程式登入),註冊帳號(我確定在我換成SSO前沒有人註冊過帳號),設定使用者名稱、電子郵件和密碼之後就會自動登入了。然後請克制一點不要一直忘記密碼,雖然像是Resend之類這種的一天可以寄100封,但不要一個人一天忘20次,5個人就滿載了齁
在透透龍女當中,進到頁面可以點開要使用的應用程式(Gitea僅供對龍女的代碼支持協助Pull或是提出issue,一般應該用不到)
¶關於matrix的補充說明
根據20260328 | 仔細研究了matrix客戶端 - 小透明龍女說明,目前element在貼圖、表情符的擴充都還不到完善,但是對於基本私訊留言、語音通話的功能目前都是好的,有興趣搶先體驗也是可以去嘗試看看(但還是建議先從matrix.org註冊帳號試水溫)
matrix.nudoragon.com這個服務並沒有開放聯邦的打算,未來主要會作為這個部落格私訊區以及留言reaction通知匣的方案。之後會再把詳細使用說明放到關於本站的部分,因為也還需要機器人等等的開發,所以目前暫時還沒打算推廣(只能說是Early Access的部分了)
此外,都有我自己的SSO了,因此請不要期待會有Google登入等其他方法。1
¶原油
其實我一直有個夢想,想有個自己的SSO,也就是所謂OIDC?的部分,畢竟這麼說其實可以追溯到我們一般日常所用的Google就是一種Auth服務,可以在不同服務網頁間串聯;Facebook也是,或者我們教育體系如新北市教育局SSO就是經典的一種簽入驗證系統,所有Google或是微軟、Adobe等等全部都經過他,過往感覺那是很神奇的!喔其實簽入再簽入這種嵌套也很微妙?例如新北親師生與教育局SSO的關係、台北市教育局與酷課雲的關係等等(新北市也可以登入COOC,所以其實也還好了uwu),總的來說其實很多很多的系統服務都用著這樣的邏輯在跑,我感覺這很酷,我也想搞一套這樣的系統。
同時,正巧我從部落格、貼圖、gitea到現在有matrix,感覺服務可能變多,於是我決定來做了
¶做出選擇
那要用什麼驗證系統呢?我問了Gemini推薦Authelia跟Authentik兩種,前者用GO寫的是二進位,比較輕量但功能性比較少;Authentik基於Python寫的,比較完善但相對比較吃資源(也確實,吃了1G起跳的RAM走)
但是我又問Gemini我想先用Authelia,然後又問我需要LDAP身分通訊錄,我可能需要
地震...2026.04.05 01:15,沒有警報。
考慮使用額外的LDAP系統或是用現成的Synology LDAP,但是我又問Gemini,我想開放使用者可以自行註冊,結果Gemini直接跟我宣告直上Authentik吧,畢竟如果用Authelia與Synology LDAP Server,只能夠由我這裡提供帳號,主要也是小型團隊使用的方案。因此我最後選擇了Authentik。
¶開始部署(以下可能乾貨比較多)
Authentik的部署也不算麻煩,寫Docker-compose就可以了,但需要集成postgres(SQL資料庫,有名的)、redis、server(前端服務)、worker(後端寄信等等)四個容器
可以請ai寫,但是可能有坑,因為ai有時候不見得可以照api的做,所以可能還是需要自己有辨認查閱使用說明書的能力2。
Authentik官網給的compose範本是使用2024年12月的映像檔案,據說是一種穩定版本。不過我裝完發現他的語言介面雖然有繁體中文,但是卻是簡體顯示,整個語言包發展感覺沒那麼好,因此我決定要升級到2026.2版,不過這時免不了如果直接升級映像檔,就是免不了migrate錯誤。(喔對了,第一次裝需要比較久,大概10分鐘左右,真的可以邊泡咖啡或是做別的開發,畢竟需要migrate比較多的東西)
所以我又把資料整個重新砍掉再裝一次,但這個過程因為我第一次使用範本來改的,他會把資料庫volume設定在一個什麼鬼磁區,如果用CM根本沒辦法看到(再次讚揚Portainer,還是他好用,雖然改用他之後沒辦法對整個專案stack進行監控監管記憶體使用量等,但是可以幫我解決CM的諸多不便還是很好的,而且要重新compose也不用停止整個專案),所以最後還是建議用掛載的把所有資料庫或是各種可能會變更到的東西都掛載出來(這樣要刪除要搞事才有搞頭)
¶流程需要自己設
在我設定好管理員帳號後,我首要關注的大概就是要怎麼註冊帳號,所以就問了問gemini,他說可能會有個default-enrollment之類的選項,但是根本沒有。但如果一直抓著這個問題問他,可能會挺崩的,而且我覺得他可能也有過動症?(也可能是gemini3-flash的緣故)什麼步驟都被她說的很簡單:
第一二三步就這樣,現在能用了嗎?
能用個大頭鬼,第一步就卡了,註冊第一步要幹嘛?要使用者輸入資料啊!所以Prompt Stage。阿是要提示什麼?所以說就得耐心的引導ai可能哪邊有少或是需要怎麼樣做,甚至要安撫叫他慢點一步一步來。所以我們在建立Stage之前還得先去Prompt建立好四個項目(使用者名稱、電子郵件和密碼、確認密碼)然後才依序建立帳號
但是建立帳號又卡了,卡了個奇怪的policy,但是到處找我也沒有用什麼policy限制啊?(問Gemini他也不知道。)結果問題卡在我建立Stage的時候針對表單有一堆policy預設全部都給我選了進來。(全部移開之後就可以順利建立帳號了!)
¶自訂品牌
我看他可以自訂品牌,所以我開始跟Gemini商討要把這套Auth稱作什麼。當然與此同時開始處理matrix的介接問題以及mxc協議帶來的圖示問題。
先讚揚Banana的一部份,在icon上做的還不差,不但為部落格做了圖標,也幫Auth做好了圖標(雖然你需要跟他強調那是不同東西,或者你得用不同的對話說),風格都是走藍粉系可愛風,感覺不錯(儘管有點ai感,但是在透明泡泡的這種漸層風上我也是算佩服),但是論其缺點那也挺缺的
Banana生成圖片本身無法自帶去背,如果同時圖標帶有透明度,背景也可能會是亂七八糟的狀態,諸如北車Z區地下街那個新裝潢出入口那樣底色是灰白相間的。
因此我只能先要求看圖適合黑色白色底,要求了之後我再用遠古小五時學的PhotoCap(下稱PC)來去背修改大小,以及調整裁切(不然原圖實在空白處太多,如果直接用的話圖標會很小)
然後我又要繼續吐槽:Banana的中文字型那是真的不行,我想請他用芫荽體做但實在做不出來,我索性只好先拿圖標+英文版去PC搞出中文字樣,但是那漸層我實在又搞不出來,所以又把他丟回Banana幫我重新改顏色,好處是,他可以順利的幫我改出顏色來(尤其是看起來有材質有光亮的),這點值得讚賞,但是我又得丟回PC裡面去背了。
生完東西,matrix也接好了,但是element上的透過NudoAuth登入旁邊那個IDPicon顯示不出來,然後才發現他只支援mxc協議,儘管說明書寫最好的方法就是在一個未加密的房間上傳圖片,但我上傳了發現要用新分頁打開圖示只會M_NotFound,mxc協議丟進去還是依舊不可用。不過我拿matrix.org自己本身似乎也就是這樣子的狀態就是了。Gemini推薦我可以直接在Proxy動手腳,把matrix的請求攔下來改直接丟原圖片回傳。但是我不會搞proxy,或者說因為我用DSM+CF所以整體來說我不太想碰命令行(ssh是關閉的,儘管我知道開起來用可以省事很多),不過也因此我問gemini是不是也可以在CF上動手腳,確實是,也因此我第一次使用CF Workers,才知道原來靜態網頁可以這樣掛載,甚至於是JN說CF Pages的好用,我現在也大概明白了!
我也是上了JN的版面啦!!雖然我也不知道自豪什麼,但被說技術能力應該不差感覺這點我還是蠻開心的,儘管我都在做些沒用的東西
¶忘記密碼
這還是需要有的環節,畢竟忘記了密碼總得有個方式復原,但又不可能總寫信跟我說這件事情,所以這勢必需要被自動化。一般來說會特別用Resend這類專門代管寄信的平台來自動化寄信,不過我懶得去設定,也想著先試試就拿著我的email別名去設定寄信SMTP,這時候Gemini又搞事情了。
我問Gemini要怎麼設定Email,他說應該在Email Stage裡面。
¶根本沒有RRRRRRR
然後查了api,應該要寫在環境變數裡面,所以又請gemini幫我生成環境變數。但是沒寄成功,我想說是跟crt證書有關嗎?應該不會吧然後我又看了api:
¶USER跟USERNAME不一樣RRRRRRRRRRRR
人家寫USERNAME,你Gemini只寫USER,你這是會讓我發瘋的啊。
然後在這樣的種種TROUBLE之下終於把RECOVERY的流程做好了。
¶寄信
但是寄信遇到了品牌問題,寄出來的信寫的是Authentik而不是NudoAuth欸。範本好像也被寫死在映像檔案裏面怎麼辦。
於是我決定用我寫活動清單 - UDGC活動整合平台的功力來對付,剛好兩系統都用Django,所以也都有一套template用於套用各種模板,因此我就在官方github上面找尋各種路徑,終於被我找到一個Base路徑,把裡面的頁頭商標改掉,頁尾也改成透透龍女,並且再掛載回容器中,這樣我就可以寄一封看起來相當純淨屬於我自己品牌的信了
(當然Authentik官方原則上沒打算免費讓你這麼幹,因為原本設計了tenant/tenancy功能才可能可以設定不同品牌寄信的功能,這是商業授權版才有的。)
與此同時我其實一直對於登入頁面下面有個由Authentik技術支持的字樣感覺討厭,所以我又嘗試去找base_full把這部分去掉,但發現沒用。也嘗試在footer區段的背景圖示改成純白色,但他的字樣偏偏又有陰影很凸顯。最後找到人家的theme居然有可以block隱藏掉那個字樣的CSS,於是乎就把那段字撿來用了(這是人家許可給大家可以使用的CSS樣式喔,原文大概上千行XD)
¶繼續嘗試整活與設定gitea
接下來就是gitea,我的代碼庫(雖然我目前很少用他就是了XD),希望把OpenID關掉,改成只用NudoAuth來註冊登入,結果Gemini還繼續搞事:
在app.ini中[auth]底下加
DIRECT_REGISTRATION = true就可以了
可以妳個大頭鬼,折騰我了好久怎麼就覺得都不對,人家api選項根本就是在[oauth2_client]底下設定ENABLE_AUTO_REGISTRATION: true,而且根本就沒有[auth]這個設定類別,完全一本正經的在瞎掰,真是要讓我瘋掉。
¶嘗試大頭貼與遺憾
我嘗試希望看看能不能讓NudoAuth可以自訂大頭貼,並且連動到各個應用程式,但目前現有的我只能說很遺憾並沒有辦法,儘管目前在NudoAuth按照社群的方法實做出來了。
Gemini一直說:
那頭像應該要可以點擊,不能點就是你這介面版本怪怪有問題
阿人家就真的不能齁。社群都說了用什麼方法的。
而且我還抓包,file這個功能目錄應該要設定一個data資料夾掛載,上面gemini生成compose的時候就沒有掛載到這一點(發瘋)
¶部落格與SSO的整合
最後一步就是讓部落格與SSO整合,經過與Antigravity內的gemini討論過後決議貼圖系統繼續依賴部落格系統,不使用SSO整合,這樣也不用大改,因此目前就可以成功的透過SSO進行登入註冊部落格了!
往後會在針對reaction、留言區等功能做維護,可能隨時偶爾大半夜會沒辦法瀏覽,那大概就是我又在搞事情了,CF502頁面常有的事情就多多稍待吧!在這之前有任何想留言分享的都可以寫信給我喔!
好了我要睡覺了,好累Zzz...
感謝您的閱讀。如有任何想法,歡迎隨時透過社交媒體聯繫我。
回文章列表