通过Azure AD v2移动应用程序对Azure AD v1 WebAPI进行身份验证

时间:2018-10-27 11:02:46

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

我们有一个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说尚未“实现”,但找不到现在是否可行。失败了,还有其他方法可以使它起作用吗?

谢谢

1 个答案:

答案 0 :(得分: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会代表发出的令牌类型。