如何使用 ITfoxtec.Identity.Saml2 在不同的 .Net API 之间进行身份验证



我们有两个不同的Api在运行。一个在公共服务器上,另一个在内部,应该相互通信。我们曾经使用AzureAD和ITfoxtec.Identity.Saml2设置SAML来授权公共Api。现在,我们需要在两个Api与授权用户之间建立授权通信。

我们如何在彼此之间授权Api?

我们尝试使用HttpClient,但无法使其工作。

HttpClient client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true, });

我们如何将User和claims设置为HttpClient?

ITfoxtec.Identity.Saml2严格支持SAML 2.0,该版本仅支持web应用程序中的用户身份验证。SAML 2.0标准不支持保护API调用的安全。

为了确保API的安全,您可以在reqest中发送SAML 2.0令牌作为承载令牌,并在API中验证该令牌。

更好的选择是使用OpenIDConnect并使用访问令牌来验证API调用
您可以直接连接到Azure AD并从那里使用访问令牌。或者使用像FoxID这样的安全代理在Azure AD安全上下文和应用程序上下文之间进行转换。然后,您将使用从FoxID接收的访问令牌来保护API调用。请参阅使用访问令牌调用API示例的web应用程序示例。

最新更新