GlideJWTAPI - 범위 지정됨
GlideJWT API를 사용하여 에서 ServiceNow AI Platform두 당사자 간의 클레임을 안전하게 나타내기 위한 JWT(JSON Web Token)를 생성합니다.
이 API는 sn_auth 네임스페이스 내에서 제공됩니다.
GlideJWTAPI - generateJWT(String jwtProviderSysId, String jsonSerializedHeader, String jsonSerializedPayload)
JWT(JSON 웹 토큰)를 작성합니다.
JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| jwtProviderSysId | 문자열 | JWT 제공자의 Sys_id입니다. 테이블: JWT 제공자 [jwt_provider] |
| jsonSerialized헤더 | 문자열 | 옵션입니다. 페이로드의 JSON 헤더입니다. 기본값: JWT 제공자 기록의 클레임을 사용합니다. |
| jsonSerialized페이로드 | 문자열 | 옵션입니다. JSON 페이로드입니다. 기본값: JWT 제공자 기록의 클레임을 사용합니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 생성된 JWT입니다. |
이 예에서는 JWT 제공자 기록의 클레임을 사용하여 JWT를 생성합니다.
var jwtAPI = new sn_auth.GlideJWTAPI();
var jwtProviderSysId = "ce7d1a62a3660210f1565f87f31e61f7";
var jwt = jwtAPI.generateJWT(jwtProviderSysId, null, null);
gs.info("JWT:" + jwt);
출력:
JWT:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiI5YzZlMmQxNzU0MzMyMDEwMDFhMTE4Y2FhMGVhMmE0MyIsInN1YiI6ImFkbWluQGV4YW1wbGUuY29tIiwiaXNzIjoiaHR0cHM6Ly9kb21haW4uZXhhbXBsZS5jb20iLCJleHAiOjE3MTc2MDc0MjQsImlhdCI6MTcxNzYwNzM2NCwianRpIjoiMjUzMjRjOWItMzlhMS00ZTc4LWEzNzItMGZjNzA2ZWE2ZDgxIn0.UwfdJzdMNE1zAyOFsaGGKPqatbSgDdYi_LjBwj9KUtKRRLyEDWuS7fErl_6W1_5dvhvtEPPGwBq84FcIjIzdNe17-zTi6tRaVIMfC8PDd2emjlKM1NgyYV1lzGQyDpafl4V0FixqFp1jB-_4XejN2UvWbMT9ylOoPALYGII13R8VabVYdknMOxBO8KMyOefxcAhS2OVFDFfozwMJtgJosPls3bzK1f0_WvGZDEBLdbDobzvrYjqNPIcmYk7pvyJ-ROeaxxj5h4erR4H8gFF_pG8bAxnLnFRMTzp-ZsbALMnC-B331jqj0Pi5gHsfTCNCV-zvGkyQwFwSfLB9uBo1gw
디코딩된 JWT:
{
"typ": "JWT",
"alg": "RS256"
}
.
{
"aud": "9c6e2d175433201001a118caa0ea2a43",
"sub": "admin@example.com",
"iss": "https://domain.example.com",
"exp": 1717607424,
"iat": 1717607364,
"jti": "25324c9b-39a1-4e78-a372-0fc706ea6d81"
}
이 예제에서는 사용자 지정 클레임을 사용하여 JWT를 생성합니다.
var jwtAPI = new sn_auth.GlideJWTAPI();
var headerJSON = { "kid": "a1234" };
var header = JSON.stringify(headerJSON);
var payloadJSON = { "iss": "override_value_in_JWT_provider_record", "custom_claim_1": "custom_claim_1_value" };
var payload = JSON.stringify(payloadJSON);
var jwtProviderSysId = "ce7d1a62a3660210f1565f87f31e61f7";
var jwt = jwtAPI.generateJWT(jwtProviderSysId, header, payload);
gs.info("JWT:" + jwt);
출력:
JWT:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImExMjM0In0.eyJhdWQiOiI5YzZlMmQxNzU0MzMyMDEwMDFhMTE4Y2FhMGVhMmE0MyIsInN1YiI6ImFkbWluQGV4YW1wbGUuY29tIiwiaXNzIjoib3ZlcnJpZGVfdmFsdWVfaW5fSldUX3Byb3ZpZGVyX3JlY29yZCIsImN1c3RvbV9jbGFpbV8xIjoiY3VzdG9tX2NsYWltXzFfdmFsdWUiLCJleHAiOjE3MTc2MDc4MTksImlhdCI6MTcxNzYwNzc1OSwianRpIjoiNjE3YjMyMjQtYjZmZi00MGZmLTliY2QtNTQ5YTdhNTk4YjkzIn0.Oi6AW0KW8i9yyBgWZnVGDKIqK_GYhIlHMigeNBU141nYXJNhLuk36455TwDKj2z40NMI-nqRaxoVIfo1XQiR7_oXuKnmNSDHQJofedq9sQVFbnQmmPnYNzG-01CVTx4xOm_KdPF_WrWvOqj5nyiqPC7fkjEkVbhXDsygRWcoghRrazFwbmS1ujXbs0sXap99uEexiJfUZ0Ad7bjvQ-T1Wh5Sc4LKZguH-egAze98mxQCiMNQAZLAfSs9qPEnXMe8EjXZnPaz3-wMH4KVUGR_gT49XPWkp4081tX7acE77j_55TvCxVyqAGWIOEqI6hlAO_bQmM35pCvN4NSek_GxbQ
디코딩된 JWT:
{
"alg": "RS256",
"typ": "JWT",
"kid": "a1234"
}
.
{
"aud": "9c6e2d175433201001a118caa0ea2a43",
"sub": "admin@example.com",
"iss": "override_value_in_JWT_provider_record",
"custom_claim_1": "custom_claim_1_value",
"exp": 1717607819,
"iat": 1717607759,
"jti": "617b3224-b6ff-40ff-9bcd-549a7a598b93"
}