61
6
認証
6.0 はじ
NGINXクライアントを認できますNGINX使したクライアントのは作
減らリケショーバー証されてする
する能供しますNGINXープース は 基 本 的
認証認証サが含JSON Web TokenJWT)を す る た
NGINX Plus ュ ー り 、認 OpenID Connect使 るサード
パーティバイダーとのなります
6.1 HTTP Basic認証
問題
HTTP Basic介して、リケションまコンテンするあり
す。
解決
の形式ルを生し、パスは、てい形式のずれか
す:
# comment
name1:password1
name2:password2:comment
name3:password3
ユ ー ザ ー 名 、パ ス ワ ー ド は 2 目 の フ ー ル ド 、区 り 文 ロ ン
。オ プ シ ョ 3番目ドがあーザーへのコメ使
す。NGINXる形のパスワードをきますのうちの1
、パ ワ ー C語の関crypt() 。こ の
62
は、openssl passwdンドンドインす。 openssl
使 するとのコンドスワード きま
$ openssl passwd MyPassword1234
出力はNGINXパスル内で使用文字列
auth_basicおよびauth_basic_user_fileィレ NGINX 使 用して
Basic認 証 す:
location / {
auth_basic "Private site";
auth_basic_user_file conf.d/passwd;
}
HTTPサーバー、たはロケーシンコンテauth_basicィレ 使
ことす。auth_basicィレィブ ラメります。
証されてユー達したときにBasic ップ ップ
す。auth_basic_user_fileユーァイのパスを指します
ストす curl-uまた--user 使 用して Authorizationヘッ
す。
$ curl --user myuser:MyPassword1234 https://localhost
解説
ベーシッスワードはリティのレ更しいく
す。Apacheからのhtpasswdコマンドもパスワードをでき
す。opensslおよびhtpasswdンドちらNGINXが理解apr1アルリズ
スワードスワードLightweight Directory Access Protocol (LDAP)
Dovecot使するSalted SHA-1 使 す。NGINX ハッ
アルリズートしす。ートフォよっ
害される可能があためそれらの多くでないと見なされます
Basic認 証 使 用してNGINXホス定のサーー、または定のロケー
スト す。Basic証はWebョン
のユーザー認証に取っわるものではあませんが人情報を安全に保つのに
ますあま知られていませんがベーシックーバーがッダー
WWW-Authenticateを含401不足のHTTPよって
。こ ダ ー Basic realm="your string"ありますこの
ード ユーード
連結れ、れ、base64ードAuthorizationとい
ヘッ す。Authorizationヘッ Basicおよび
user:passwordでエンコーされ列を指定しますサーバーはヘッダーをデコー
、提 供 さ れ auth_basic_user_file て 照 合 し ま す。ユ ー ザ 名 と パ ス ワ ー
| 6章:認
63
の文base64ードBasicではHTTPSを使
す。
6.2 スト
問題
要求の認証を希望すサーーテの認証シがあ
解決
http_auth_request_module使用しービスにる前IDを検
す。
location /private/ {
auth_request /auth;
auth_request_set $auth_status $upstream_status;
}
location = /auth {
internal;
proxy_pass http://auth-server;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
auth_requestィレィブ URIラメーりまラメー
の内部ロケーシンでなけません。auth_request_setィレ
リクエトからすることを許可します
解説
http_auth_request_moduleNGINXーが理すべて要求で証を効に
す。 スト 使 スト
。サ NGINX要求を別の内部ロケンに渡
ティする前するauthョン
ッダーを含め元要求を認証サーーにますサブトのHTTP
スコードはクセスがされるかどを決るものですサブリ
スト HTTP200スコー返される合、功し行されま
。サ HTTP 401または403を返す時のが元の要求に返されま
証サーーが要求文を求めない場合、示のproxy_pass_request_body
レクブで要求文を削できの行によ要求のサ
減されます棄されるためContent-Lengthッダーは空の文列に設
するありますビス定しURIを知る必要がある場
6.2 スト |
64
ービチェックするカスタムヘダー
ありますッダーそのなどブリクエサービスまで
いものがある場合はauth_request_setデ ィレ ク テ 使 、応
データからしい変数を作成できます
6.3 NGINX PlusでのJWTの照
問題
要求がNGINX Plus理される前にJWT ります。
解決
NGINX PlusHTTP JWT ジュール使 用して、クンJWT
とヘッNGINX変 数して
location /api/ {
auth_jwt "api";
auth_jwt_key_file conf/keys.json;
}
このこのションJWT にしす。auth_jwt ィレ ィブ
には証レルム使される文されますauth_jwtは、JWTする
ョンンパラメります。フォルトで Authentication
ダーJWT 使 す。auth_jwtィレ
JWT認証の効果を相殺す使認証off 、キ
だけを auth_jwt ディティ渡しまするoff
キーワドだけをauth_jwtィレ す。auth_jwt_key_fileのパ
ラメーります。ラメー JSON Web Key (JWK) 形 式 の キ ーフ
イル
解説
NGINX Plus 、ト JSON Web く、JSONWeb
のトす。NGINX Plusは、HS256RS256、お ES256
ズムで署名れた署名照合でNGINX Plusにト せる
ービスサブリクエストを間とソースを節きま
す。NGINX Plusは、JWTヘッード ヘッとク
にキャて使るよしまauth_jwtィレ
httpserverlocationlimit_except ストで 使 す。
| 6章:認
65
項目
JSON Web名のRFC キュョン
JSON WebリズRFC準ドキュョン
JSON WebトークンRFC準ドキュョン
NGINX Plus JWT認証
詳細NGINX ブロ
6.4 JSON Web Keyの作成
問題
NGINX Plus使するJSON Web KeyJWK)が
解決
NGINX Plusは、RFCれてJWK形式を利の標準では、JWK
クト
以下は、キールがどかけを示す例です
{"keys":
[
{
"kty":"oct",
"kid":"0001",
"k":"OctetSequenceKeyValue"
},
{
"kty":"EC",
"kid":"0002"
"crv":"P-256",
"x": "XCoordinateValue",
"y": "YCoordinateValue",
"d": "PrivateExponent",
"use": "sig"
},
{
"kty":"RSA",
"kid":"0003"
"n": "Modulus",
"e": "Exponent",
"d": "PrivateExponent"
}
]
}
6.4 JSON Web Keyの作成 |
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.26.176