如何使用Azure AD在ASP.NET(.NET 6)razor应用程序中实现SSO?

lqfhib0f  于 2023-08-08  发布在  .NET
关注(0)|答案(1)|浏览(124)

在过去的两周里,我经历了很多链接,但没有一个解决了这个问题。如果有人有任何关于如何实现这一点的想法,请在这里分享。大多数链接都是过时的,直接向上是无效的了。
我确实有一个租户设置了Azure。我的主要问题是我只想对角色等使用Identity,并且我想使用Azure AD进行身份验证(SSO)。
任何链接是有效的或.NET6剃刀应用程序或任何信息表示赞赏。
我试着按照这里的教程:https://learn.microsoft.com/en-us/azure/active-directory/develop/web-app-tutorial-03-sign-in-users?tabs=visual-studio
但它必须与API做一些事情。在我的应用程序中,我将与不同的角色一起工作。为此,我想使用身份。但是,对于主身份验证和SSO,我希望使用Azure AD。如果我尝试在代码中集成标识,则它将开始使用标识而不是Azure AD进行登录。

rryofs0p

rryofs0p1#

您可以尝试以下步骤来测试.Net 6中使用AAD进行的基于角色的身份验证。
1.打开app registeration.->new registeration.
x1c 0d1x的数据
2.填写如下并注册。



3.创建后,记住客户端ID和租户ID



4.单击应用程序角色,创建应用程序角色。在这里,您可以创建一个“清洁工”角色和一个“作家”角色。

5.在此之后,转到“Azure Active Directory”,单击“用户”,您可以在此处创建新用户

6.然后切换回“Azure Active Directory”,转到“企业应用程序”,然后单击我们刚刚注册的应用程序名称。

7.选择“用户和组”,点击“添加用户组”。2然后你可以选择你刚刚创建的用户,然后为他选择一个角色。

8.现在您可以打开visual studio。你可以创建一个项目(asp.netc核心)剃刀页模板或MVC模板。只是要注意在第二步身份验证选择'微软身份平台'。

9.in appsettings.填写我们记得的客户ID和租户ID。该域名可以在portaol AAD概述页面中找到。

1.对于角色测试,我们在Privacy.cshtml.cs中添加[Authorize(Roles = "writer")]

11.进入门户网站'Active directory'查找属性-管理安全缺陷并禁用它,否则您将需要登录验证器。

1.现在运行项目。当您登录时,会出现“重定向URL不匹配”的错误,请复制URL。转到应用程序注册-我们的应用程序-身份验证-添加平台。选择web,填写正确的URL(实际上是您的项目URL +'signin-oidc')并检查'id token'。

13.现在重新启动项目。登录您刚刚创建的用户。单击隐私。它将显示拒绝访问。

14.这是因为,我将“清洁工”角色分配给了这个用户。但是隐私页面受(roles=writer)保护。如果您在步骤7中重新分配了编写器角色。此隐私页面将正常显示。如果您设置断点来检查上下文。登录后,您可以找到具有您在Azure门户中设置的用户角色的用户声明。

参考:https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-apps

相关问题