Azure AD B2C 自定义策略,保护 API 连接器

Azure AD B2C custom policies, securing an API connector

我正在使用带有自定义策略和 API 连接器的 Azure Active Directory B2C。我想在我的 API (C# .NET 4.7.2) 中保护一个特定端点,它将 return legacyUserId(这是为了将用户迁移到 Azure)。这不是最有价值的信息,但目标是确保端点不能被随意访问。我想从自定义策略和邮递员访问 API 进行测试。

The official documentation for securing the API connector does show what to do on the Azure side. But I do not know how or what to configure or add in my API. I am also not sure which method would be best to secure my API. Although it seems like certificates are the most secure?

另外,我可以结合多种方法吗?例如使用 API 密钥和客户端证书。但也许使用 API 键就足够了?

有什么建议吗?

A​​FAIK,您只能在 Azure AD B2C 中使用一种身份验证方法(证书或基本身份验证),不能组合使用多种方法。不过,一种有效的身份验证方法也应该足够了。

选择哪种身份验证方法取决于您的安全要求。互联网上的许多 API 都可以通过基本身份验证或 API 密钥访问,而很少使用客户端证书,并且仅在 API 的潜在客户端集非常有限的情况下使用(就像你的情况一样)。

另一个需要考虑的问题是 API 到目前为止是如何保护的。如果已经有 API 密钥身份验证,或者 - 更有可能 - 基本身份验证实现,您可以使用它并减少必须在 API 端进行的更改量。如果当前身份验证被证明是安全的,则任何更改都会带来不必要的副作用的风险。

在 ASP.NET Web API for .NET Framework 4.x 中实现身份验证的文档可以找到 here. Basic Auth is described in greater detail 并且该实现也可以用作起点用于实现 API 密钥身份验证,其中 API 密钥作为 header 或请求参数传输(后者可能最终出现在服务器上的日志文件中,因此 header价值是可取的)。

重要提示:API 应使用 HTTPS 托管,以便在 header 或请求参数中传输的任何信息都是加密的。