我能够为我的.netcore MVC应用程序+reactjs(计费应用程序)进行身份验证和授权 该应用程序将托管在 IIS 上,并在计划托管 .netcore Webapi 的同一台服务器上 (图表应用)。
通过使用计费应用程序,我们将调用图表 WebApis。现在WebApi 应该根据前端应用程序发送的 token 对用户进行身份验证/授权(基于 token 的 webapi 进行身份验证/授权,不再弹出登录窗口)
能够使用 postman-see img 生成 token 通过请求以下链接
https://login.microsoftonline.com/ {{tenandId}}/oauth2/token
将将此 token 与 header 发送到 Web-API,该 API 将具有与计费应用程序相同的 Azure AD 应用程序配置(客户端 ID、范围等)。 API 应验证 token 并发送图表数据。
- 应该在reactjs中尝试adal/msal并用Authorize属性装饰WebApis以便处理身份验证和授权吗?
有很多链接,但很少有代码不起作用,很少有进程不再适用于 Azure,很少有代码庞大,但不是我想要的。
基本上,我将在 .netcore 中托管一个执行身份验证部分的应用程序,现在 WebApi 也应该使用相同的用户 cookie/ token 进行身份验证,因为我不想提供另一个登录弹出窗口,请参阅很多 MS 示例代码,但没有运气
哪种方法是正确的 1 或 2,并分享示例代码/链接任何赞赏的帮助,
最佳答案
根据我的理解,您有一个名为 Billing App 的客户端应用程序将登录用户并通过基于用户的访问 token 调用 API。 如果是这样,您应该注册两个应用程序,一个用于计费应用程序的客户端应用程序和一个服务端应用程序。对于客户端应用程序,因为这是客户端,您应该使用用户的凭据从 Azure AD 获取而不是应用程序客户端 secret 。要实现此目的,您应该将其配置为 Azure AD 上的公共(public)客户端并启用访问 token 和 ID token :
当您想要获取服务端应用程序的调用API时,您应该授予以下权限,以确保用户可以通过您的客户端应用程序获取访问 token (假设这里的“stanapitest”是服务端应用程序): 请注意,请点击授予 Devchat 管理员同意按钮来完成权限授予流程。 完成此过程后,您可以通过密码流获取基于用户的访问 token :
或OAuth2 grant code flow或 Oauth2 隐式授权流程,当然根据您的要求。
好了,服务端到了,演示 .net core Api ,让我们在 VS 中创建一个简单的 .net core Api 项目:
运行该项目并调用它的API,您可以看到它已受到Azure AD的保护:
正如你所看到的,它的工作原理是 excepted 。希望能帮助到你 。如果您还有任何疑问,请随时告诉我。
关于c# - 如何使用 C# WEB API(基于 token ).net core 对 Azure AD 应用程序进行身份验证和授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59017343/