带有 PKCE 帮助的授权流程.. 对于原生移动后端 restful api asp.net core C#

问题描述

我目前正在与我们的外部应用程序开发人员一起构建一个 API。我已经读过 PKCE 的授权流程绝对是我们进行此设置所需要的,但我正在寻找一些更详细的建议。

我们现有的 api 使用隐式流,应用程序将凭据 + 机密等发送到 api 中的 /Token 端点,然后查找传入的数据并与我们的用户表进行比较。如果通过,则访问令牌将返回给应用程序。

对于这个新流程,我有以下问题......

  1. 我是否必须使用 Okta 门户/仪表板并在那里设置 api?
  2. 是否所有应用用户都必须存储在 Okta 仪表板中?我们通常管理我们自己的用户表,我们从自定义工具添加用户。但是我假设在使用 Okta 时,我们的自定义工具需要调用 Okta api 端点并从那里注册用户,然后获取用户 Okta ID 并将其存储在我们自己的表中。 **有人有我如何从 C# Wpf 应用程序执行此操作的示例吗?
  3. 然后我是否需要向应用程序开发人员请求重定向 URL,并将它们设置为 Okta 仪表板中的本机应用程序。假设我需要给他们一些设置值来阻止他们的结束,以便他们在授权时调用 Okta。
  4. OpenID????如果需要,我需要它吗?如何以及在何处实施?

我已经阅读了很多教程,但还没有完全找到合适的。

非常感谢

解决方法

  1. 您需要访问 Okta 管理控制台才能注册客户端应用程序。完成后,您可以使用 Okta OIDC API 的:https://developer.okta.com/docs/reference/api/oidc/。 您可以使用 Okta SDK 来简化开发过程。例如:https://github.com/okta/okta-oidc-ios
  2. 如果 Okta 将成为授权服务器,用户及其凭据将需要存在于 Okta 中
  3. 在 Okta 管理控制台中创建本机应用程序时,您需要提供将列入白名单的重定向 URI
  4. OpenID Connect 1.0 是 OAuth 2.0 协议之上的一个简单身份层。它允许客户端根据授权服务器执行的身份验证来验证最终用户的身份,并以可互操作和类似 REST 的方式获取有关最终​​用户的基本配置文件信息。当您在 Okta 中创建本机应用程序时,将成为 OIDC 应用程序。