iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 29
0
Microsoft Azure

Azure 的奇幻之旅系列 第 29

Azure 系列文(29) - Active Directory Single-Sign-On 應用程式註冊

看到這個落落長的標題,其實就是自己建立應用程式,然後使用Azure的身份識別去做Single-Sign-On登入,就可以存取到Azure的服務,比如說: Azure Graph、Azure Management API...等等的,藉此可以操控一些Azure資源,像我們要使用到Azure上的服務用這個就蠻適合的!,廢話不多說,馬上開始吧!

準備

  • Azure 帳號
  • Azure Active Directory

建立租用戶

首先因為我們要把應用程式註冊到租用戶底下,所以需要開一個新的租用戶

因為如果權限不夠無法將應用程式註冊到Tenant底下

到Azure Portal搜尋Azure Active Directory

再來填基本
https://ithelp.ithome.com.tw/upload/images/20201008/201279948Nk8z5sQ6N.png

組態
https://ithelp.ithome.com.tw/upload/images/20201008/201279946y0rZhVUnA.png

接著就可以建立囉
https://ithelp.ithome.com.tw/upload/images/20201008/20127994dixWqBGYsR.png

接著建立好之後就可以在右上角看到剛剛的Tenant已經改變名稱了
https://ithelp.ithome.com.tw/upload/images/20201008/20127994hBXAwvoB6p.png

建立應用程式

到Azure Portal搜尋Azure Active Directory,然後到應用程式註冊的地方
https://ithelp.ithome.com.tw/upload/images/20201008/20127994GU0ZvZIVA9.png

並且新增註冊

  • 名稱: 你想要的名稱
  • 支援帳戶類型: 任何組織目錄中的帳戶 (任何 Azure AD 目錄 - 多租用戶) 和個人 Microsoft 帳戶 (例如 Skype、Xbox)

然後按下註冊即可
https://ithelp.ithome.com.tw/upload/images/20201008/201279949WnWwNxMlA.png

然後在應用程式裡面點擊快速入門的地方

Azure 已經提供許多SSO的範例了,我們直接用就好了

再來選擇Web 應用程式
https://ithelp.ithome.com.tw/upload/images/20201008/20127994nL2okYIgiA.png

選擇Python

裡面也有一些安裝說明了,其實也蠻簡單的!

先點擊為我進行這些變更
https://ithelp.ithome.com.tw/upload/images/20201008/20127994w0trvBvmW5.png

再來下載範例
https://ithelp.ithome.com.tw/upload/images/20201008/20127994nCUknoCeIe.png

部署應用程式

進入到專案

cd ms-identity-python-webapp-master

安裝依賴

pip install -r requirements.txt

執行應用程式

python app.py

再來登入

http://127.0.0.1:5000/login

就會到一個授權的畫面,按下接受就會把應用程式掛進去Tenant的應用程式底下了
https://ithelp.ithome.com.tw/upload/images/20201008/20127994GoQxwTQT6x.png

接著就可以看到已經登入成功了,可以Call Graph API (如果有遇到問題可以跳到最後面!)
https://ithelp.ithome.com.tw/upload/images/20201008/20127994YAI61Hsmhv.png

基本上這樣就成功註冊應用程式到Tenant,並且可以使用Azure的一些資源,實際上有哪些資源呢?我們可以在API權限新增權限裡面看到
https://ithelp.ithome.com.tw/upload/images/20201008/20127994AADm1ME8AO.png

如果想要加入Facebook、Google的登入,可以選擇外部身份識別,可以新增外部的識別
https://ithelp.ithome.com.tw/upload/images/20201008/20127994ID7tIwjuv4.png

The reply url specified in the request does not match the reply urls configured for the application

我一開始註冊的時候遇到了這個問題,我的解決方法是

pip install pyOpenSSL

新增在app.py

if __name__ == "__main__":
    app.run(ssl_context='adhoc')

然後到驗證的地方,在Web重新導向URI,修改成Https
https://ithelp.ithome.com.tw/upload/images/20201008/20127994deHOxi65QS.png


上一篇
Azure 系列文(28) - Edge 搭配 Stream Analytics 把危機都解除
下一篇
Azure 系列文(30) - IoT Dashboard 架構設計
系列文
Azure 的奇幻之旅30

尚未有邦友留言

立即登入留言