urb*_*sky 6 authentication api-key openid-connect identityserver4
我们目前的设置是
我们希望为客户(即第三方客户)提供访问受限(单独的声明集/子集)的 API。这些客户端大多是下载数据的非交互式脚本。
这意味着我们不能使用任何(偶尔)需要用户交互的流程。个人访问令牌,如在 github 中,或其他一些生成一次,需要长时间重用API 密钥或令牌。
长令牌生命周期不会是一个安全问题,因为令牌应该只允许访问少数只读 API 并且只允许访问该客户的数据 - 因此处理令牌的责任落在了客户身上。
客户应该能够根据他们的声明创建和撤销此类 API 访问令牌。一些用户可能只声称访问某些 API。
如果我们以后可以防止用户因为许可要求而对多个客户端重复使用相同的令牌,那将会很好,但这可能是一个全新的问题
我怎么能做到这一点?
我想通过自定义授权来做到这一点,类似于委托授权:用户使用应用程序,它调用 asp.net 核心 API,使用该自定义授权执行身份验证,将该令牌保留在某处(只是数据库中的一个普通表)仅限客户 api 的令牌?我不确定)并将其显示给用户 - 用户也可以稍后从存储中检索它。
我正在考虑通过我们的 API 进行“委托”身份验证,这样我们就不会将机密泄露到 Angular 应用程序中。
我认为我们应该能够通过该自定义授权获得长期访问令牌或至少刷新令牌。
我们想要一个过程,用户在我们的应用程序中生成一些东西(即通过我们的客户端),然后用户的第三方客户端可以使用这些东西来访问 API - 或者请求访问令牌然后访问 API。
我们希望此访问与用户相关联。这包括 - 残疾用户 - 锁定 - 特定索赔(例如租户)
这并不适合直接发布访问令牌的解决方案,因为即使用户被禁用或锁定,令牌仍将保持有效。这意味着我们不能使用自定义授权或IdentityServerTools直接发行代币。
因此,我们应该使用客户端凭据授权或类似的东西,因为这可能会产生新的、短期的访问令牌。
UserManager)假设写这样的资助足够安全和容易,我们应该能够涵盖我们需要的一切。当然,我可能完全忽略了一些东西:)
| 归档时间: |
|
| 查看次数: |
1506 次 |
| 最近记录: |