繁体   English   中英

Blazor(服务器端),具有组织/Office 365/Microsoft 帐户身份验证; 如何做本地多个角色?

[英]Blazor (Server-Side) with Organizational/Office 365/Microsoft Account Authentication; How to do Local Multiple Roles?

这里有一个类似的问题,8 个月前被问到没有回应: How do I implement Office 365 Authentication in ASP.NET Core and Blazor (Server-Client app)

我所拥有的是 Visual Studio Community 2019 中的一个新项目:

  1. 类型是 Blazor 服务器端应用程序。
  2. 我在创建项目时选择了“工作或学校”进行身份验证。 使用 Microsoft 帐户。
  3. 我选择了组织的“单租户”帐户类型。 填写我组织的域。
  4. 我去了我的 Azure 门户网站,应用程序出现在那里。 租户/客户端 ID 与 appsettings.json 中的匹配。
  5. 当我启动应用程序时,它会询问我的组织登录名,然后它会重定向到主页!

问题是所有用户都具有相同的访问级别。

我要创建的是一个页面(对管理员可见),我可以在其中:

  1. 通过搜索活动目录添加组织用户。
  2. 分配角色(存储在我的本地数据库中)。

我的问题是:

  • 如何从我的应用程序中为 o365 用户分配角色? scope 是我的应用程序,因此只能存储在本地数据库中。
  • 如果上述方法不可行,那么实现相同目标的替代方法是什么?

您可能可以将所有用户存储在本地数据库中,如果您正在开发多租户应用程序或将由其他公司等使用的应用程序,那么我可能会 go 以本地数据库等方式进行路由,如果它只是为了您的组织,并且您可以访问 aad,我将在应用程序注册清单中创建角色,然后在企业应用程序中分配它们。 方法如下: https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps

然后在 blazor 至少对于.netcore,我会用这样的东西访问它们

如果您是管理员或超级用户,您只能看到此内容。

或授权属性。 https://docs.microsoft.com/en-us/aspnet/core/security/blazor/?view=aspnetcore-3.1#role-based-and-policy-based-authorization

希望能帮助你入门,

更新

根据您的更新,您想知道是否可以在没有管理员访问权限的情况下执行此操作。 从 aad 对用户进行身份验证后,您可以添加一些代码来查询数据库,获取用户名,并根据https://visualstudiomagazine.com/articles/2019/11/01向声明主体添加角色或其他声明/授权声明.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM