OAuth 인증 코드 부여 플로우
인증 코드 부여 흐름을 사용하면 사용자 이름/암호 자격 증명으로 인증하는 것과 달리 사용자가 리소스를 신뢰하는 OAuth 서버로 직접 인증하여 리소스에 액세스할 수 있습니다.
이렇게 OAuth 인증 코드 플로우를 구현하면 REST를 통해 자원에 액세스할 수 있습니다. 인증 코드 프레임워크는 사용자에게 사용자 이름/암호를 입력하도록 요구하지 않고 사용자가 구성하는 인증된 URL을 통해 액세스 토큰을 가져옵니다. 사용자 이름/암호는 리소스에 대한 액세스를 요청하는 클라이언트에 노출되지 않습니다.
ServiceNow 권한 부여 서버로서의 인스턴스
OAuth 서버는 일반적으로 외부 공급업체 권한 부여 서버입니다. 인증 코드 플로우에 대한 토큰을 발행하는 권한 부여 서버로 인스턴스를 지정할 ServiceNow 수도 있습니다.
제한된 자원을 소유한 사용자가 액세스 권한을 부여해야 합니다. 또한 사용자는 언제든지 발급된 액세스 토큰을 취소하여 액세스를 종료할 수 있습니다.
인증 코드 부여 플로우 프로세스
인증 코드 부여 플로우 프로세스는 다음 세 단계로 구성됩니다.
1단계에서 클라이언트 애플리케이션 또는 웹 사이트는 사용자 에이전트를 통해 인스턴스에 대한 GET 요청 형식으로 REST API 호출을 시작합니다. 일반적으로 REST 호출은 최종 사용자가 클라이언트 응용 프로그램이나 웹 사이트의 단추나 링크를 클릭하여 액세스 토큰을 요청할 때 시작됩니다. 클라이언트 애플리케이션에서 최종 사용자는 인증 URL, 토큰 URL, 클라이언트 ID 및 클라이언트 암호도 지정해야 합니다. 이러한 항목에 대한 설명은 외부 공급업체 OAuth 제공자 사용 주제의 필드 설명을 참조하십시오. 클라이언트가 권한 부여 유형을 요청하는 경우 최종 사용자는 인증 코드를 선택해야 합니다.
https://myinstance.service-now.com/oauth_auth.do?response_type=code&redirect_uri={the_redirect_url}&client_id={the_client_identifier}클라이언트 애플리케이션이 실제로 토큰을 요청하는 항목은 사용자가 작성한 OAuth 제공자 애플리케이션 레지스트리 레코드(권한 부여 엔드포인트라고도 함)입니다( 써드파티 OAuth 제공자 사용 참조). 인증 코드는 권한 부여 엔드포인트에서 클라이언트로 전송됩니다. 클라이언트로 직접 이동하지 않고 권한 부여 끝점 양식에서 지정한 리디렉션 URL 로 이동합니다. 이 URL을 콜백 URL이라고도 합니다. 이 URL은 클라이언트 응용 프로그램 또는 웹 사이트에서 가져올 수 있습니다.
https/http://{callbackURL}?code={the actual auth code}이제 클라이언트 응용 프로그램에 인증 코드가 있으므로 클라이언트는 이 코드를 사용하여 액세스 토큰을 요청합니다. 인증 코드는 사용자가 1단계에서 동의했음을 증명합니다.
https://myinstance.service-now.com/oauth_token.do?grant_type=authorization_code&code={the auth code}&redirect_uri={the_same_redirect_url}&client_id={the_same_client_identifier}&client_secret={client_secret_value}인스턴스의 엔드포인트는 접근 토큰과 새로 고침 토큰을 반환합니다. 새로 고침 토큰을 사용하여 추가 액세스 토큰을 요청할 수 있습니다.
토큰 해지를 포함하여 인스턴스에서 토큰을 관리할 수 있습니다. OAuth 토큰 관리를 참조하세요.
클라이언트 애플리케이션은 액세스 토큰을 사용하여 REST API에 인증합니다. 클라이언트 애플리케이션을 인증한 후 REST API는 요청된 데이터를 JSON 페이로드로 반환합니다.
https://myinstance.service-now.com/api/now/table/incident?access_token={the_token}통합 지원
- 다중 SSO
- SAML 2.0 업데이트 1
- Multifactor Authentication
모바일 인터페이스도 지원됩니다.