跳到主要内容

Security Scheme 对象

定义一个用于 operations 的 security scheme。被支持的 schemes 有 HTTP 认证,一个 API key(作为 header 或 query parameter),定义于RFC6749 的 Oauth2 常用流程(implicit、password、application 和 access code)和 OpenID Connect Discovery

固定字段

字段名类型Applies To描述
typestringAny必选. security scheme 的类型。有效值包括 "apiKey", "http", "oauth2", "openIdConnect".
descriptionstringAny对 security scheme 的简短描述. CommonMark syntax可以被用来呈现富文本格式.
namestringapiKey必选. 用于 header、 query 或 cookie 的参数名字。
instringapiKey必选. API key 的位置 。有效值包括 "query""header""cookie".
schemestringhttp必选. 用于 Authorization header as defined in RFC7235 的 HTTP Auahorization scheme 的名字.
bearerFormatstringhttp ("bearer")用于提示客户端所使用的 bearer token 的格式。Bearer token 通常通过一个 authorization server 生成,所以这个字段最主要的目的是用来记录这个信息。
flowsOAuth Flows 对象oauth2必选. 一个包含所支持的 flow types 的配置信息的对象。
openIdConnectUrlstringopenIdConnect必选. 用于发现 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