0

我有一个位于公司网络中的 .Net 核心 Web API,它是一个独立的服务,将被网络中的其他应用程序使用。Web API 非常简单,端点很少。但是,我想限制对此 Web API 的访问。仅允许给定的应用程序集访问此 Web API。在我们公司内部,我们有充当身份提供者服务器的身份验证和授权服务,我们必须使用此服务来获取访问令牌等。我们不能创建自己的身份服务器来生成令牌。在我们的设计阶段,我们确定使用 PKCE 的授权代码流将是一个理想的实现。

我们的身份提供者已经登录了一个测试客户端 ID 并使用 PKCE 配置了身份验证代码流,之后当我配置 .net 核心 web api 时,我意识到我们需要为用户登录提供一个重定向 url,这是一个混淆点,因为这是一个 web api,没有登录页面。我想说的是,当我们在 Auth Code 流程的第一步中获取授权代码时,我不清楚重定向将如何工作,因为没有登录页面可以在 Web API 中重定向,我的意思是在获取身份验证代码时,必须提供重定向 uri,用户将在其中输入用户 ID 并通过,但这是一个 Web API,没有用户/密码,只有另一个客户端应用程序正在尝试使用客户端 ID 访问。所以我的问题是如何在 Web API 环境中使用 OIDC PKCE,我确信这是可能的,但我没有找到任何相关文件。任何 .Net 核心代码示例将不胜感激。不,我们不能使用 Client Secret 或隐式工作流。

期待您的回复。

谢谢你。

4

1 回答 1

0

为什么不直接使用通过 PKCE 流从客户端获得的不记名令牌并在 API 上验证它作为身份验证中间件的一部分来进行身份验证?

于 2021-01-30T09:42:30.837 回答