【问题标题】:How to Integrate existing Azure AD B2C into a Xamarin forms app using MSAL?如何使用 MSAL 将现有 Azure AD B2C 集成到 Xamarin 表单应用程序中?
【发布时间】:2020-11-20 21:26:01
【问题描述】:

我对@9​​87654321@ 有点困惑,所以我希望在我的案例中得到一些更清晰的指导。

假设有一个现有的 Web 应用程序(Angular + .Net Core),我正在为它开发移动版本(Xamarin.Forms)。 Web 端和移动端将共享相同的 API 后端,用于用户认证和其他服务。

所以有一个现有的租户和相关信息(tenantName、tenantID、AppID、RedirectURL、策略等),redirectURL 是用于授权的(https://.../authorize)。

起初我以为我可以直接使用这些信息。我尝试使用code sample 并替换了tenantName、tenantID ...当我单击登录按钮时,它首先向我显示了这个错误:

然后它引导我进入登录页面。最后,我在模拟器中登录了 Web 应用程序。

我觉得我应该在同一个租户下注册移动应用程序。如果我想帮助当前的Web用户登录移动版,如何正确集成现有的Azure B2C进行身份验证?任何点击将不胜感激。提前致谢。

更新: 我停留在令牌部分。我已经启用了隐式授权。我使用了示例代码并在示例中添加了范围:

【问题讨论】:

  • 通过将注册应用的客户端类型更改为公共并在身份验证页面下的移动部分添加重定向 URI 来使其工作。但是AuthenticationResult不包含accessToken,它只有idToken,有参考吗?

标签: azure authentication xamarin.forms azure-active-directory


【解决方案1】:

Register a web application时,请注意第9步之后的内容。

应用程序注册完成后,启用隐式 授权流程:

  1. 在左侧菜单的“管理”下,选择“身份验证”。
  2. 在隐式授权下,同时选择 访问令牌ID 令牌 复选框。
  3. 选择保存。

选择访问令牌将为您提供访问令牌。

【讨论】:

  • 那是有线的。我已经启用了它。你能看看我的更新吗?结果中既不包含tenantId 也不包含访问令牌。
【解决方案2】:

好的,最终在AuthenticationResult中获取访问令牌。我就是这样处理的。

我们定义了一个范围后,我们需要配置权限。

进入已注册的应用,将其添加到已配置的权限列表中:

之后我调试的时候就可以看到结果中的accessToken了。

【讨论】:

  • 很高兴知道这个问题已经解决。您可以将您的答案标记为接受,以便其他人可以轻松找到此帖子。
猜你喜欢
  • 2017-02-24
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多