Azure AD B2C 连接用户使用 Graph AD API 更改密码

2024-01-29

我们正在使用Azure AD B2C,我正在尝试为登录用户实现changePassword 功能。我们已经遵循了这个教程https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet 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 https://msdn.microsoft.com/fr-fr/library/azure/ad/graph/api/functions-and-actions#changePassword)但我们没能让它发挥作用......

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

谢谢 ;)


其他问题,我使用 PowerShell 创建的应用程序服务在 Azure 门户中不可见,这是否正常?

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

Update

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

$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经典门户来授予委托权限Directory.AccessAsUser.All如下图:

这是使用以下方法获取令牌的代码资源所有者密码凭证流程:

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

然后我们可以使用这个令牌来更改登录用户的密码,如下所示:

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}"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure AD B2C 连接用户使用 Graph AD API 更改密码 的相关文章

随机推荐

  • 监控浏览器控制台中的所有 JavaScript 事件

    是否可以监听所有的javascript事件 我试图猜测 AJAX 请求修改 DOM 后是否会触发事件 With firebug http getfirebug com wiki index php Command Line API moni
  • Git 恢复未按预期工作

    我遇到了问题git revert命令 我使用 Ubuntu 12 04 Linux 和 Git 版本 1 7 9 5 我创建了一个全新的b test repo在我的本地电脑上 从远程跟踪它origin b test repo 我在本地创建了
  • 在 C# 中创建部分(或有界)FileStream

    我有一个 FileStream 它由放入一个文件中的多个文件组成 并且我有一个文件长度的列表 换句话说 我可以轻松计算所有文件的位置和长度 我想要创建的是一个 Open 方法 它接受文件索引并返回仅包含该文件的流 目前我已经使用内存流实现了
  • 如何从maven pom文件构建项目

    我有一个开源项目的 Maven pom 文件 这个pom文件包含所有信息 比如它所依赖的其他jar等 我安装了maven 创建一个 samprj 目录并将 pom 文件复制到该目录中 cd 进入该目录并运行 mvn 命令而不带任何参数 但我
  • 什么是 git 边界提交

    The git log command https git scm com docs git log has a boundary选项 这会导致程序 输出排除的边界提交 但什么是边界提交 我什么时候可以将它们包含在输出中 边界提交是限制修订
  • 为什么我们需要 onUpgrade(); SQLiteOpenHelper 类中的方法

    我正在关注这个教程 http www androidhive info 2011 11 android sqlite database tutorial http www androidhive info 2011 11 android s
  • Excel 宏第一次工作,然后下次就很慢

    因此 在未共享的工作表中运行我的宏时 它工作得很好 没有任何问题 只要我共享它 通常第一次就会运行良好 但第二次需要永远运行 如果我第一次运行宏后关闭工作簿并重新打开它将再次运行良好 我尝试清除剪贴板 还尝试了使用宏清除剪贴板的另一个版本
  • dax 中选取不同值的动态总和

    以下是样本数据 Week Practice Type capacity Gen 1 BI c 80 0 1 BI c 80 1 1 BI sc 160 1 1 BI pc 240 0 1 BI pc 240 3 1 BI mc 1160 1
  • 如何在 pandas 中填充直到一天结束?

    我有一个pandas TimeSeries与日内指数 如何分别填充 前向填充 每天的 NaN 值 以这个系列为例 2013 03 27 22 07 00 04 00 1 0 2013 03 27 22 08 00 04 00 nan 201
  • 当我们从 Fragment 类调用 facebook 或 twitter 时如何处理后退按钮?

    我想从 Fragment 连接 Facebook 和 Twitter 但是当我从 Facebook 或 Twitter 返回时 应用程序已关闭 我想留在该应用程序中 我的代码在这里 Override public View onCreate
  • Java:将光标保持在某个区域

    对于玩过 Madness Interactive 的人来说 最令人沮丧的事情之一就是当光标离开游戏区域时 您不小心点击了 这会导致游戏失焦 你的角色会在几秒钟内死亡 为了解决这个问题 我想制作一个可以在后台运行的java应用程序 它将光标保
  • Tkinter 在 Windows XP 上激活窗口

    我有一个小型 GUI 应用程序 用于侦听网络消息 以便用户可以更新一些信息并接受它 这是在生产工厂环境中 用于与特定的物理硬件交互 在某些情况下通过串行 工作流程如下所示 用户正在与另一个程序交互 5250 绿屏 他们输入特定的键绑定 将
  • 来自位图源的图像的 LazyColumn 闪烁/闪烁

    我是 Jetpack Compose 的新手 我目前正在开发一个聊天应用程序 我要求用户从图库中选择图像或从相机中拍照 然后我将文件 Uri 保存到数据库中 然后监听所有消息的列表 当此列表更新时 此图像正在重新组合并闪烁 视图模型中的消息
  • 我的 PHP 脚本缓存(公共)友好吗?

    我已经完成了一个可以提供许多文档的小型 PHP 应用程序 这些文件must可由客户端缓存and代理 由于代理可以缓存我的结果 因此我必须格外小心 因为我提供的文档可以具有不同的 MIME 类型 基于 SERVER HTTP ACCEPT 的
  • arm-none-eabi 和 arm-linux-gnueabi 之间的区别?

    arm none eabi 和 arm linux gnueabi 有什么区别 我知道如何使用它们的区别 一种用于裸机软件 另一种用于在 Linux 上运行的软件 但技术背景是什么 我发现 ABI 存在差异 据我所知 它类似于 API 但在
  • Jquery mousedown 与 click

    今天我发现了一些让我很困惑的事情 我只是试图通过 jquery 隐藏 s th 首先我尝试使用这个 specificdiv li nth child 3 click function anotherdiv hide 但它不起作用 一段时间后
  • 使用 GIT 部署代码 - 签出与重置 -- 难吗?

    我需要确保服务器上的 python 部署位置之一始终与远程分支同步 并删除服务器上的任何更改 选项 1 和选项 2 有什么区别 哪一个是首选 我打算及时运行它 以确保服务器代码与远程同步 选项1 git clean f x git fetc
  • OpenMP 并行减少会产生错误的结果

    我正在使用信号矩阵 我的目标是计算一行所有元素的总和 该矩阵由以下结构表示 typedef struct matrix float data int rows int cols int leading dim matrix 我不得不提到矩阵
  • iphone,当使用“renderInContext”将图像保存到设备时,图像模糊?

    我正在使用此代码从视图中渲染图像 然后我将其保存到相册中 图像模糊 为什么 有解决办法吗 UIGraphicsBeginImageContext self view bounds size self view layer renderInC
  • Azure AD B2C 连接用户使用 Graph AD API 更改密码

    我们正在使用Azure AD B2C 我正在尝试为登录用户实现changePassword 功能 我们已经遵循了这个教程https learn microsoft com en us azure active directory b2c a