【问题标题】:Confused about Xamarin Forms auth to AAD对 Xamarin Forms 到 AAD 的身份验证感到困惑
【发布时间】:2018-02-24 23:49:55
【问题描述】:

我已经在 Azure 中创建了一个移动应用程序用于我的 XF 应用程序,这已经在我的 AAD 中创建了一个应用程序,我现在正在阅读以下内容以尝试使我的 XF 应用程序对我创建的那个 Azure 应用程序进行身份验证

XF and AAD Auth

还有这个

Auth Azure API

这告诉我要创建一个本地类型的新应用程序,这让我有点困惑,这是否意味着我在 Azure 中需要 2 个应用程序?一个用于后端,一个用于移动身份验证?在使用 Azure 的移动应用程序部分中的配置选项时,似乎很难找到一个直截了当的文档来正确描述这一点。

任何指针都会很有帮助

【问题讨论】:

    标签: azure xamarin.forms azure-mobile-services


    【解决方案1】:

    您需要 Azure AD 中的两个应用程序。

    • 本机应用(Xamarin 应用)
    • Web/API(您的后端 API)

    然后,您的原生应用应该需要调用 API 的权限。因此,将其添加到所需的权限中。

    您还可以将本机应用程序添加为 API 的已知客户端。 这可以通过在 Azure AD 中找到 API 的应用程序,单击 Manifest,然后在其中添加应用程序 ID/客户端 ID 本机应用程序来完成,这样knownClientApplications 属性就会如下所示: p>

    "knownClientApplications":[
      "your-native-app-client-id"
    ]
    

    这样做的意义在于,现在当用户登录时,他们可以同时同意这两个应用程序。

    然后,您的原生应用应使用 ADAL 为您的 API 获取访问令牌。 当然,您也可以从您的原生应用中调用其他 API,例如 MS Graph API。

    您实际上可以在此处找到示例应用程序:https://github.com/Azure-Samples/active-directory-dotnet-native-multitarget

    重要的一行是here:

    authResult = await authContext.AcquireTokenAsync(graphResourceUri, clientId, returnUri, parent);
    

    资源 URI 很重要。它向 AAD 指定要调用的 API。对于 Azure AD Graph API,它是 https://graph.windows.net。对于 MS Graph API,它是https://graph.microsoft.com。对于后端 API,您可以使用 API 应用程序属性中的应用程序 ID/客户端 ID 或应用程序 ID URI。

    这里调用的Client Id当然应该是你原生应用的Application Id/Client Id。

    您可以查看自述文件中有关如何注册本机应用程序的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2020-11-09
      相关资源
      最近更新 更多