[ServiceNow] OAuth2.0을 이용한 REST API를 실행해 보았습니다.
4963 단어 ServiceNowServiceNow 개발 메모
개요
요 전날 에 계속해서 ServiceNow의 REST에 대해서 써 갑니다.
ServiceNow의 REST를 정상적으로 실행하는 경우,
사용자 경로를 베타에 써야합니다 (잘못하면 죄송합니다)
유실했을 때에 위험하다고 생각해 조사해 보았습니다.
조사한 바에 따르면 커뮤니티에 이런 기사이 올라가고 있었습니다.
분명히 ServiceNow에서 OAuth2.0을 사용할 수 있다는 것을 시도해 보았습니다.
절차
① 애플리케이션 레지스트리 생성
②액세스 토큰 취득
③액세스 토큰을 이용한 REST 실행
상세
① 애플리케이션 레지스트리 생성
액세스 토큰을 생성할 때,
ServiceNow에 응용 프로그램 레지스트리를 만들어야 합니다.
1. 시스템 OAuth > 애플리케이션 레지스트리를 엽니다.
2. 신규를 누르십시오.
3. 외부 클라이언트용 Oauth API 엔드포인트 생성을 선택합니다.
4. 이름, 액세스 토큰의 유효기간(초)을 설정하고, 송신을 누르십시오.
②액세스 토큰 취득
REST이므로 CURL 등으로 생성 가능하지만 이번에는 POSTMAN이라는 도구를 사용하여 액세스 토큰을 생성합니다.
1. 링크 에서 POSTMAN을 다운로드합니다.
2. 다운로드한 Postman-win64-7.34.0-Setup.exe를 실행한다.
3. 새 탭을 열고 메서드를 GET에서 POST로 변경합니다.
4. URL에 「https://인스턴스명.service-now.com/oauth_token.do」를 설정한다.
5. Body를 선택해 「x-www-form-urlencoded」에 체크를 넣어 아래와 같은 파라미터를 설정한다.
grant_type:password
client_id:【애플리케이션 레지스트리로 생성된 클라이언트 ID 】
client_secret:【어플리케이션 레지스트리로 생성된 클라이언트 시크릿】
username:【사용자명】
password:【비밀번호】
6. SEND를 누르십시오.
설정 화면
실행 결과
③액세스 토큰을 이용한 REST 실행
액세스 토큰 생성에서 얻은 액세스 토큰을 이용하여
REST를 실행할 수 있습니다.
■アクセストークンを利用する場合
curl “https://インスタンス名.service-now.com/api/now/table/incident"
--request POST
--header "Accept:application/json"
--header "Content-Type:application/json"
--data "{'short_description':'CURLから起票','urgency':'2','impact':'2’}”
--header "Authorization:Bearer 4O7Ctf8bpmGrUvehna5BVUdAS6OiPbz7DAfKqMQtCuuP6n3fACekpKups7KAHZcaZRUlL-hDGDpobm86TU-Akg“
■アクセストークンを利用しない場合
curl "https://インスタンス名.service-now.com/api/now/table/incident"
--request POST
--header "Accept:application/json"
--header "Content-Type:application/json"
--data "{'short_description':'CURLから起票','urgency':'2','impact':'2’}”
--user “【ユーザ名】”:“【パスワード】"
보충
POSTMAN 이외에서 얻는 방법
CURL
■パスワードを利用する場合
curl --location --request POST "https://devXXXXX.service-now.com/oauth_token.do" ^
--data-urlencode "grant_type=password" ^
--data-urlencode "client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX" ^
--data-urlencode "client_secret=XXXXXXXXX" ^
--data-urlencode "username=ユーザ名" ^
--data-urlencode "password=パスワード"
■リフレッシュトークンを利用する場合
curl --location --request POST "https://devXXXXX.service-now.com/oauth_token.do" ^
--data-urlencode "grant_type=refresh_token" ^
--data-urlencode "client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX" ^
--data-urlencode "client_secret=XXXXXXXXX" ^
--data-urlencode "refresh_token=3YiEdubKXp8JjokXXXXXXXXXXXXXXXXJAFZRxvlhf75ZbXXXXXXXA7ZjzVnzpaqWwD1A"
ServiceNow
var request = new sn_ws.RESTMessageV2();
var body = "grant_type=password&client_id=5728b128c640a4105e22f5a3338bd53b&client_secret=@PJ48#;@Oi&username=【ユーザ名】&password=【パスワード】";
request.setEndpoint('https://【インスタンス名】.service-now.com/oauth_token.do’);
request.setHttpMethod('POST’);
request.setRequestHeader(‘Content-Type’,‘application/x-www-form-urlencoded’); //oauth_token.doはapplication/json形式利用不可
request.setRequestBody(body);var response = request.execute();
var responseBody = response.getBody();
var obj = JSON.parse(responseBody);
gs.log(responseBody); //Json形式でデータを表示
gs.log(obj.access_token); //アクセストークンのみ表示
참고
[ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.
OAuth 2.0 with Inbound REST(community 기사)
Reference
이 문제에 관하여([ServiceNow] OAuth2.0을 이용한 REST API를 실행해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ysnow/items/1934965b0c7e937ff6e6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
① 애플리케이션 레지스트리 생성
액세스 토큰을 생성할 때,
ServiceNow에 응용 프로그램 레지스트리를 만들어야 합니다.
1. 시스템 OAuth > 애플리케이션 레지스트리를 엽니다.
2. 신규를 누르십시오.
3. 외부 클라이언트용 Oauth API 엔드포인트 생성을 선택합니다.
4. 이름, 액세스 토큰의 유효기간(초)을 설정하고, 송신을 누르십시오.
②액세스 토큰 취득
REST이므로 CURL 등으로 생성 가능하지만 이번에는 POSTMAN이라는 도구를 사용하여 액세스 토큰을 생성합니다.
1. 링크 에서 POSTMAN을 다운로드합니다.
2. 다운로드한 Postman-win64-7.34.0-Setup.exe를 실행한다.
3. 새 탭을 열고 메서드를 GET에서 POST로 변경합니다.
4. URL에 「https://인스턴스명.service-now.com/oauth_token.do」를 설정한다.
5. Body를 선택해 「x-www-form-urlencoded」에 체크를 넣어 아래와 같은 파라미터를 설정한다.
grant_type:password
client_id:【애플리케이션 레지스트리로 생성된 클라이언트 ID 】
client_secret:【어플리케이션 레지스트리로 생성된 클라이언트 시크릿】
username:【사용자명】
password:【비밀번호】
6. SEND를 누르십시오.
설정 화면
실행 결과
③액세스 토큰을 이용한 REST 실행
액세스 토큰 생성에서 얻은 액세스 토큰을 이용하여
REST를 실행할 수 있습니다.
■アクセストークンを利用する場合
curl “https://インスタンス名.service-now.com/api/now/table/incident"
--request POST
--header "Accept:application/json"
--header "Content-Type:application/json"
--data "{'short_description':'CURLから起票','urgency':'2','impact':'2’}”
--header "Authorization:Bearer 4O7Ctf8bpmGrUvehna5BVUdAS6OiPbz7DAfKqMQtCuuP6n3fACekpKups7KAHZcaZRUlL-hDGDpobm86TU-Akg“
■アクセストークンを利用しない場合
curl "https://インスタンス名.service-now.com/api/now/table/incident"
--request POST
--header "Accept:application/json"
--header "Content-Type:application/json"
--data "{'short_description':'CURLから起票','urgency':'2','impact':'2’}”
--user “【ユーザ名】”:“【パスワード】"
보충
POSTMAN 이외에서 얻는 방법
CURL
■パスワードを利用する場合
curl --location --request POST "https://devXXXXX.service-now.com/oauth_token.do" ^
--data-urlencode "grant_type=password" ^
--data-urlencode "client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX" ^
--data-urlencode "client_secret=XXXXXXXXX" ^
--data-urlencode "username=ユーザ名" ^
--data-urlencode "password=パスワード"
■リフレッシュトークンを利用する場合
curl --location --request POST "https://devXXXXX.service-now.com/oauth_token.do" ^
--data-urlencode "grant_type=refresh_token" ^
--data-urlencode "client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX" ^
--data-urlencode "client_secret=XXXXXXXXX" ^
--data-urlencode "refresh_token=3YiEdubKXp8JjokXXXXXXXXXXXXXXXXJAFZRxvlhf75ZbXXXXXXXA7ZjzVnzpaqWwD1A"
ServiceNow
var request = new sn_ws.RESTMessageV2();
var body = "grant_type=password&client_id=5728b128c640a4105e22f5a3338bd53b&client_secret=@PJ48#;@Oi&username=【ユーザ名】&password=【パスワード】";
request.setEndpoint('https://【インスタンス名】.service-now.com/oauth_token.do’);
request.setHttpMethod('POST’);
request.setRequestHeader(‘Content-Type’,‘application/x-www-form-urlencoded’); //oauth_token.doはapplication/json形式利用不可
request.setRequestBody(body);var response = request.execute();
var responseBody = response.getBody();
var obj = JSON.parse(responseBody);
gs.log(responseBody); //Json形式でデータを表示
gs.log(obj.access_token); //アクセストークンのみ表示
참고
[ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.
OAuth 2.0 with Inbound REST(community 기사)
Reference
이 문제에 관하여([ServiceNow] OAuth2.0을 이용한 REST API를 실행해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ysnow/items/1934965b0c7e937ff6e6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
■パスワードを利用する場合
curl --location --request POST "https://devXXXXX.service-now.com/oauth_token.do" ^
--data-urlencode "grant_type=password" ^
--data-urlencode "client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX" ^
--data-urlencode "client_secret=XXXXXXXXX" ^
--data-urlencode "username=ユーザ名" ^
--data-urlencode "password=パスワード"
■リフレッシュトークンを利用する場合
curl --location --request POST "https://devXXXXX.service-now.com/oauth_token.do" ^
--data-urlencode "grant_type=refresh_token" ^
--data-urlencode "client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX" ^
--data-urlencode "client_secret=XXXXXXXXX" ^
--data-urlencode "refresh_token=3YiEdubKXp8JjokXXXXXXXXXXXXXXXXJAFZRxvlhf75ZbXXXXXXXA7ZjzVnzpaqWwD1A"
var request = new sn_ws.RESTMessageV2();
var body = "grant_type=password&client_id=5728b128c640a4105e22f5a3338bd53b&client_secret=@PJ48#;@Oi&username=【ユーザ名】&password=【パスワード】";
request.setEndpoint('https://【インスタンス名】.service-now.com/oauth_token.do’);
request.setHttpMethod('POST’);
request.setRequestHeader(‘Content-Type’,‘application/x-www-form-urlencoded’); //oauth_token.doはapplication/json形式利用不可
request.setRequestBody(body);var response = request.execute();
var responseBody = response.getBody();
var obj = JSON.parse(responseBody);
gs.log(responseBody); //Json形式でデータを表示
gs.log(obj.access_token); //アクセストークンのみ表示
[ServiceNow] MID Server를 통해 REST API를 실행해 보았습니다.
OAuth 2.0 with Inbound REST(community 기사)
Reference
이 문제에 관하여([ServiceNow] OAuth2.0을 이용한 REST API를 실행해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ysnow/items/1934965b0c7e937ff6e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)