コンテンツにスキップ

基本認証

基本認証は、HTTP プロトコルに組み込まれたシンプルな認証スキームです。クライアントは、単語 Basic の後にスペースと base64 エンコードされた文字列 username:password を含む Authorization ヘッダーを持つ HTTP リクエストを送信します。たとえば、demo / p@55w0rd として認証するには、クライアントは以下を送信します。

1
Authorization: Basic ZGVtbzpwQDU1dzByZA==

注: Base64 は簡単にデコードできるため、基本認証は HTTPS/SSL などの他のセキュリティメカニズムと組み合わせてのみ使用する必要があります。

基本認証の説明

OpenAPI 3.0 を使用すると、基本認証を次のように記述できます。

1
openapi: 3.0.4
2
---
3
components:
4
securitySchemes:
5
basicAuth: # <-- arbitrary name for the security scheme
6
type: http
7
scheme: basic
8
9
security:
10
- basicAuth: [] # <-- use the same name here

最初のセクション securitySchemes は、basicAuth (任意の名前) というセキュリティスキームを定義します。このスキームは type: httpscheme: basic を持つ必要があります。security セクションは、基本認証を API 全体に適用します。角括弧 [] は使用されるセキュリティスコープを示します。基本認証はスコープを使用しないため、リストは空です。security はグローバルに (上記の例のように)、または操作レベルで設定できます。後者は、一部の操作のみが基本認証を必要とする場合に便利です。

1
paths:
2
/something:
3
get:
4
security:
5
- basicAuth: []

基本認証は、複数の認証タイプの使用で説明されているように、他の認証方法と組み合わせることもできます。

401レスポンス

また、認証情報が不足している、または間違っているリクエストに対して返される 401「Unauthorized」レスポンスを定義することもできます。このレスポンスには、WWW-Authenticate ヘッダーが含まれており、これに言及することをお勧めします。他の一般的なレスポンスと同様に、401 レスポンスはグローバルな components/responses セクションで定義し、$ref を介して他の場所から参照できます。

1
paths:
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
...
16
components:
17
responses:
18
UnauthorizedError:
19
description: Authentication information is missing or invalid
20
headers:
21
WWW_Authenticate:
22
schema:
23
type: string

responses 構文の詳細については、レスポンスの記述を参照してください。

お探しのものが見つかりませんでしたか? コミュニティに質問する
間違いを見つけましたか? お知らせください