基本身份验证
基本身份验证是内置于 HTTP 协议中的一种简单的身份验证方案。客户端发送带有 Authorization
标头的 HTTP 请求,其中包含单词 Basic
,后跟一个空格和一个 base64 编码的字符串 username:password
。例如,要以 demo / p@55w0rd
的身份进行授权,客户端将发送
1Authorization: Basic ZGVtbzpwQDU1dzByZA==
注意: 由于 base64 很容易解码,因此基本身份验证应与其他安全机制(如 HTTPS/SSL)一起使用。
描述基本身份验证
使用 OpenAPI 3.0,您可以如下描述基本身份验证
1openapi: 3.0.02---3components:4 securitySchemes:5 basicAuth: # <-- arbitrary name for the security scheme6 type: http7 scheme: basic8
9security:10 - basicAuth: [] # <-- use the same name here
第一部分 securitySchemes
定义了一个名为 basicAuth(任意名称)的安全方案。此方案必须具有 type: http
和 scheme: basic
。然后,security
部分将基本身份验证应用于整个 API。方括号 []
表示使用的安全范围;由于基本身份验证不使用范围,因此该列表为空。security
可以全局设置(如上面的示例中所示),也可以在操作级别设置。如果只有部分操作需要基本身份验证,后者很有用
1paths:2 /something:3 get:4 security:5 - basicAuth: []
基本身份验证还可以与其他身份验证方法结合使用,如使用多种身份验证类型中所述。
401 响应
您还可以定义为缺少或不正确的凭据而返回的 401“未授权”响应。此响应包括 WWW-Authenticate
标头,您可能需要提及。与其他常见响应一样,401 响应可以在全局 components/responses
部分中定义,并通过 $ref
在其他地方引用。
1paths:2 /something:3 get:4 ...5 responses:6 ...7 '401':8 $ref: '#/components/responses/UnauthorizedError'9 post:10 ...11 responses:12 ...13 '401':14 $ref: '#/components/responses/UnauthorizedError'15...16components:17 responses:18 UnauthorizedError:19 description: Authentication information is missing or invalid20 headers:21 WWW_Authenticate:22 schema:23 type: string
要了解有关 responses
语法的更多信息,请参阅描述响应。