Latest Posts

2024年5月10日 星期五

在Blazor使用Fluent UI元件-3

 作者:許薰尹  精誠資訊/恆逸教育訓練中心資深講師



在本站《在Blazor使用Fluent UI元件 - 1》與《在Blazor使用Fluent UI元件 - 2》一文介紹如何在現有的Blazor專案中,手動加入Fluent UI元件的功能。在這一篇文章中,我們將介紹延續這系列文章的情境,介紹Fluent UI套件中「FluentDataGrid」元件的功能。

在Blazor使用Fluent UI元件-2

 作者:許薰尹  精誠資訊/恆逸教育訓練中心資深講師


Fluent UI 是 Microsoft 提供的一套 UI 框架,提供了許多預先設計好的元件,如按鈕、輸入方塊、下拉式選單等,讓開發者不需從無到有,可以快速地建立出具有一致性、豐富又美觀的使用者介面。

在本站《在Blazor使用Fluent UI元件 - 1》一文中介紹如何使用Fluent UI Blazor官方提供的專案範本來建立應用程式。在這一篇文章中,我們將介紹如何在現有的Blazor專案中,手動加入Fluent UI元件的功能。

建立Blazor專案


首先使用Visual Studio 2022開發工具建立一個Blazor專案開始,建立步驟如下:啟動Visual Studio 2022開發環境,從「開始」視窗選取「Create a new project」選項。從Visual Studio 2022開發工具的「Create a new project」對話盒中,選取 使用C# 語法的「Blazor Web App 」項目,然後按一下「Next」按鈕,請參考下圖所示:

圖 1:使用「Blazor Web App 」項目建立專案。

2024年5月9日 星期四

Azure Logic Apps:簡化建立工作流程的視覺化設計工具


許俊龍 Andy Hsu

  • 精誠資訊/恆逸教育訓練中心-資深講師






長期以來,無論是執行在企業內部部署的資料中心、或是主機代管的設施中,網頁應用程式(Web Application)都需依附在實體或虛擬的「伺服器」上才能運作,從而帶來了高昂的維運費用。就算採用的是雲端運算模型,也是運作在雲端服務提供者環境的虛擬伺服器或執行個體上,縱然減少了維運硬體的負荷,但是仍然必須配置、設定、更新、分載、可用性和擴展能力,而且也要處理這些虛擬伺服器的高可用與災難復原。此外就算應用程式沒有耗用資源時,還是得支付虛擬機器或執行個體所佔用資源的費用,進而產生了許多無謂的成本。

為了解決前述應用程式需配置在伺服器上運作,也就是所謂「具伺服器運算(Severed Computing)」的缺點,雲端服務提供者推出了「無伺服器運算(Serverless Computing)」的開發模型,由其管理建置、擴展和維護的底層基礎架構,以及處理作業系統管理、修補、容量擴展、負載平衡、監控和記錄... 等例行工作;同時用戶只需支付程式碼執行時所耗用的處理器、記憶體等運算資源的費用,沒有閒置資源時的支出,確保良好的資源使用率,且不會有過度建置而產生的費用或資源浪費;這種方式讓應用程式的開發更具成本效益,開發人員只需專注在應用程式的設計、建置和部署,也得以更快的將應用程式推向市場。

Microsoft Azure 雲端服務提供兩個無伺服器運算的資源:Azure Functions與Azure Logic Apps,兩者處理的方式大不相同,最主要不同之處在於前者是無伺服器計算的服務,需撰寫程式碼及使用Durable Functions延伸模組來開發協調流程;而後者則是無伺服器工作流程整合平台,直接使用內建的圖形介面設計工具、或編輯設定檔,即可產生和執行自動化的工作流程,多數時候完全不需要撰寫程式、或只要很少的程式碼片段,下表列出Azure Functions與Azure Logic Apps一些主要的差異:

本文示範如何使用Azure Logic Apps,快速且輕鬆建立當雲端「儲存資料」產生異動時,以「電子郵件」通知儲存帳戶管理人員的工作流程。

  1. 在「Azure入口網站」中成功部署「Logic Apps」且「前往資源」,點選「邏輯應用程式設計工具」後,映入眼簾的是簡介影片、許多從連結器帶來的常用觸發程式與範本,可直接編填、套用運作符合需求的項目,也可選擇空白範本自行編輯;在此示範後者的作法,選取之後會顯示空的工作流程設計工具。
  2. 根據前述示範目標,在搜尋處輸入「Blob」,稍待片刻後就會看到「觸發程序」出現我們想要監看的「新增或修改Blob時(僅限屬性)(V2)」。
  3. 自訂連線名稱,本文以儲存體帳戶為例,因此驗證類型選擇「Access Key」、可直接輸入Azure儲存體帳戶名稱與存取金鑰。
  4. 選擇完成要監看的儲存體帳戶、容器、Blob數目、與檢查週期後,就已經完成連線的設定,接下來按下「+新步驟」即可設定想要觸發的動作了。
  5. 輸入儲存體管理人員電子郵件的系統商名稱,在此以Outlook.com為例,向下捲動「動作」視窗,再點選「傳送電子郵件(V2)」,依照系統要求登入可連線的帳戶資料。
  6. 完成隨後出現的郵件所需的各欄位資料後,整個工作流程就已經備妥可用了。
  7. 儲存後此工作流程就已運作,也可經由「執行觸發程序」檢驗運作。以下為受監控的儲存體帳戶產生異動後,Logic Apps所寄送電子郵件的內容。

藉由Azure Logic Apps視覺化設計工具並選取預建的作業項目,可以快速建置工作流程以整合及管理應用程式、資料、服務和系統,從而簡化了跨雲端、內部部署和混合式環境,連線舊版、新式和最先進系統,提供低程式碼到無程式碼的設計工具,開發高度可調整的整合解決方案。


您可在下列課程中了解更多技巧喔!



2024年5月8日 星期三

快速變動的資訊時代,除了 DevOps,你更需要融入 Security!

 作者:唐任威   精誠資訊 恆逸教育訓練中心 資深講師 


今是個快速變動的資訊時代,軟體開發和系統營運不再僅僅是技術工作,更是組織成功的重要關鍵。隨著 DevOps 的興起,開發團隊和營運團隊間的協作與溝通加速了軟體交付和部署的速度,從而使組織更具競爭力。

然而,隨之而來的是安全性問題的日益嚴重化。過去的安全漏洞不僅帶來了嚴重的財務損失,更對組織的聲譽和信任造成了嚴重影響。這些安全挑戰不只是資料外洩、系統漏洞和惡意攻擊,並且讓組織暴露在巨大的風險中。正是因為這些挑戰,DevSecOps應運而生。

DevSecOps將安全性整合到開發和營運的流程中,將安全性視為開發和營運的一部分,最終提高應用程式和基礎設施的安全和可靠。DevOps是一種整合軟體開發 (Development) 和營運 (Operations) 的文化和實踐模式。

它的核心思想是透過促進開發團隊和營運團隊之間的合作和溝通,以及使用自動化工具和流程來加速軟體交付和提高系統的可靠性。

DevOps 的出現源於對傳統開發和營運分離所帶來的挑戰和限制,旨在解決這些問題,使得軟體開發和營運更加靈活、高效和可靠。DevOps 的基本原則包括文化變革、自動化、持續整合 (Continuous Integration,簡稱 CI)、持續交付 (Continuous Delivery,簡稱CD)及監控與回饋等。

其中,持續整合指的是將開發人員的程式碼不斷地整合到共享的程式主幹中,藉以確保程式碼的時效與品質。
持續交付則是將通過測試的程式碼自動化地部署到生產環境中,以實現快速的軟體交付和部署。

DevOps 在實踐中強調文化、流程和工具的綜合應用。在文化層面上,DevOps 倡導開發團隊和營運團隊間的合作和共享責任,打破傳統的功能部門隔閡,建立共同的目標和價值觀。在流程層面上,DevOps 強調敏捷開發、持續測試、持續監控和回饋,以及持續改進的循環。在工具層面上,DevOps 使用各種自動化工具來實現開發、測試、部署和監控的自動化,例如版本控制系統、持續整合工具、容器技術、自動化測試工具、監控工具等。

DevOps的優點是:

一、加速軟體交付速度,減少開發到生產的時間,提高產品上線的效率和靈活性;二、提高系統的可靠性和穩定性,減少系統故障和問題,提升用戶體驗和滿意度;三、增強團隊的合作和溝通,打破功能部門間的隔閡,促進跨部門的協作和共享知識。

雖然DevOps解決了組織在開發與營運上的許多問題,但DevOps在安全上依然需要面對各樣挑戰,例如:

1. 安全文化:開發團隊和營運團隊需要共同認識到安全的重要性,並將其視為全體責任。否則一但認知產生落差,將導致安全問題發生。

2. 安全測試:如何在持續整合和持續交付過程中實現自動化安全測試?缺乏適當的測試工具和技術並將其整合到自動化流程中,程式碼和系統的安全性將無法保證。

3. 安全漏洞:開發快速交付和部署的特性可能導致程式碼存在安全漏洞。

4. 持續監控與回饋:需要建立有效的安全監控系統,即時監控系統的運行狀態和安全事件。

5. 合規性要求:許多組織需要符合法規和合規性要求,因此DevOps流程需要確保系統的合規性,包括保護資料、保障隱私和相關安全措施等。

DevSecOpsDevOps的一個延伸,將安全性(Security)整合到開發(Dev)和營運(Ops)流程中,以實現更安全、更可靠的軟體交付。DevSecOps旨在將安全性作為整個軟體開發生命週期的一部分,而不僅僅是在部署階段添加安全措施。DevSecOps具有以下特性:

1. 自動化安全測試:將安全測試自動化,包括靜態程式碼分析、動態測試、漏洞掃描等,以及對應用程式和基礎設施的安全配置進行自動檢查。

2. 安全意識教育:強調開發人員、營運人員和安全團隊之間的合作和溝通,提供安全意識培訓,幫助團隊成員更佳地理解和應對安全挑戰。

3. 持續監控和回饋:不斷監控應用程式和基礎設施的安全狀態,即時檢測並應對安全事件,並根據監控結果提供回饋,以改進安全性。

4. 安全自動化工具:利用安全自動化工具來檢測漏洞、管理存取控制、加密敏感資料等,以增強應用程式和系統的安全性。

5. 全方位安全審查:在整個軟體開發生命週期中進行全方位的安全審查和驗證,包括設計階段、開發階段、測試階段以及生產部署階段。

DevOpsDevSecOps雖然都關注於軟體開發和運營的整合,但它們在安全性方面有明顯的不同:

1. 重點和目標不同:DevOps的主要目標是通過改善開發團隊和運營團隊之間的協作和溝通,實現快速、可靠的軟體交付。它強調自動化、持續整合、持續交付等概念,以提高開發效率和交付速度。但DevSecOps在此基礎上加入了安全性的考量,旨在將安全性整合到整個軟體開發和運營流程中,並將安全性視為開發和運營的一部分,以提高應用程式和基礎設施的安全性和可靠性。

2. 採取安全性的方式不同:DevOps中,安全性通常是額外的考量因素,在部署階段或者後期才會加入安全措施。而在DevSecOps中,安全性是整個開發生命週期的一部分,從需求分析、設計、開發到測試和部署階段都會考慮和實施安全措施,並通過持續監控和回饋來不斷改進安全性。

3. 流程和工具的不同:DevOps強調自動化工具和流程的使用,以提高效率和可靠性。但 DevSecOps更強調要使用安全自動化工具及安全意識訓練等活動,以加強安全性。


整體來說,DevOps著重於加速交付和提高效率,DevSecOps則更加關注於將安全性納入到整個開發和營運過程中,以確保軟體交付的同時也保持了安全性和可靠性。因此,DevSecOps可以認為是DevOps的延伸,強調了安全性在軟體開發生命週期中的重要性和整合性。

DevSecOps是將安全性整合到軟體開發和運營的流程中的一種文化和實踐模式。它強調將安全性視為開發和運營的一部分,藉此提高應用程式和基礎設施的安全性和可靠性。

企業組織在軟體開發和營運過程中若能納入DevSecOps則將實現全面性的安全控制和保護。這不僅是程式碼開發階段的安全性措施,還包括部署、運行和監控階段的安全性保護。並且藉由自動化工具和流程,能夠實現快速的安全應變能力。透過即時發現安全漏洞和問題,迅速修復和回饋,降低潛在的安全風險和影響。

簡單的說,透過DevSecOps安全將融入到整個軟體開發和運營的文化中,從而提高系統的安全性、可靠性和穩定性,降低安全風險和成本,同時提高組織的信任度與形象,是現代企業數位轉型和安全保護的重要手段和策略。


2024年5月5日 星期日

從學生到首席資安工程師,8年恆逸學習資安之路



恆逸學員曾子維從研究所進修第一堂白帽駭客課程CEH開啟了他的資安旅程,學生時代半工半讀,一路當上上市櫃公司的首席資安工程師,再到創業當老闆,8年來考了7張資安認證與多張雲端認證,累積了堅強的實務經驗與資安技術,一起來看看他的進修心路歷程! 

2024年4月26日 星期五

使用LAPS保護本機管理員密碼

作者 : 何斯慕  精誠資訊/恆逸教育訓練中心資深講師


使用本機管理員密碼解決方案(LAPS),管理本機管理員帳戶密碼,防止本機管理員密碼洩密的風險,在Active Directory管理的網域中,防止本機管理員帳戶使用相同的密碼來存取網域中的所有系統和伺服器。這使得系統容易遭受到PtH攻擊,並允許攻擊者在網路上輕鬆橫向移動擴展攻擊,讓攻擊者能夠獲取企業管理員帳戶的敏感資訊。本機管理員密碼解決方案(LAPS)工具可協助網路防禦者在Active Directory (AD)中管理和儲存管理員密碼,透過定期自動更新密碼來幫助保護本機管理員密碼。
Microsoft LAPS的特點是使用群組原則,將加入網域的電腦作業系統上的本機管理員帳戶的密碼,自動定期變更產生複雜性的密碼,防止暴力破解密碼攻擊的威脅。LAPS允許為管理員帳戶設定單獨的密碼,並將密碼儲存在Active Directory (AD)目錄服務中,這些密碼可以在身份驗證時進行檢索存取,套用委派授權策略控制對這些本機管理員帳戶密碼的存取。LAPS只能管理本機管理員帳號,不支援本機管理員以外的其他帳戶/密碼更改,LAPS執行所有的管理工作,會使用安裝於受管理電腦上的群組原則用戶端延伸(CSE),才能正常有效的運作。


案例分析:

  1. 在網域中受管理的電腦安裝LAPS工具

2024年4月22日 星期一

在Blazor使用Fluent UI元件 - 1

作者:許薰尹  精誠資訊/恆逸教育訓練中心資深講師


Fluent UI Blazor 是一個由微軟開發的開源元件庫,可以讓程式開發人員在 Blazor 應用程式中使用 Fluent UI 來設計系統。Fluent UI 是一種設計套件,可幫助開發人員建立美觀、一致且易於使用的使用者介面。

 
Fluent UI Blazor 元件庫目前包含了超過 40 幾個元件,涵蓋了應用程式或網站中常見的使用者介面元素,例如按鈕、文字方塊、下拉式選單、表格、圖表等等。這些元件經過精心設計,可與 Fluent UI 設計系統的其餘部分無縫整合。

 
Fluent UI Blazor 元件庫的主要功能包括:
• 豐富的元件庫:包含超過 40 幾個常用元件,可滿足各種使用者介面需求。
• 易於使用:元件採用簡單易懂的 API,可快速上手,學習曲線短。
• 允許客製化:元件可根據需要進行客製化,以符合特定的設計的要求。
• 無障礙性:元件遵循無障礙性最佳做法,可供所有人使用。

 
Fluent UI Blazor 元件庫適用於以下場景:
• 建立新的 Blazor 應用程式。
• 將 Fluent UI 設計系統到用到現有的 Blazor 應用程式之中。
• 加速 Blazor 應用程式的使用者介面設計動作。

 
使用 Fluent UI Blazor 元件庫的優點包括:
• 可提高開發效率:使用現成的元件可節省開發時間和精力。
• 提升使用者體驗:Fluent UI 設計系統可幫助建立美觀、一致且易於使用的使用者介面。
• 降低維護成本:元件經過良好測試和維護,可降低應用程式的維護成本。

在這一篇文章中,我們將介紹一些適用於.NET 8,可在Blazor應用程式使用的Fluent UI元件基本功能。

安裝 Microsoft.FluentUI.AspNetCore.Templates套件
想要在Blazor應用程式之中開始使用 Fluent UI Blazor 元件進行設計的最簡單方法,就是利用官方提供的專案範本。專案範本可從以下網址下載:

https://www.nuget.org/packages/Microsoft.FluentUI.AspNetCore.Templates 

請參考下圖所示: