Postmanの認証機能
APIを使っていると認証しないと使えないものや、アプリケーションでCurrentUserでなければ投稿できない、削除できないなどが出てきます。
その場合ログインしているユーザーであるとかAPIの使用許可を得たユーザーであるなどの認証をさせなければいけません。
Postmanでは認証機能をサポートしています。
認証とは
あなたが誰かかを本人確認すること。
WebAPIの認証
そもそも認証方式にはどんな種類があるかをまとめます。
WebAPIの認証の3つのパターン
認証方式は3パターンに分けられる
- 標準化されているHTTP認証方式
- APIキ認証
- セキュリティートークン

標準化されているHTTP認証方式
ユーザー名とパスワードをBase64方式でエンコードして送る。
開発環境などの内部システム認証に使われる。
サーバーとクライアントで共有シークレット(パスワード)を知っていることが前提の方式。
クライアントでユーザー名、パスワード、ランダムな文字列をMD5でハッシュ化し、サーバーに送信する。 サーバー側でもハッシュ値を計算し、 クライアントから送信されたハッシュ値と合致するかを検証する。
認可サーバーにより発行されたアクセストークンをWebAPIに渡す方法を定めた仕様。OAuth2.0の認可機構として設計されたものだがOAuthに限らず汎用的なHTTP認可に使ってよい。OAuth 2.0をベースにしたOIDCでもリソースアクセス時に利用される。
3つの方式を定義しています。
- ヘッダーのAuthorizationに埋め込む方法
- リクエストボディーへ埋め込む方法(access_tokenパラメータ)
- クエリーパラメーターとして渡す方式(access_tokenパラメータ)
OAuthとは
ユーザーの同意のもと任意のサービスへの認可情報を異常する仕様。認可する過程で認証処理も含まれるため、手軽な認証方式として利用されたが、なりすましなどの脆弱性が指摘されていた。
OAuth認証による認証レベルは低く問題があった。そこでOAuth認証の手軽さに高い認証レベルを備えたOpenID Connectが作られた。
APIキー認証
APIキーはアカウント情報などはなくアプリケーションを識別する暗号化された単純な文字列。
クライアントがリクエスト内にAPIキーを含めて送る認証方式で、ヘッダーやクエリー、bodyなどサービスによって異なる。
シンプルに実装できる一方、APIキーはクライアントからアクセス可能で簡単に盗まれる可能性があり、キーがあれば誰でも認証を通過できることから、安全性が低い認証方式です。
セキュリティートークン
セキュリティートークンはワンタイムパスワードを生成する機械やソフトウェアのこと。ワンタイムパスワードは使い捨てのパスワードのこと。
強固なセキュリティを実現するため、通常認証とワンタイムパスワードの組み合わせをすることがある。
PostmanのAPI認証サポート
環境変数を使ってログインする方法もありますが、今回は置いておきます。
Postmanにはタグが5つありますが、認証に使うのはAuthorization。
ここでリクエストの認証方式を指定します。
クリックします。
Typeで認証方法を選択することができます。今回はbycrytで生成したトークンを送るため、上記で解説したBearerでトークン認証をします。
Bearerを選択すると右にトークンを入力するところが出るので、ユーザー作成で得たトークンを入力します。
これでログイン状態と同じになり、マイクロポストへの投稿や編集、削除などが行えるようになります。
参考サイト