1

我有一个由 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 可以调用它吗?

4

1 回答 1

0

REST API 相互需要使用客户端证书进行身份验证。自定义策略中的配置客户端证书也需要在 REST API 附近进行验证。

您可以在Azure API 管理中使用客户端证书身份验证来保护后端服务,也可以在代码 中配置客户端证书身份验证

于 2020-05-14T19:03:09.190 回答