星期日, 5月 11, 2025

python - Azure Entra ID 外部使用者邀請與獲取 ID



Azure Entra ID 外部使用者邀請與獲取 ID


OS: macOS 14.3


整理一下使用 Github copilot 產生的 python 程式碼, 用於一些工作日常

登入 Azure


建立 Entra ID 應用程式

  • 該應用程式因為要邀請外部使用者到 Entra ID, 所以需要相關 API 權限

  • `User.Invite.All` - 用於邀請外部用戶

  • `User.Read.All` - 用於查詢用戶資訊


==== Console 方式 (Copilot 提供後修改) ====


以下是使用 Azure Portal 建立 Entra ID 應用程式並設定權限的逐步指示:


登入 Azure Portal:


前往 Azure Portal 並使用您的帳戶登入。

點選  Microsoft Entra ID

點選 應用程式註冊

點擊 新增註冊

  • 填寫應用程式資訊:

    • 名稱:輸入您的應用程式名稱

    • 支援的帳戶類型:選擇您的應用程式支援的帳戶類型

    • (可選)重定向 URI:如果需要,輸入 URI。

    • 點選 註冊


記下顯示的

  • 應用程式 (用戶端) 識別碼  (client_id)

  • 目錄 (租用戶) 識別碼  (tenant_id)


設定應用程式密碼

在該應用程式, 展開 管理

點選 憑證及秘密

預設會停留在 用戶端密碼 

點選 新增用戶端密碼

  • 輸入描述 (我可能會與應用程式相同)

  • 選擇到期天數

  • 點選 新增


記下顯示的

  • 值 (client_secret) - 這個是應用程式的密碼, 只會出現在建立的當下, 請記得記下來


設定 API 權限:


在應用程式的頁面,選擇「API 權限」。

點擊「新增權限」。

選擇「Microsoft Graph」。

選擇「應用程式權限」。

搜尋並選擇 User.Invite.AllUser.Read.All 權限。

點擊「新增權限」。


授予管理員同意:


在「API 權限」頁面,點擊「授予管理員同意」以確認權限。


可以觀察權限




下載 此次 add_entraID_extra_user 目錄的檔案


按照 README.md 內容進行

  • config.json 文件配置

    • 填入 tenat_id / client_id / client_secret

  • users.csv

    • 填入要邀請的外部使用者 email 與 使用名稱


確認一下是否有安裝 requests 套件


% pip3  list  | grep requests


requests                                2.32.3


  • 如果沒有就使用 pip3 install requests


執行程式


%  python3  add_entraID_extra_user.py



星期日, 3月 30, 2025

vscode insiders with google-map mcp 小記


vscode insiders with google-map mcp 小記


OS: MacOS 14.3

VScode Insiders: 1.99.0


最近 MCP 很火熱, 也覺得這樣的協定真的很棒, 可以增加很多應用以及擴展大家的領域

今天來寫看了 Youtube 影片, 也一併動手做的小記


MCP (Model Context Protocol) 介紹

  • https://modelcontextprotocol.io/introduction

  • MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.


目前 MCP Server 常見支援兩種方式

  • Docker

  • NPX


我這邊採取的是 NPX 方式


首先 NPX 方式要使用 npm 指令進行安裝, 要有 npm 指令就要安裝 Node.js

因為我的 OS 是 Mac  所以我就使用 homebrew 方式安裝 Node.js


指令如下

%brew  install  node


可以驗證一下是否安裝成功


% node  -v

v23.10.0

% npm  -v

10.9.2


然後 MCP 目前在 vscode insiders 已經開始支援, 設定 MCP Server in vscode 大概目前也看到兩種做法


==== 使用 vscode 內建的功能來建立 ====


開啟功能選單 (Command + Shift + P)

搜尋 MCP Add Server 功能



選取要安裝的方式


進行相關設定


另外可以觀察 Settings


搜尋 mcp , 可以看到 settings.json


==== 在 .vscode 目錄內建立 mcp.json ====


我是採取另外一種方式, 在 .vscode 目錄內建立 mcp.json 檔案

  • 我喜歡這樣的方式是因為設定獨立起來, 也比較有彈性


今天要測試的 是 Google MAP MCP

要找目前有哪些 MCP Server 可以測試與使用, 我可能會用下列兩個


間單的方式就是找到你要測試的 MCP Server, 然後看他的設定檔如何設定, 以 Google Map 來說


我用的是 NPX 方式, 所以只要在 .vsocde 目錄內建立 mcp.json


內容如下

{

  "mcpServers": {

    "google-maps": {

      "command": "npx",

      "args": [

        "-y",

        "@modelcontextprotocol/server-google-maps"

      ],

      "env": {

        "GOOGLE_MAPS_API_KEY": "<YOUR_API_KEY>"

      }

    }

  }

}


  • 將啟用的 Google Maps API Key 替代上方的 <YOUR_API_KEY>

  • 重新啟動 vscode Insiders


將 vscode chat 開啟, 切換到 Agent 模式


點選 Select Tools 圖示


這個時候就看到 MCP Server: google-maps 選項可以勾選

勾選 MCP Server: google-maps


左邊那個 伺服器圖示是用來啟動 server 或是檢視相關輸出的

這個時候有些人可能會再啟動 vscode insiders 一次 (都市傳說,呂布治百病)


然後就可以開始詢問 AI 問題



  • 這個時候就會發現會執行相關 google map 功能

    • 會提示你是否允許執行, 可以選擇 session / workspace / 總是允許


會整理提示的相關資料, 也可以透過對話的方式請他製作網頁

簡單的成品大概如下



只能說 AI 真的是越來越方便了


~ enjoy it



References



星期六, 3月 22, 2025

建立 python 虛擬環境 in vscode 小記


建立 python 虛擬環境 in vscode 小記


OS: macOS 14.3

vscode: 1.98.2


現在有 Github Copilot / Gemini Code Assist 的幫助, 真的覺得寫 code 的機會真的大幅度的增加

來補一篇在 vscode 裡面建立 python 虛擬環境的方式


以下是常見的 python 虛擬環境建立工具


venv (Python 內建)


virtualenv


conda

  • Anaconda/Miniconda 的套件管理工具

  • 可同時管理 Python 版本和套件

  • 特別適合資料科學和機器學習專案

  • 官方網頁:https://docs.conda.io/ 


pipenv

  • 結合了 pip 和 virtualenv 的功能

  • 自動管理相依性和虛擬環境

  • 使用 Pipfile 代替 requirements.txt

  • 官方網頁:https://pipenv.pypa.io/ 


poetry

  • 現代化的依賴管理和打包工具

  • 解決依賴衝突並簡化套件發布

  • 提供清晰的依賴聲明和鎖定文件

  • 官方網頁:https://python-poetry.org/ 


pyenv


我使用的是 python 內建的 venv


確認目前使用的 python 版本 可以使用 

% python  --version


Python 3.11.6


確認目前安裝的 python 套件

% pip3  list  


Package                                 Version

--------------------------------------- -----------

aiohappyeyeballs                        2.6.1

aiohttp                                 3.11.13

aiosignal                               1.3.2


接下來進入建立 python 虛擬環境


使用 vscode 方式


開啟 Command Palette (⇧⌘P), 搜尋 Python: Create Environment

選取 Python: 建立環境


選取 虛擬環境類型


選取要使用的 python 版本


這個時候應該會自動帶入虛擬環境, 這個時候可以觀察終端幾前面會有 (.venv) 字樣


確認相關資訊

(.venv) max@Max-MacAir aws_all_regions_EC2_instances_total % python3  --version


Python 3.12.7


(.venv) max@Max-MacAir aws_all_regions_EC2_instances_total % pip3  list        


Package Version

------- -------

pip     25.0.1


這個時候就可以觀察到已經在虛擬環境內, 另外資料夾內也會有 .venv 目錄


如果要停用 python 虛擬環境, 可以用以下方式

  • 在 vscode 右下角的 python 版本選擇器, 點選非 .venv 的版本, 然後將 .venv 目錄刪除

  • 使用指令 deactivate 停用, 然後將 .venv 目錄刪除


如果不使用 vscode 方式建立虛擬環境, 也可以用指令的方式

% python3  -m  venv  venv


  • 後面那個 venv 是目錄名稱, 可以按照自己的需求來訂定, 也可以像 vscode 那樣取名為 .venv

  • 因為是使用 python3 指令來建立虛擬環境, 所以會用預設的版本來建立虛擬環境, 如果要指定python 版本, 就要使用明確的python 版本來建立, 例如 % python3.12 -m venv venv


啟動虛擬環境

% source  venv/bin/activate


最近會把之前想寫都寫下來


~ enjoy it


References