从0开始构建一个Oauth2Server服务 8
注册应用程序
当开发人员访问您的网站时,他们将需要一种方法来创建新的应用程序并获取凭据。通常,在他们可以创建应用程序之前,您会让他们创建一个开发者帐户,或代表他们的组织创建一个帐户。
虽然 OAuth 2.0 规范不要求您在授予凭据之前收集任何应用程序信息,但大多数服务会在发布client_id
和client_secret
. 但是,出于安全目的,您需要开发人员为应用程序注册一个或多个重定向 URL,这一点很重要。这在重定向 URL中有更详细的解释。
通常,服务会收集有关应用程序的信息,例如:
- 应用名称
- 应用程序的图标
- 应用程序主页的 URL
- 应用程序的简短描述
- 指向应用程序隐私政策的链接
- 重定向 URL 列表
下面是 GitHub 注册应用的界面。在其中,他们收集了应用程序名称、主页 URL、回调 URL 和可选描述。
最好向您的开发人员说明您从他们那里收集的信息是显示给最终用户,还是仅供内部使用。
Foursquare 的应用程序注册页面要求提供类似的信息,但他们还要求提供简短的标语和隐私政策 URL。这些在授权提示中显示给用户。
您的服务还可以让开发人员选择他们正在创建的应用程序类型(公共或机密),或者选择可能与开发人员更相关的应用程序平台描述(网络应用程序、移动应用程序、SPA 等)。您的服务应该只向机密应用程序发布客户端机密,并且也不允许对这些应用程序使用隐式授权。
如上面的屏幕截图所示,Okta 让开发人员在收集有关应用程序的信息之前选择应用程序的平台(本机、单页应用程序、Web 或服务)。根据开发人员在此处选择的值,这将决定诸如为应用程序启用哪些授权类型以及是否向应用程序颁发客户端机密等事项。