in common/lib/plugins/federated_auth/okta_credentials_provider_factory.ts [51:87]
async getSessionToken(props: Map<string, any>): Promise<string> {
const idpHost = this.formatIdpEndpoint(WrapperProperties.IDP_ENDPOINT.get(props));
const idpUser = WrapperProperties.IDP_USERNAME.get(props);
const idpPassword = WrapperProperties.IDP_PASSWORD.get(props);
const httpsAgent = new Agent(WrapperProperties.HTTPS_AGENT_OPTIONS.get(props));
const sessionTokenEndpoint = `${idpHost}/api/v1/authn`;
const data = JSON.stringify({
username: idpUser,
password: idpPassword
});
const postConfig = {
method: "post",
headers: {
"Content-Type": "application/json",
Accept: "application/json"
},
url: sessionTokenEndpoint,
httpsAgent,
data
};
let resp;
try {
resp = await axios.request(postConfig);
} catch (e: any) {
throw new AwsWrapperError(Messages.get("OktaCredentialsProviderFactory.sessionTokenRequestFailed"));
}
const token = resp.data[OktaCredentialsProviderFactory.SESSION_TOKEN];
if (!token) {
throw new AwsWrapperError(Messages.get("OktaCredentialsProviderFactory.invalidSessionToken"));
}
return token;
}