azure - 如何在 ADFS 上使用 openid 对同步用户进行身份验证?
问题描述
我有以下情况:
使用Azure AD Connect
. azure 门户登录与此本地 AD 联合。我需要允许这些同步用户使用 oauth2 令牌端点在移动应用程序中进行身份验证https://login.microsoftonline.com/tenantid.onmicrosoft.com/oauth2/v2.0/token
。为了实现这一点,我在 上注册了一个应用程序App Registrations
,它对使用 Azure 门户创建的用户运行良好,但它不适用于同步的本地用户。这里的问题是因为只有用户名被同步,没有密码。因此,当我在此端点上发帖时,我收到错误消息,提示用户名或密码错误。
所以我被困在这里我需要配置什么才能完成这项工作,我已经阅读了很多 Microsoft 文档,但无法弄清楚如何做到这一点。
解决方案
您正在使用的身份验证流程(资源所有者密码凭据)与联合用户存在问题。它有时会起作用,尽管我不太清楚为什么。
您的应用应使用基于重定向的身份验证流程,例如门户。它不应该处理用户密码并将其发布到 Azure AD。通过使用例如授权码流程,您的用户可以使用本地帐户/联合帐户/Microsoft 帐户/具有多重身份验证的帐户/重置过期密码登录。您的应用程序不需要关心用户必须做什么来进行身份验证。
例如,使用 ROPC 流程,您的用户无法使用多因素身份验证。他们也无法重置过期的密码。
有关为什么要避免 ROPC 的更多想法,请参阅我的文章:https ://joonasw.net/view/ropc-grant-flow-in-azure-ad
推荐阅读
- asp.net-core - 卡在不显眼的客户端验证中
- sql-server - 使用子查询插入多行
- azure-devops - 在公共扩展中重命名已发布的任务
- flutter - 小部件中的颤振相机预览,而不是全屏
- webpack - Babel 使用箭头函数创建 IIFE
- c - 双指针字符数组的 Strncpy 问题
- javascript - JavaScript卡片翻转:卡片背面数据在卡片之外
- python - 在 Windows 上使用 Anaconda 设置 Hydrogen 和 Atom
- flutter - 是否有支持水平滚动的 BottomNavigationBar 类型的小部件
- python - 根据多个 groupby 计算总和