我构建了一个Azure WebAPI。我在首次创建时没有使用身份验证创建项目。我基于Microsoft的代码示例添加了Active Directory身份验证。它利用了我从NuGet获得的Microsoft.IdentityModel.Clients.ActiveDirectory。效果很好。
然后我从VS 2017创建了一个WebAPI,并在项目创建时选择了身份验证(使用AD)。它包括Microsoft.AspNetCore.Authentication.AzureAD.UI。
我不确定这两个NuGet模块之间的区别,也不确定哪个更适合我的Azure WebAPI。
然后是在.NET WPF客户端中使用的模块。 Microsoft.AspNetCore.Authentication.AzureAD.UI中没有AuthorizationContext类(和其他类)。我应该坚持使用.NET WPF客户端中的Microsoft.IdentityModel.Clients.ActiveDirectory还是Microsoft.AspNetCore.Authentication.AzureAD.UI中的等效项?
答案 0 :(得分:0)
对于您的Web api项目,答案是它取决于您要在Web api中尝试执行的操作。对于大多数只需要读取/验证令牌的简单方案,最好使用添加的Microsoft.AspNetCore.Aurthentication.JwtBearer nuget包。 this SO post
尽管对于WPF客户端应用程序,您没有太多选择。您将需要根据要使用的AD版本/端点使用ADAL或MSAL。另外,在WPF客户端的情况下,您很有可能需要从Azure AD获取令牌,因此内部操作(该库将在后台进行处理,例如authenticationContext.AcquireTokenAsync)将比仅读取提供的内容多一些。来自标头的令牌,因此也包含包。