我在 azure 上拥有一个私有(private) Web 应用程序,我希望它只能供特定用户访问,这些用户可以使用任何身份验证提供商(例如 Azure AD 的 Google、Facebook)登录。
如何将其设为仅供预定义用户使用的私有(private)应用程序?
目前我选择的解决方案:
- 对于我的网络应用程序,将身份验证/授权部分设置为仅允许经过身份验证的用户(所有用户)
- 维护授权用户电子邮件列表
- 对于每个请求,我都会检查 header
X-MS-CLIENT-PRINCIPAL-NAME
并查看它是否是我的“预定义用户”之一。如果不是,则返回forbidden
我猜正确的路径是 Azure AD,也许还可以分配角色
最佳答案
您可以使用站点根目录下的 web.config 文件来限制特定用户。您可以检查下面的示例,
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow users="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="accdcecfeceacdcfc9cec3c3c782cfc3c1" rel="noreferrer noopener nofollow">[email protected]</a>, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="97f3f2f1d7f0faf6fefbb9f4f8fa" rel="noreferrer noopener nofollow">[email protected]</a>"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
此外,您还可以使用 KUDU 控制台 ( http://your-app-url.scm.azurewebsites.net ) 添加和编辑文件。
如果您想使用 Azure AD 进行身份验证,可以按照以下步骤操作, Azure Active Directory 设置边栏选项卡中,您可以选择“快速管理模式”并创建新的 AD 应用程序来配置谁能够访问我们的 Web 应用程序。 单击“保存”后,尝试通过隐身窗口访问您的 Web 应用程序(无 session 和 Cookie),您将被重定向到登录表单。 要访问您的应用程序,您需要使用已在 Azure Active Directory 应用程序“NotPublicWebApp”中声明的帐户登录。 要管理 Web 应用程序中的访问权限,您需要单击 Active Directory 服务,该服务会将您重定向到旧门户。 您可以在其中向 Active Directory 添加更多用户,同时从“应用程序”选项卡中您可以管理用户对应用程序的访问。 更多信息,您可以引用这篇文章:https://ppolyzos.com/2016/08/19/restrict-access-to-your-azure-websites-using-authenticationauthorization/ 。
关于azure - 仅授权特定用户使用 azure webapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842053/