我们正在构建 Xamarin Native 移动应用程序,并使用 Azure AD B2C 通过社交登录对用户进行身份验证。
我们决定使用 MSAL native 库 (Xamarin) 进行 B2C 身份验证。我们的移动应用程序需要管理(完全访问)登录的用户配置文件。由于 MSAL 中不提供此功能,我们决定暂时使用 ADAL。按照下面链接中提供的说明和示例进行操作。但我开始尝试删除应用程序中提供的 API 访问权限(在 b2c 租户中创建),并使用“Get-user”参数运行应用程序。并且应用程序仍然能够从AD获取用户。不确定这东西有多安全?
然后从 B2c 租户应用程序中删除应用程序 key 并运行控制台应用程序示例。并收到错误 AADSTS70002:验证凭据时出错。 AADSTS50012:提供的客户端 key 无效。
跟踪 ID:cef09957-06bf-462e-a0c3-4ed6bae11e00
相关 ID:afab126d-8694-479a-8a21-c12eb7cb176c
知道为什么会发生这种情况。我想在 xamarin.ios 应用程序上实现此功能,非常感谢任何指导。
最佳答案
这个问题的答案与您其他问题的答案非常相似:Exception access Azure AD B2C using ADAL library for user management ,可以概括为:
Azure AD B2C 尚不支持向 Azure AD 或 Microsoft Graph 委派权限。目前解决此限制的正确方法是让 native 客户端应用程序调用Web API(使用 MSAL)进而调用 Graph API(使用 ADAL)。此 Web API 是您构建的 API,它具有用于限定用户管理操作范围的授权逻辑。
一旦通过 Microsoft Graph 支持 Azure AD B2C 中的用户管理,您将不需要此 API,并且能够使用委派权限(相对于使用客户端凭据的应用程序权限)让 native 客户端应用程序直接与微软图表。在此期间,您必须按照上述指南建立自己的 Web API。
更新:Azure AD v2.0 终结点和 Microsoft Graph API 现在支持客户端凭据流,因此您还可以使用 MSAL 进行 Microsoft Graph API 调用。但是,如果您需要调用 Azure AD Graph,那么您仍然需要使用 ADAL。
关于azure - 使用 AD Graph API 从 Azure AD B2C 管理用户 - 安全访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474803/