Posts

Showing posts from February, 2017

[雜] ThinkPad X200 上安裝Ubuntu版本經驗

Image
陪了我8年的ThinkPad X200自上一年開始使用Ubuntu 14.04 + SSD 加持後簡直是重振雄風,除了一些硬件問題 (螢幕變暗反應變慢,CPU不夠強不能看4K影片,沒有獨顯Scrolling不要太快) 外基本上還是順順的。聖誕節的時候手癢直接升級Ubuntu 16.04,結果問題就出來了...杯具。

我的ThinkPadX200規格:

CPU:Intel® Core™2 Duo Processor P8800記憶體:8GB硬碟:128GB SSD (品牌都忘了,反正是撿便宜)

在我這種老筆電跑Ubuntu16.04暫時發現了以下問題:

畫面太華麗: 16.04有很多Transparent的特效,每次秀出來都卡死了,就是用了 GNOME Tweak Tool and Unity Tweak Tool 把過場畫面關掉效果也不會回到14.04那種順暢感
GNOME Tweak Tool and Unity Tweak Tool 安裝方法CPU資源:P8800 速度本身不高,用Top查詢發現有些比較耗CPU的系統程序經常在跑,導致CPU溫度稍為高。我猜如果用在今天的筆電應該沒有太大問題,但是老筆電對於CPU就是斤斤計較。用Chrome異常慢:我也不知道是啥問題。 所以最後昨天我實在忍不下去了,還是重灌回14.04,再看看情況再上來報告。 暫時使用14.04是很順暢的,雖然畫面比較老舊。

01/03/2017更新:暫時來說沒有任何問題,而且連裡面的Win7 VM也順了很多
*不要問我身為堐踢狗為什麼不換筆電......

[ASP.NET MVC] 利用OAuth2為網站進行使用者認證的簡單實作

Image
前言:
公司最近打算使用由政府提供的市民登入平台,原因是利用這個平台登入的帳號具有等同自然人的法律效力,其他廠商不用老遠跑來公司簽約可以直接網路上搞定。政府使用的技術是OAuth2認證機制,所以小弟必需被逼研究熟悉整個流程再把公司的系統整合進去。

老實說,Oauth2一開始還真的看得我一頭霧水(霧煞煞),因為OAuth2跟傳統UserName Password的認證方式很不一樣,而且OAuth2在網站上及APP上的實現方法也不同,再加上網路上的圖文說明也很複雜。最後找到神人「鴨七」大大整理出三百多頁的PPT[1]及他在網站上的詳細介紹[2],來回看了幾次終於比較明白整套理論,以下說明是精簡版本,全部概念以網站架構為中心,未必完全適用於APP及Winform:

為什麼要OAuth2?
政府用的是OAuth2小弟又有什麼辦法呢我個人的看法是使用OAuth2的網站必須先向提供OAuth2的服務提供者進行登記,再加上對用戶的認證以後,就相當於有兩層的保護。再加上網站從頭到尾沒有碰過你的使用者帳號跟密碼,減少被盜取的可能,當然trust機制還是會有很多漏洞,例如User亂授權,不過已經是社交層面了。


OAuth2常用角色

Client: 通常是指你自己開發的系統。 Authorization Server: 處理認證、發出access Token的伺服器。Resource Server:保持資源的伺服器,在facebook的例子就是你的個人資料。Resource Owner: 就是人,或者User。 User Agent: 用戶代理,通常指的是Browser。OAuth2常用術語 Client ID and Client secret:
由於使用OAuth2的Client網站要先向Authorzation Endpoint(OAuth2提供者)進行登記,說明用途及Redirect URL,登記完之後Client ID就像OAuth2提供者發給你網站的身份證字號,通常為亂數, 而srcret就是公開金鑰。
Redirect URL:
由於當完成OAuth2程序後轉回Client網站的動作是由OAuth2提供者直接執行,以防止CSRF (Cross-site request forgery)攻擊。所以必須向Authorization Server登記URL。
AccessToken:
要讀取R…