ASP.NET Web API에서 인증 기능이 있는 API를 만듭니다.
ASP.NET Web API에서 인증 기능이 있는 API 만들기
여기에 자세히 썼습니다.
Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2
위의 기사를 보면 완벽합니다. 자신이 동작 확인으로 실시한 것을 보충적으로 기재합니다.
동작 확인
기사에 쓰여진 내용을 바탕으로 동작 확인해 보았습니다.
1. 위 사이트에서 소스를 다운로드하고 로컬로 빌드합니다.
자세한 내용은 생략합니다.
2. 응용 프로그램을 시작하고 적절한 이메일 주소로 사용자를 만듭니다.
3. 로그인 처리(access_token을 발행해 준다.)
샘플 화면에서 로그인하여 API를 Call해도 좋지만, 알기 쉽도록 curl로 Call해 보았다.
$ curl -k https://localhost:44305/token -X POST --data 'grant_type=password&[email protected]&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":"[email protected]",
".issued":"Thu, 01 Dec 2016 00:51:33 GMT",
".expires":"Thu, 15 Dec 2016 00:51:33 GMT"
}
4. 헤더에 발행된 access_token을 설정하여 API를 호출합니다.
$ 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, [email protected]." # 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라고 생각한다.
Reference
이 문제에 관하여(ASP.NET Web API에서 인증 기능이 있는 API를 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/piromaru/items/fb881f529dc7762d8da0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기사에 쓰여진 내용을 바탕으로 동작 확인해 보았습니다.
1. 위 사이트에서 소스를 다운로드하고 로컬로 빌드합니다.
자세한 내용은 생략합니다.
2. 응용 프로그램을 시작하고 적절한 이메일 주소로 사용자를 만듭니다.
3. 로그인 처리(access_token을 발행해 준다.)
샘플 화면에서 로그인하여 API를 Call해도 좋지만, 알기 쉽도록 curl로 Call해 보았다.
$ curl -k https://localhost:44305/token -X POST --data 'grant_type=password&[email protected]&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":"[email protected]",
".issued":"Thu, 01 Dec 2016 00:51:33 GMT",
".expires":"Thu, 15 Dec 2016 00:51:33 GMT"
}
4. 헤더에 발행된 access_token을 설정하여 API를 호출합니다.
$ 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, [email protected]." # 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라고 생각한다.
Reference
이 문제에 관하여(ASP.NET Web API에서 인증 기능이 있는 API를 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/piromaru/items/fb881f529dc7762d8da0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)