[英]How can I federate Azure AD B2C to Azure AD to protect an API?
[英]How can I leverage Azure AD B2C to create and manage users through a REST API?
我正在嘗試在微服務架構中創建一個應用程序。 我目前正在嘗試弄清楚身份驗證和授權部分。 我做了一些研究並選擇了 Azure AD B2C 作為身份提供者。
我現在想要的是一種通過 REST API 在我的 Azure AD B2C 中創建用戶的方法,我將向我的客戶端(Web 應用程序和移動客戶端)公開該 API。 我一直在探索 Azure AD B2C 文檔 ( https://docs.microsoft.com/en-us/azure/active-directory-b2c/ ),甚至 Azure AD B2C 接口,但所有我能夠找到的有關登錄和注冊的信息與允許用戶通過帶有公司品牌的可自定義頁面執行這些操作有關。
那不是我需要的。 我想在 API 網關后面公開幾個服務,並允許我的客戶端應用程序執行我的用戶的創建和管理。 我希望我的移動團隊能夠調用我的 API、注冊用戶、執行登錄並能夠訪問其他與業務相關的服務,而無需知道我是否在使用 Azure AD B2C。 但到目前為止,我找不到任何允許我這樣做的 Azure AD B2C API。 我可以使用 Microsoft Azure AD B2C 實現這一目標,還是應該開始尋找其他雲身份提供商?
如果要使用 Rest API 管理 Azure AD B2C 用戶,可以使用 Microsoft Graph API 來實現。 更多詳情請參考文檔和文檔
例如
注冊申請
授予 API 權限
創建客戶端密鑰
獲取訪問令牌
POST https://login.microsoftonline.com/<your b2c tannat name >/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=<your sp appId>
&client_secret=<you sp password>
&scope=https://graph.microsoft.com/.default
POST https://graph.microsoft.com/v1.0/users
Content-type: application/json
Authorization: Bearer <access_token>
{
"displayName": "[TEST] Bridgette Harmon (Local account)",
"givenName": "Bridgette",
"surname": "Harmon",
"identities": [
{
"signInType": "userName",
"issuer": "<your b2c tenant>",
"issuerAssignedId": "Bridgette"
}
],
"passwordProfile" : {
"password": "password-value",
"forceChangePasswordNextSignIn": false
}
}
像您一樣,我正在尋找一種集中方式來保留我的用戶並從多個應用程序或 api 執行單點登錄。 從成本的角度來看,我現在傾向於開發自己的身份提供程序,而不是 Azure AD。 祝你好運。
為了放大@JimXu 的回答,以這個客戶端為例。
“這種方法類似於服務帳戶方案,其中應用程序作為自身運行,而不是作為通過交互式用戶登錄登錄的用戶。這是通過使用 OAuth 2.0客戶端憑據授權來完成的。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.