我们正在构建Xamarin Native移动应用程序并使用Azure AD B2C使用其社交登录对用户进行身份验证。
我们决定使用MSAL本机库(Xamarin)进行使用B2C进行身份验证。我们的移动应用程序需要管理(完全访问)已登录的用户配置文件。由于此功能在MSAL中不可用,因此我们暂时决定使用ADAL。按照下面链接中提供的说明进行操作。但我开始尝试删除应用程序中提供的API访问权限(在b2c租户中创建),并使用" 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
任何想法为什么会这样。我想在xamarin.ios应用程序上实现这一点以及任何非常感谢的指导。
答案 0 :(得分:1)
对此的回答与您对其他问题的答案非常相似:Exception access Azure AD B2C using ADAL library for user management,可以概括为:
Azure AD B2C尚不支持Azure AD或Microsoft Graph的委派权限。此时解决此限制的正确方法是让您的本机客户端应用程序调用Web API(使用MSAL),它将依次调用Graph API(使用ADAL)。此Web API是您构建的API,具有用于管理用户管理操作的授权逻辑。
通过Microsoft Graph支持Azure AD B2C中的用户管理后,您将不再需要此API,并且能够使用委派的权限(使用客户端凭据的应用程序权限)直接与您的本机客户端应用程序通信到Microsoft Graph。在此期间,您必须按照上述指南站出自己的Web API。
更新:Azure AD v2.0端点和Microsoft Graph API现在支持客户端凭据流,因此您还可以将MSAL用于Microsoft Graph API调用。但是,如果需要调用Azure AD Graph,则仍需要使用ADAL。