我正嘗試使用圖形API來更改B2C租戶上當前登錄用戶的用戶。通過Azure AD B2C圖形API更改登錄用戶的密碼
的請求被髮布到:
https://graph.windows.net/me/changePassword?api-version=1.6
所提供的JSON是按以下格式:
{"currentPassword":"[currentpassword]","newPassword":"[newpassword]"}
不幸的是我不斷收到以下錯誤,我不知道爲什麼(或者說,我不知道爲什麼使用'我'別名會有問題)。我也嘗試在發佈請求的地方包括租戶名稱,但這沒有什麼區別。
未找到段「me」的資源。
我設法通過重置來更改密碼。但是,問題是可以在不提供當前密碼的情況下更改密碼。理想情況下,我希望用戶必須輸入此密碼作爲更新密碼過程的一部分。事實證明,缺少的'我'問題可能是由於缺少權限。
我試着添加'訪問目錄作爲登錄用戶'權限作爲應用程序的委託權限。我得到這個頁面:
請注意,我也有經典的門戶拒絕,如果這兩個設置都將更改保存到設置的登錄網址http://localhost/testapp/和應用程序ID URI設置爲https://patrickscorp.onmicrosoft.com/testapp沒有設置。
在'其他應用程序的權限'下,我點擊'添加應用程序',然後選擇'Windows Azure Active Directory'。然後我確定選擇了'作爲登錄用戶的訪問目錄'。
然而,拯救導致下面的錯誤出現:
點擊「詳細信息」並不能幫助 - 它只是說,如果問題仍然存在聯繫 支持
如果我必須走下重置路線,那麼有沒有一種方法可以獲取用戶提供的密碼並進行驗證?
你沒有解釋你如何獲得令牌。您是否從Azure AD B2C身份驗證端點獲取了它?如果是這樣,那麼不幸的是,截至今天,您無法使用該令牌調用Azure AD B2C圖形API。這意味着你也不能使用/ me端點。 –
謝謝你的迴應。你有什麼想法,如果這將是可能的?我注意到,從所提出的改進來看,這是一個在不斷提出要求的情況下一直存在很長一段時間的遺漏。目前我唯一的選擇是允許用戶在不提供當前密碼的情況下重置密碼。這意味着任何有權訪問PC的人都可以在沒有任何事情的情況下更改它,即使他們不是有問題的用戶。以編程方式登錄(以驗證密碼)也不是在Web應用程序的上下文中看到的選項。 – PatrickS
爲了讓用戶重置他/她的密碼,他們需要訪問用戶的電子郵件,因爲驗證電子郵件是作爲密碼重置流發送的。因此,這不僅僅是訪問用戶已登錄Azure AD B2C應用程序的PC的問題。 – Saca