使用 Windows 身份验证保护 Service Fabric 无状态 WebAPI 终结点
Securing the Service Fabric Stateless WebAPI Endpoint with Windows Authentication
我打算使用 Service Fabric 作为我的 Web 应用程序的缓存工具。
在 Service Fabric 中,我有:
- 用于存储我的缓存对象的有状态应用程序
- 无状态 WebAPI 应用程序充当其他应用程序与有状态应用程序对话的端点。 WebAPI 使用 OWIN 自托管。 (see screenshot)
两者都在同一个集群中。无状态 WebAPI 将充当暴露的端点。我的想法是让我的外部应用程序将 API 到 GET/POST/DELETE 缓存命中有状态应用程序。
我正在尝试使用 Windows 身份验证 (see screenshot) 来保护 WebAPI,因此只有我域中的用户才能调用 API。由于我没有使用 IIS,此功能甚至可能在 Service Fabric 中实现吗?我应该在 App.config 中包含其他内容吗?
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientWindowsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" connectionStringName="DefaultConnection" credentialsProvider="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" connectionStringName="DefaultConnection" />
</providers>
</roleManager>
您可以在 OWIN 中配置 windows 身份验证。阅读 this.
我打算使用 Service Fabric 作为我的 Web 应用程序的缓存工具。
在 Service Fabric 中,我有:
- 用于存储我的缓存对象的有状态应用程序
- 无状态 WebAPI 应用程序充当其他应用程序与有状态应用程序对话的端点。 WebAPI 使用 OWIN 自托管。 (see screenshot)
两者都在同一个集群中。无状态 WebAPI 将充当暴露的端点。我的想法是让我的外部应用程序将 API 到 GET/POST/DELETE 缓存命中有状态应用程序。
我正在尝试使用 Windows 身份验证 (see screenshot) 来保护 WebAPI,因此只有我域中的用户才能调用 API。由于我没有使用 IIS,此功能甚至可能在 Service Fabric 中实现吗?我应该在 App.config 中包含其他内容吗?
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientWindowsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" connectionStringName="DefaultConnection" credentialsProvider="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" connectionStringName="DefaultConnection" />
</providers>
</roleManager>
您可以在 OWIN 中配置 windows 身份验证。阅读 this.