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 键就足够了?
有什么建议吗?
AFAIK,您只能在 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 或请求参数中传输的任何信息都是加密的。
我正在使用带有自定义策略和 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 键就足够了?
有什么建议吗?
AFAIK,您只能在 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 或请求参数中传输的任何信息都是加密的。