【问题标题】:Authenticate Azure AD v1 WebAPI from Azure AD v2 mobile app从 Azure AD v2 移动应用验证 Azure AD v1 WebAPI
【发布时间】:2019-03-31 22:52:37
【问题描述】:

我们有一个 Xamarin 表单移动应用程序,其中用户通过 AAD v2 端点 (MSAL - Microsoft.Identity.Client) 进行身份验证,还有一个 ASP.NET Web API 应用程序,其中相同的用户通过 AAD v1 端点 (ADAL - Microsoft. IdentityModel.Clients.ActiveDirectory)。

我们希望通过移动应用程序在 Web API 中对 REST 调用进行身份验证。我们已尝试传递 v2 身份验证令牌,但将 InvalidAuthenticationToken 返回给我们。

首先不确定它是否真的可能。 This MS presentation from 2017 表示它“尚未”实施,但无法找到现在是否可行。如果做不到这一点,还有其他方法可以让它工作吗?

谢谢

【问题讨论】:

    标签: xamarin asp.net-web-api azure-active-directory adal msal


    【解决方案1】:

    背景

    这应该是可能的。随着最近的变化,v1v2 客户端应用程序不再有区别,而是他们请求访问的 API 的目标“受众”(例如我的租户、所有租户、Azure AD + MSA) .

    快速示例

    除此之外,还有令牌版本的概念。但是,令牌的版本是 API 的版本,而不是客户端应用程序的版本。例如,

    客户端 A:仅针对 Azure AD(正式映射到 v1 应用程序)

    客户端 B:以 Azure AD + MSA 为目标(正式映射到 v2 应用程序)

    API:接受 Azure AD + MSA(正式映射到 v2 app

    在这种情况下,发给客户端 A 和客户端 B 的访问令牌将是 API-v2.0 令牌可以理解的格式。

    结论

    在您的情况下,您可以根据您希望允许访问的用户类型注册每个客户端,但最终您的 API 将代表颁发的令牌类型。

    【讨论】:

    • 如果您没有看到我描述的行为或想要连接的行为,我的电子邮件位于我的 stackoverflow 配置文件中。欢迎随时与我们联系。
    • Daniel Dobalian,这是很好的信息。我也很欣赏您快速有效的示例的简单性。如果有任何正式的 MS 文档甚至博客,您可以推荐阅读并尝试更多有关此主题的内容。
    猜你喜欢
    • 2016-09-08
    • 2016-04-23
    • 2018-03-09
    • 2018-08-23
    • 1970-01-01
    • 2017-10-14
    • 2020-08-26
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多