LoginSignup
20
27

More than 5 years have passed since last update.

ASP.NET Web APIで認証機能付きのAPIを作成する。

Last updated at Posted at 2016-12-01

ASP.NET Web APIで認証機能付きのAPIを作成

ここに詳細に書かれていました。
Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2

上記の記事を見れば完璧です。自分が動作確認で行ったことを補足的に記載します。

動作確認

記事に書かれていた内容をもとに動作確認してみました。

1.上記サイトからソースをダウンロードし、ローカルでビルドする。

詳細は省きます。

2.アプリケーションを立ち上げ、適当なメールアドレスでユーザーを作成する。

NoName_2016-12-1_9-40-36_No-00.png

3.ログイン処理(access_tokenを発行してもらう。)

サンプル画面にてログインして、APIをCallしても良いが、分かりやすい様にcurlでCallしてみた。

$ curl -k https://localhost:44305/token -X POST --data 'grant_type=password&username=aaaa@aaaa.co.jp&password=Password1!'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   731  100   667  100    64   2245    215 --:--:-- --:--:-- --:--:--  2245
{
  "access_token":"-R6uUYvuby5ztGaIiYkIy5S3mQCtqYukU...", # 発行されたaccess_token
  "token_type":"bearer",
  "expires_in":1209599,
  "userName":"aaaa@aaaa.co.jp",
  ".issued":"Thu, 01 Dec 2016 00:51:33 GMT",
  ".expires":"Thu, 15 Dec 2016 00:51:33 GMT"
}

4. ヘッダーに発行されたaccess_tokenをセットして、APIをCallする。

$ curl -k  https://localhost:44305/api/values -X GET -H 'Authorization: Bearer -R6uUYvuby5ztGaIiYkIy5S3mQCtqYukU...'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    25  100    25    0     0    123      0 --:--:-- --:--:-- --:--:--   123
"Hello, aaaa@aaaa.co.jp." # APIから返却された値。

上記の様になる。

なお、access_tokenの値が誤っていた場合は、以下の通り処理が行われない。

$ curl -k  https://localhost:44305/api/values -X GET -H 'Authorization: Bearer -R6uUYvuby5ztrerewGaIiYkIy5S3mQCtqYukU...'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    61  100    61    0     0    279      0 --:--:-- --:--:-- --:--:--   300
{"Message":"Authorization has been denied for this request."}

これでOKだと思う。

20
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
27