使用 AD Graph API 从 Azure AD B2C 管理用户 - 安全访问

Manage user from Azure AD B2C using AD Graph API - secure access

我们正在构建 Xamarin Native 移动应用程序并使用 Azure AD B2C 对使用社交登录的用户进行身份验证。

我们决定使用 MSAL 本机库 (Xamarin) 使用 B2C 进行身份验证。我们的移动应用程序需要管理(完全访问)登录的用户个人资料。由于此功能在 MSAL 中不可用,我们决定暂时使用 ADAL。按照下面 link 中提供的说明进行操作,示例工作。但是我开始尝试删除应用程序(在 b2c 租户中创建)中提供的 API 访问权限和带有 "Get-user" 参数的 运行 应用程序。并且该应用程序仍然能够从 AD 中获取用户。不确定这件事有多安全?

然后从 B2c 租户应用程序和 运行 控制台应用程序示例中删除了应用程序密钥。并收到错误 AADSTS70002: Error validating credentials. AADSTS50012: Invalid client secret is provided. Trace ID: cef09957-06bf-462e-a0c3-4ed6bae11e00 Correlation ID: afab126d-8694-479a-8a21-c12eb7cb176c

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet

知道为什么会这样。我想在 xamarin.ios 应用程序上实现它,非常感谢任何指导。

这个问题的答案与你另一个问题的答案非常相似:,可以概括为:

Azure AD B2C 尚不支持对 Azure AD 或 Microsoft Graph 的委派权限。 目前解决此限制的正确方法是 让您的本机客户端应用程序调用 Web API(使用 MSAL),后者又会调用图形 API(使用 ADAL)。此网站 API 是您构建的 API,它具有授权逻辑来确定用户管理操作的范围。

一旦通过 Microsoft Graph 支持 Azure AD B2C 中的用户管理,您将不需要此 API 并且将能够使用委派权限(与使用客户端凭据的应用程序权限相比)让您的原生客户端应用程序直接与 Microsoft Graph 对话。在此期间,您必须按照上述指南建立自己的网站 API。

更新: Azure AD v2.0 端点和 Microsoft Graph API 现在支持客户端凭据流,因此您还可以将 MSAL 用于您的 Microsoft Graph API 电话。但是,如果您需要调用 Azure AD Graph,那么您仍然需要使用 ADAL。