OAuth2

使用OAuth2中间件来保护HTTP端点的安全

The OAuth2 HTTP middleware enables the OAuth2 Authorization Code flow on a Web API without modifying the application. 这种设计将认证/授权的关注点从应用中分离出来,因此应用操作者可以采用和配置认证/授权提供者,而不影响应用代码。

配置

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: oauth2
  5. spec:
  6. type: middleware.http.oauth2
  7. version: v1
  8. metadata:
  9. - name: clientId
  10. value: "<your client ID>"
  11. - name: clientSecret
  12. value: "<your client secret>"
  13. - name: scopes
  14. value: "https://www.googleapis.com/auth/userinfo.email"
  15. - name: authURL
  16. value: "https://accounts.google.com/o/oauth2/v2/auth"
  17. - name: tokenURL
  18. value: "https://accounts.google.com/o/oauth2/token"
  19. - name: redirectURL
  20. value: "http://dummy.com"
  21. - name: authHeaderName
  22. value: "authorization"
  23. - name: forceHTTPS
  24. value: "false"

元数据字段规范

字段详情Example
clientId您的应用程序的客户端ID,它是作为OAuth平台托管的凭证的一部分而创建的
clientSecret您的应用程序的客户密钥,它是作为OAuth平台托管的凭证的一部分而创建的。
scopes作用域的列表,通常用于应用程序中的授权,注意格式为空格分隔、大小写敏感的字符串https://www.googleapis.com/auth/userinfo.email
authURLOAuth2 授权服务器的端点https://accounts.google.com/o/oauth2/v2/auth
tokenURL客户端通过出示其访问许可或刷新令牌来获取access token的端点https://accounts.google.com/o/oauth2/token
redirectURL用户认证后,授权服务器应重定向到的Web应用程序的URLhttps://myapp.com
authHeaderName转发到您的应用程序的授权头名称“authorization”
forceHTTPS如果为true,强制使用TLS/SSL“true”,“false”

Dapr配置

To be applied, the middleware must be referenced in configuration. See middleware pipelines.

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Configuration
  3. metadata:
  4. name: appconfig
  5. spec:
  6. httpPipeline:
  7. handlers:
  8. - name: oauth2
  9. type: middleware.http.oauth2

相关链接