azure-ad-b2c - Azure AD B2C 连接用户使用 Graph AD API 更改密码

标签 azure-ad-b2c azure-ad-graph-api

我们正在使用 Azure AD B2C,我正在尝试为登录用户实现changePassword 功能。我们已经遵循了这个教程https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet ,并且我们已经成功地使其发挥作用。 但我们希望登录用户能够更改其现有密码(直接在应用程序中)。我们找到了这个方法( https://msdn.microsoft.com/fr-fr/library/azure/ad/graph/api/functions-and-actions#changePassword ),但我们未能使其发挥作用...

在 AD B2C 中与登录用户一起使用 AD Graph API 的标准工作流程是什么? 我有一个链接到 B2C 租户的应用程序。我已经创建了 Android 和 iOS 应用程序,并且由于注册或登录策略,我能够连接并获取 token ,这一点没问题...... 同时,我创建了一个服务应用程序,以便使用 AD Graph API(感谢上面的第一个链接)。 我们已经成功测试了一些操作,例如获取用户列表、查找特定用户、更改一些......但现在我想对连接的用户(第二个李)使用方法“changePassword”,但我使用失败。我不知道要提供哪个访问 token ,两个测试(使用应用程序服务凭据中的 token 或使用通过登录策略收到的访问 token )都失败了? 其他问题,我使用PowerShell创建的应用程序服务在Azure门户中不可见是否正常?

谢谢;)

最佳答案

Other question, is it normal that the app service I have created with PowerShell is not visible in the Azure Portal ??

我们可以通过搜索 appPrincipalId 来找到 PowerShell 创建的服务主体,如下所示:

enter image description here

更新

要执行 Azure AD Graph 的更改密码 REST API,我们需要提供委托(delegate)访问 token 。在这种情况下,我们可以使用资源所有者密码凭据流程,它需要用户的用户名和密码进行身份验证。要使用此流程,我们可以注册服务主体,如下所示:

$app = New-AzureRmADApplication -DisplayName "appPS2" -HomePage "https://adb2cfei.onmicrosoft.com/appPS2" -IdentifierUris "https://adb2cfei.onmicrosoft.com/appPS2" -Password "123"

New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId

然后我们需要登录Azure经典门户授予委托(delegate)权限Directory.AccessAsUser.All,如下图:

enter image description here

以下是使用资源所有者密码凭据流程获取 token 的代码:

Post: https://login.microsoftonline.com/adb2cfei.onmicrosoft.com/oauth2/token

resource=https%3a%2f%2fgraph.windows.net&client_id={ $app.ApplicationId}&grant_type=password&username=fx%40adb2cfei.onmicrosoft.com&password={currentPassword}&client_secret=123

然后我们可以使用此 token 来更改登录用户的密码,如下所示:

POST: https://graph.windows.net/adb2cfei.onmicrosoft.com/me/changePassword?api-version=1.6

authorization: bearer {access_token}
content-type: application/json

{
"currentPassword":"{currentPassword}",
"newPassword":"{newPassword}"
}

关于azure-ad-b2c - Azure AD B2C 连接用户使用 Graph AD API 更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41549492/

相关文章:

azure-ad-b2c - Azure B2C - 使用谓词或正则表达式进行密码验证

azure - 我可以使用 Azure B2C 来获取 id token *和*获取 Azure 部署服务的访问 token 吗?

c# - 无法从 Azure AD 获取不记名 token 以与 API 应用程序一起使用

具有外部帐户和 Microsoft Graph API 的 Azure AD

c# - 从 C# 服务使用 Graph API 获取日历计划

c# - 如何获取 Azure Active Directory 登录用户的密码策略

azure - 使用 Azure AD B2C Graph API 获取扩展属性不起作用

azure-active-directory - 从静态 HTML 页面调用 MSAL 登录

azure - 从 Azure DevOps 任务上传 IEF 自定义策略?

Azure 应用程序或委派权限写入用户的日历