Security Scheme 对象
定义一个用于 operations 的 security scheme。被支持的 schemes 有 HTTP 认证,一个 API key(作为 header 或 query parameter),定义于RFC6749 的 Oauth2 常用流程(implicit、password、application 和 access code)和 OpenID Connect Discovery。
固定字段
字段名 | 类型 | Applies To | 描述 |
---|---|---|---|
type | string | Any | 必选. security scheme 的类型。有效值包括 "apiKey" , "http" , "oauth2" , "openIdConnect" . |
description | string | Any | 对 security scheme 的简短描述. CommonMark syntax可以被用来呈现富文本格式. |
name | string | apiKey | 必选. 用于 header、 query 或 cookie 的参数名字。 |
in | string | apiKey | 必选. API key 的位置 。有效值包括 "query" 、"header" 或 "cookie" . |
scheme | string | http | 必选. 用于 Authorization header as defined in RFC7235 的 HTTP Auahorization scheme 的名字. |
bearerFormat | string | http ("bearer" ) | 用于提示客户端所使用的 bearer token 的格式。Bearer token 通常通过一个 authorization server 生成,所以这个字段最主要的目的是用来记录这个信息。 |
flows | OAuth Flows 对象 | oauth2 | 必选. 一个包含所支持的 flow types 的配置信息的对象。 |
openIdConnectUrl | string | openIdConnect | 必选. 用于发现 OAuth2 配置值的 OpenId Connect URL,必须是 URL 形式。 |
这个对象可能会被规范扩展扩展。
Security Scheme 对象示例
Basic Authentication Sample
{
"type": "http",
"scheme": "basic"
}
type: http
scheme: basic
API Key Sample
{
"type": "apiKey",
"name": "api_key",
"in": "header"
}
type: apiKey
name: api_key
in: header
JWT Bearer Sample
{
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
type: http
scheme: bearer
bearerFormat: JWT
Implicit OAuth2 Sample
{
"type": "oauth2",
"flows": {
"implicit": {
"authorizationUrl": "https://example.com/api/oauth/dialog",
"scopes": {
"write:pets": "modify pets in your account",
"read:pets": "read your pets"
}
}
}
}
type: oauth2
flows:
implicit:
authorizationUrl: https://example.com/api/oauth/dialog
scopes:
write:pets: modify pets in your account
read:pets: read your pets