我们有一个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说尚未“实现”,但找不到现在是否可行。失败了,还有其他方法可以使它起作用吗?
谢谢
答案 0 :(得分:1)
这应该可行。随着最近的更改,v1
或v2
客户端应用程序不再具有差异,它们的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会代表发出的令牌类型。