我正在開發一個燒瓶 Angular Web 應用程式,我想使用 Microsoft oauth2 來使用其他 API 獲取一些資料。
所以我在Angular中有一個“登錄微軟”按鈕,但我需要從后端(Flask)呼叫API,那么這種情況的最佳解決方案是什么?我應該在 azure AD 中將前端或后端注冊為客戶端嗎?
編輯 :
我將在這里解釋更多:
- 所以我有一個從后端呼叫 API 的 Angular 應用程式(Flask)
- 我的應用程式的用戶必須授予我一些權限才能訪問其 Power BI 帳戶中的資料。
- 在我的 Flask 應用程式中,我需要獲取 Microsoft Power BI 的訪問令牌以使用一些其他 API,例如:獲取用戶的報告或儀表板
- 然后我必須處理從 power bi rest API 收到的資料,并將回應發送到前端應用程式 (Angular)。
所以問題是:
- 如果我注冊后端應用程式,我將無法管理會話,因為我的后端是無狀態的。
- 如果我注冊前端應用程式,我有兩種情況: - 情況 1:從前端呼叫 power bi rest API,這對我來說不是一個好情況,因為我想處理后端接收到的資料。- 案例 2:通過 post 請求將令牌發送到我認為根本不安全的后端。
我實際上可以做另一種解決方案,即:注冊我的角度應用程式->從角度請求api->在角度中進行一些處理并將結果發送到后端->后端將完成其余的處理階段不使用 access_token,我可以這樣做嗎?或者有更好的解決方案
uj5u.com熱心網友回復:
客戶 ID 聽起來令人困惑。客戶端 ID 只是用于識別每個應用程式注冊的通用 ID,而不是像客戶端“前端”應用程式那樣的應用程式型別。
天藍色廣告中也應該有一個向導
因此,您需要為前端“angular spa”和后端 api 進行應用注冊。
這是在 azure ad 中注冊 api 的示例。 https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-configure-app-expose-web-apis
所以首先要問你想使用什么型別的流程?
我也建議使用 MSAL 庫
這是它支持的流程的鏈接
https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows
這是一個如何使用 azure ad msal 設定角度的示例https://www.c-sharpcorner.com/article/build-a-secure-angular-app-using-msal-and-azure-active-directory/
您需要將您的客戶端(角度應用程式)與 api 一起注冊。
此外,您還需要考慮使用 msal 保護 Web api。
您還需要設定范圍等內容
總而言之,當您導航到您的 Angular 應用程式時,您將登錄到 Microsoft,這將為您提供一個不記名令牌,然后將其在您的請求的標頭中發送到您的 api,然后 api 將驗證該令牌并拒絕或發回回應。
看看這里:https ://realpython.com/blog/python/token-based-authentication-with-flask/ 也檢查一下http://flask-jwt-extended.readthedocs.io/en/latest/
uj5u.com熱心網友回復:
我認為您可以注冊您的后端應用程式并將 redirect_uri 配置到前端,我不確定
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478004.html
上一篇:從嵌套陣列項中洗掉值反應原生
