我已按照https://github.com/AzureADSamples/WebApp-OpenIDConnect-DotNet中的指南将Azure身份验证添加到我的ASP MVC应用程序中。它的工作原理是限制只访问域中具有帐户的用户。非用户被拒绝。
但是,Azure管理站点中有一个设置允许您将用户分配给应用程序。此设置似乎没有做任何事情。域中的所有用户都可以访问站点,即使他们未分配给应用程序。
我正在寻找一种方法来选择允许哪些用户访问可以在Azure域级别管理的网站。
非常感谢任何帮助......
答案 0 :(得分:2)
确实有点令人困惑。将用户分配给应用程序的行为会导致应用程序图标(带有徽标)出现在用户的访问面板(myapps.microsoft.com)中,从而可以轻松登录到应用程序。对于某些预集成的应用程序(如salesforce和box),还会在应用程序中创建用户的配置文件。
但是,对于传统的单租户和多租户应用程序,分配用户的行为尚未阻止未分配的用户获取应用程序的令牌。这是我们计划在未来版本中(作为配置选项)向应用程序管理员提供的内容。
但是,为了满足您当前的需求,您可以(代表用户)查询在目录中分配给您的应用程序的所有用户和组,或者您可以(代表用户)查询分配的所有应用程序使用以下API向用户提供:
查询分配给应用程序的所有用户和组:
HTTP GET https://graph.windows.net/7fe877e6-a150-4992-bbfe-f517e304dfa0/servicePrincipals/7758ff7a-9c65-4779-af33-f2c2f35aec2
0/appRoleAssignedTo?api-version=1.5
其中7fe877e6-a150-4992-bbfe-f517e304dfa0是目录的tenantId(也可能是目录的域名),7758ff7a-9c65-4779-af33-f2c2f35aec2是代表的服务主体的objectId该目录中的应用程序。
查询分配了用户的所有应用
HTTP GET https://graph.windows.net/7fe877e6-a150-4992-bbfe-f517e304dfa0/users/3a477f6a-6739-4b93-84aa-3be3f8c8e7c2/appRoleAssignments?api-version=1.5
其中7fe877e6-a150-4992-bbfe-f517e304dfa0是目录的tenantId(也可能是目录的域名),而3a477f6a-6739-4b93-84aa-3be3f8c8e7c2是用户对象的objectId。 / p>
我正在使用AADGraphPowerShell来查询我的目录 - 这里是上述查询的结果:
希望这有帮助。