【问题标题】:Azure AD B2C Importing in usersAzure AD B2C 在用户中导入
【发布时间】:2023-03-28 01:45:01
【问题描述】:

我需要创建一个 B2C 目录并使用图表从旧的基于 .NET Membership 的应用程序中导入成员。

所以我跟着这个教程https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet 这表明我必须使用 Powershell 创建一个 B2C 目录。

我已采取的步骤

1) 在经典管理门户中创建一个新的全局管理员用户 2) 安装 Powershell 模块并按照教程使用全局凭据在此目录中创建应用程序。

如果我使用来自https://github.com/AzureADQuickStarts/B2C-GraphAPI-DotNet.git 的示例应用程序,我可以连接到该应用程序并可以按预期查询它。

问题

1) 我无法在租户下的 Azure(或经典)门户中的任何位置看到该应用程序?实际上,我认为我已经设法使用本教程创建了一些应用程序,但不知道它们属于哪个租户,因为我看不到它们!

2) 如果我尝试使用 quickstart webapp https://github.com/AzureADQuickStarts/B2C-WebApp-WebAPI-OpenIDConnect-DotNet 连接到同一个应用程序,我会在 Microsoft 托管页面上收到错误提示

'抱歉,我们无法让您登录。我们会跟踪这些错误 自动,但如果问题仍然存在,请随时与我们联系。在 同时,请再试一次。相关标识: XXXXXXXXXXXXXXXXXXXXXXXXXXXX 时间戳:2017-03-01 17:37:35Z AADB2C90018: 请求中指定的客户端 ID 'XXXXXXXXXXXXXXXX' 不是 在租户“http://MYTENANTB2C.onmicrosoft.com”中注册。

我也尝试了多种方法,通过 powershell 在门户中创建的目录上执行此操作,但无法到达任何地方。

您能否概述一些有关如何实现此要求的更明确的步骤,因为关于如何实现此要求的信息似乎很少。

更新...

实际上,我确实在新门户中创建了 B2C 应用程序,并使用相同的链接创建了运行良好的 Web 应用程序中的注册登录。我遇到的问题是我无法使用 Graph 快速入门应用程序连接到该目录。

我设法取得了一些进展。问题是我连接到了错误的 Azure 目录(好像我的名字下有超过 1 个“Azure 目录”,因为我有一个 Bizspark 帐户,然后 AD B2C 必须在免费试用订阅中,所以创建了另一个“ Azure 目录”。非常混乱)。

创建服务主体后,我现在可以在经典门户中找到它,也可以通过控制台使用 Get-MsolServicePrincipal | ft DisplayName, AppPrincipalId –AutoSize 这就是进步!但是我仍然无法在新门户中看到它,因此我将如何设置其他所有内容? (例如回复 url、获取访问密钥、启用 webapp/webapi/native 等)。对于图形客户端,我需要客户端密码,但我很困惑这应该是在 powershell 中生成的还是您可以在新门户中生成的密钥(我不能这样做,因为我看不到应用程序!)

对不起,这方面的新手!

【问题讨论】:

  • 为了进一步澄清,如果我尝试通过图形连接到现有的 B2C 目录,我会得到 Authorization_RequestDenied

标签: azure active-directory azure-ad-b2c


【解决方案1】:

1) 我无法在租户下的 Azure(或经典)门户中的任何位置看到该应用程序?实际上,我认为我已经设法使用本教程创建了一些应用程序,但不知道它们属于哪个租户,因为我看不到它们!

默认情况下,Azure 门户不显示那些与应用程序不关联的服务主体。但是,我们可以通过使用 AppPrincipalId 过滤应用程序来显示这些服务主体,如下图所示:

2) 如果我尝试使用 quickstart webapp https://github.com/AzureADQuickStarts/B2C-WebApp-WebAPI-OpenIDConnect-DotNet 连接到同一个应用程序,我会在 Microsoft 托管页面上收到错误提示

要构建一个接受消费者注册并使用 Azure AD B2C 应用程序登录的应用程序,我们不能为此使用在经典 Azure 管理门户上的“应用程序”选项卡中注册的应用程序(上面的 PowerShell 也不起作用) .

我们需要使用 Azure AD B2C 功能刀片来注册应用程序。我们可以通过单击更多服务然后在Azure portal 的左侧导航窗格中搜索 Azure AD B2C 来访问刀片(有关注册应用程序的详细信息,请参阅here)。下面是一个有用的链接,可将 Azure AD B2C 集成到 ASP.NET Web 应用程序中注册和登录:

Azure AD B2C: Sign-Up & Sign-In in a ASP.NET Web App

另外,如果您对 Azure 有任何想法或反馈,可以通过this forum 提交。

更新

向应用授予 Azure AD Graph 权限。

经典门户:

新门户:

【讨论】:

  • 谢谢,我根据您的帮助添加了一些我尝试过的步骤,但由于我在 Graph 客户端中看不到该应用程序,因此仍然对客户端密码的来源感到困惑和困惑新门户,从而生成密钥。
  • 如果我使用与在 powershell 中生成的相同的秘密,它肯定会连接但我得到一个身份验证错误。 "odata.error": { "code": "Authorization_RequestDenied", "message": { "lang": "en", "value": "权限不足,无法完成操作。" }
  • 秘密不会导致这个问题。您从 PowerShell 或门户设置的两个密码都应该有效。如果您通过 PowerShell 使用服务主体注册,请按照document 的建议为其分配角色。如果您从应用程序注册应用程序,我们也可以授予权限。请看帖子中的更新图。
【解决方案2】:

Microsoft 已更新 docs.microsoft.com,它允许您在 azure 门户本身中创建图形 api,但它将是在 azure AD 中创建的应用程序,而不是 B2C 应用程序。要导入用户,您需要下载https://github.com/AzureADQuickStarts/B2C-GraphAPI-DotNet 并创建一个自定义类,您可以在其中提取数据,然后调用 Program.cs 中的 CreateUser(args) 方法或使用此示例导入​​数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2018-06-25
    相关资源
    最近更新 更多