The*_*Cat 2 authentication nancy owin katana azure-active-directory
您好我已阅读并实施了这些Vittorio Bertocci教程:
"使用Windows Azure AD和Microsoft OWIN组件保护ASP.NET Web API"
"使用Microsoft.Owin.Security.ActiveDirectory保护自托管API"
然而,与教程不同,我的Web应用程序由以下OWIN组件组成:NancyFx和ASP.NET Web API(遵循此处所述的体系结构模式)当我尝试将AAD身份验证(如Bertocci先生在其教程中所做的)实现到我的身份时NancyFx模块(用于验证访问需要身份验证的路由的用户):
我收到以下错误
附加信息:加载交互式用户身份验证所需的程序集失败.确保程序集"Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"存在.
显然,弹出的要求用户登录的AAD对话框依赖于WindowsForms,不应该从Web应用程序调用.
我应该使用什么AAD凭证提示?如何在Web应用程序客户端中实现AAD身份验证?
我对您尝试实现的场景的理解是您有以下actor:
浏览器 - > Web应用程序 - > Web API
浏览器向Web应用程序验证用户的身份,然后Web应用程序尝试获取一个令牌,允许它代表用户访问Web API上的资源.
在这种情况下,您的Web应用程序将需要将浏览器重定向到AAD OAuth 2.0授权端点.在那里,用户将输入他们的凭证,并使用授权代码重定向回Web应用程序.然后,您可以使用该授权代码通过Active Directory身份验证库(ADAL)获取令牌.具体来说,您将使用AuthenticationContext.AcquireTokenByAuthorizationCode方法.Vittorio的以下博客文章提供了有关您需要在Web应用程序中实现的代码的更多详细信息,以获取令牌.它不是OWIN特定的实现,但应该很容易转换为您的NancyFx应用程序.
使用ADAL的AcquireTokenByAuthorizationCode从Web应用程序调用Web API
您不必更改根据"使用Microsoft.Owin.Security.ActiveDirectory保护自托管API"实现的ASP.NET Web API
在Protecting a Hosted API ...博客条目中的客户端应用示例中使用的AuthenticationContext.AcquireToken版本适用于不涉及浏览器的不同场景.相反,用户正在与桌面应用程序进行交互,然后桌面应用程序代表用户调用Web API.在这种情况下,AcquireToken调用必须显示基于浏览器的对话框,以允许用户登录并获取适当的令牌.
| 归档时间: |
|
| 查看次数: |
3601 次 |
| 最近记录: |