0
我正在使用OAuth来保护一些Web服务。 OAuth 2非常适合用户使用API访问他/她自己的数据的用例,或者授予他人访问权限以代表他调用API的用例。手动生成OAuth访问令牌
但是,最初的一组API用户并不是非常技术性的,他们不希望为了生成令牌而进行API调用。我正在考虑实施以下解决方案,但不确定这是否正确。
如果用户是一个开发人员,那么
- 有一个屏幕,在这里,他/她可以注册申请。这将生成一个API密钥/秘密对。
- 要访问他/她自己的数据(对于双腿Auth),有一个UI屏幕,用户可以在其中为其注册的应用程序生成一个访问令牌。他可以在表格中指定范围和持续时间。
- 如果他是第三方开发人员,那么他需要将他的应用程序API密钥传递给他需要访问API并获得访问令牌的人员。
如果用户想要另一个应用程序/开发者访问代表他的API,然后
- 有一个屏幕,在那里他可以进入第三方的API密钥,范围和授权的持续时间。他可以通过生成的访问令牌谁就会访问开发者的API的
我将使用相同的OAuth库来产生,我会用,如果我走了Web服务的路线令牌。此外,我还可以在目前的情况没有扩大或需求出现时开发服务,现有的代币仍然可以工作。
当然,如果仅仅不提供令牌过期的选项,并且无论它在自然流程中如何,都可以解决这个问题。我试图采用这种方法的全部原因是因为客户不想通过编写代码(或不能仅仅用于OAuth)。此外,我的API将在HTTPS上,因此获取访问令牌并不是微不足道的。不知道我理解你的观点,即有人可以访问客户端ID和访问令牌,因为如果发生这种情况,我会被拧紧,而不管我采取什么方法。 – anfab
只要你有代码照顾Oauth,HTTPS就很好。但是一旦你编写了本手册,你就不能依赖开发人员来确保他只在正确的地方使用它。它可能通过电子邮件进行交换,聊天,发布便笺以及不可以。在生成的访问令牌上添加了无效期限,这只会增加随着时间的推移而发生的一些可能性。 – s1d