我有一个由 Azure AD B2C 调用的 rest api(通过自定义策略中的技术配置文件)。我需要保护 api。但由于 Azure BEFORE Authentication 调用它(基本上它只需要检查电子邮件是否已存在于数据库中或不在登录流程中),它没有 Authorize 属性。我有 ClientCertificate AuthenticationType,在技术配置文件的元数据中为此 REST API 的自定义策略中配置,遵循本文档 https://docs.microsoft.com/en-us/azure/active-directory-b2c/secure-rest -api
所以基本上我的元数据看起来像这样:
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">ClientCertificate</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
</CryptographicKeys>
但是当我从浏览器调用rest api时,它仍然可以访问。我不确定我是否遗漏了什么,但这个过程不是应该保护你的 api,所以只有 Azure 可以调用它吗?