https://avatars.githubusercontent.com/u/6058558

程式狂想筆記

.Net Core Identity 角色管理

我們常常開發程式帳號登入,通常還會做權限功能,這邊很常開發會用角色(Role)這個東西,去做權限劃分,有時候我們需要更細,但系統不一定會做到這樣,但有沒有常見規劃權限方法。 常見權限方法 之前看到 RBAC這個名詞是在 Kubernetes 那邊看到,那時候還沒有深入了解設計理念,最近在看 .Net Core Identity 文章,看到這個框架有做這個非常方便東西,可以瞭解這個是什麼用途。 RBAC 以角色為基礎的存取控制[1][2](英語:Role-based access control,RBAC),是資訊安全領域中,一種較新且廣為使用的存取控制機制,其不同於強制存取控制以及自由選定存取控制[3]直接賦予使用者權限,而是將權限賦予角色。 以角色為基礎的存取控制模型是一套較強制存取控制以及自由選定存取控制更為中性且更具靈活性的存取控制技術。 參考: 以角色為基礎的存取控制 - 維基百科,自由的百科全書 更多可以看Role-Based Access Control (RBAC). 作者:銀伶 | by I.S. BLOG | Medium。 CBAC Claim 動詞則有宣稱,聲稱, 主張, 自稱, 指控, 認領,索賠等意思 名詞則有權利 , 要求權和聲明等 Claims-based 則是一個專有詞,代表基於聲明的認證(Claims-based identity) 用於Google,Facebook,Microsoft等都有此機制的概念導入 參考: ASP.NET MVC第014天_ASP.NET Identity使用筆記_使用者登入_Claims-based identity理解 網路上比較少介紹 CBAC,簡單它可以分更細權限,這邊帳號可以設定特定角色,但是有時候有例外,像是帳號想把它加上權限上去,透過CBAC就可以設定。但注意 Claim不是只有套用在帳號上面,也可以套用帳號上面。 建立角色 GIT: 建立角色 · malagege/NetCoreAuthSample@578bdd6 RoleManager 可以簡單對 Role 做 CRUD。會新增到 AspNetRoles 資料表。 Controller 注入 RoleManager 建立ModelView Controller 建立Role View 設定 簡單步驟跟之前差不多

產生 JWT Token 方法

平常我們前後端開發會使用 JWT Token,JWT Token 有讀過相關文章就知道它裡面會存一些資訊,相關驗證都會在 JWT 上面,Server 讀取上面資料就知道是哪一個使用者,不需要在做資料庫查詢。這時候你會覺得這樣安全嗎?但其實它背後原理有做簽章,當你串改資料,JWT 驗證是不會過的,相對機密資料就不建議存在上面。

Traefik 反向代理 (Reverse Proxy) IP Host 方法

最近在架 KVM 使用 WebVirtCloud 做網頁遠端控制 VM,之前研究 Ubuntu 啟用 VNC 是為了能控制 VM GUI 介面,但是在公司沒法連線使用,這邊有找到 WebVirtCloud 可以解決這個問題,透過這個服務可能用 Traefik 轉服務出去,透過 Authelia 做 2FA 驗證可以相當方便,但我發現我不會轉 host 服務出去,這邊就特別研究怎麼用。

OpenAPI Spec 撰寫小記

最近規劃 API 規格打算用 OpenAPI Spec(OAS),但真的不是很熟,所以打算文件刷一遍,這邊做個小記。