Azure Active Directory是微軟提供的雲端式身分識別與存取管理服務,我們可以在Azure AD裡面註冊自己的應用程式好讓你的應用程式與身份識別者建立信任關係,舉例來說就是我們現代人都在用的Single Sign On如:FaceBook Login、Google Login、Line Login、Apple Login等等,其中所使用的技術就是OAuth2.0,不過這篇我只會記錄我是如何在Azure Active Directory設定和註冊應用程式,所以如果想知道要如何使用OAuth2.0來進行授權可以參考這篇文章【點我前往Azure - 測試OAuth2.0授權】那麼我們就開始吧!




建立Azure AD - 應用程式註冊

首先我們進入Azure的管理介面,在上方搜尋資源的地方直接打上Azure Active Directory



進去之後直接使用上方的加入」「應用程式註冊」,或是下方快速動作的新增應用程式」



接著會來到註冊應用程式的頁面
  • 名稱:這裡名稱可以設定一個跟你的應用程式相同的名字
  • 支援的帳戶類型:這裡要設定什麼帳戶可以存取你的Azure AD API,這裡我選擇任何組織目錄中的帳戶 (任何 Azure AD 目錄 - 多租用戶) 和個人 Microsoft 帳戶 (例如 Skype、Xbox)
    💡 也可以點擊「協助我選擇」看每個選項的差異

  • 重新導向URI(選用):這裡我們可以先不設定,等完成註冊後再進去調整即可


完成設定後按下註冊即可,等待部署後就可以看到我們應用程式的設定頁面了!
  • 應用程式(用戶端)識別碼:OAuth的Client ID了
  • 目錄(租用戶)識別碼:使用OAuth的「Client Credentials Flow」的時候需要用到



設定重新導向URI(Redirect URI)

如果你的應用程式走的是「OAuth Authorization Code Flow」時一定要設定認證的Redirect URI,否則OAuth驗證時會告訴你說你的Redirect URI有問題然後就無法認證囉!


接著我們來設定Redirect URI,點擊「重新導向URI」「新增平台」



設定平台就看你的應用程式是什麼平台就選什麼即可,由於我們要從「桌面應用程式/POSTMAN」做驗證所以就直接選擇「行動應用程式與桌面應用程式」



「設定桌面+裝置」的地方輸入重新導向的URI
💡 由於我們是桌面應用程式因此官方給的建議設定值是「http://localhost」【點我前往詳細說明


另外Azure Active Directory也支援多組Redirect URI,最多幾組我就沒有試過了XD

💡 這裡我們再添加一組測試時會用到的Redirect URI「https://oauth.pstmn.io/v1/callback」(POSTMAN提供的)




設定Client Secret

OAuth基本上都會包含一組Client ID和Client Secret而其中Client ID在我們一開始建立應用程式時在首頁可以找到Azure AD預設給的Client ID,而Client Secret則是需要自行產生一組



首先在左邊的選單找到管理」「憑證及祕密」「新增用戶端密碼」
  • 描述:讓你識別密碼的簡單描述
  • 到期:密碼的到期日
    💡 這裡最長就是設定兩年,兩年之後就要再來更換你的Client Secret


建立完成後系統就會自動生成一組Client Secret給你
💡 建立完成後密碼請Copy下來保存好,否則離開頁面之後再次進來密碼的欄位會自動遮罩住,如果忘記或是沒有記下來就GG了,只能再重新產生一組囉!



設定API權限(Scope)

最後就是Scope的設定,如果走「OAuth Authorization Code Flow」會有使用者互動並且詢問資源擁有者Resource Owner(以下簡稱RO)是否要提供一些權限給應用程式做存取,如果有需要RO的某些資源的就可以在API權限頁面(Scope)添加你要詢問的權限


首先在選單找到「管理」→「API權限」「新增權限」

💡 琳琅滿目的功能提供給你就看你的需求選擇對應的權限設定即可


這裡我們選擇「Microsoft Graph」可以看到有分委派的權限」應用程式的權限」,基本就是前者是給Authorization Code Flow、ROPC」使用的必須透過登入的使用者身份才能授權存取API,所以譬如要做Single Sign On要取得User Profile的話就可以從「分委派的權限」「OpendID」「選取User Profile的權限」


添加完成後回到API權限頁面點擊剛剛添加的權限會看到使用OAuth2.0做驗證時要帶的Scope的URL
以上就是Azure AD的應用程式註冊一些基本設定方式,未來如果還有遇到不一樣的或是文章內哪裡有說錯的會再回來補充跟調整XD




參考資料: