@p0security/cli 0.26.15 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/dist/commands/aws/rds.js +7 -5
- package/build/dist/commands/aws/rds.js.map +1 -1
- package/build/dist/commands/claude/index.d.ts +2 -0
- package/build/dist/commands/claude/index.js +24 -0
- package/build/dist/commands/claude/index.js.map +1 -0
- package/build/dist/commands/claude/mcp.d.ts +7 -0
- package/build/dist/commands/claude/mcp.js +187 -0
- package/build/dist/commands/claude/mcp.js.map +1 -0
- package/build/dist/commands/file-transfer.d.ts +8 -0
- package/build/dist/commands/file-transfer.js +130 -0
- package/build/dist/commands/file-transfer.js.map +1 -0
- package/build/dist/commands/index.js +4 -0
- package/build/dist/commands/index.js.map +1 -1
- package/build/dist/commands/kubeconfig.js +2 -1
- package/build/dist/commands/kubeconfig.js.map +1 -1
- package/build/dist/commands/login.js +3 -2
- package/build/dist/commands/login.js.map +1 -1
- package/build/dist/commands/logout.js +3 -4
- package/build/dist/commands/logout.js.map +1 -1
- package/build/dist/drivers/api.d.ts +8 -0
- package/build/dist/drivers/api.js +20 -18
- package/build/dist/drivers/api.js.map +1 -1
- package/build/dist/drivers/auth/index.d.ts +3 -1
- package/build/dist/drivers/auth/index.js +44 -2
- package/build/dist/drivers/auth/index.js.map +1 -1
- package/build/dist/drivers/auth/lock.d.ts +11 -0
- package/build/dist/drivers/auth/lock.js +70 -0
- package/build/dist/drivers/auth/lock.js.map +1 -0
- package/build/dist/drivers/auth/path.d.ts +1 -0
- package/build/dist/drivers/auth/path.js +12 -10
- package/build/dist/drivers/auth/path.js.map +1 -1
- package/build/dist/drivers/auth/refresh.d.ts +31 -0
- package/build/dist/drivers/auth/refresh.js +130 -0
- package/build/dist/drivers/auth/refresh.js.map +1 -0
- package/build/dist/drivers/stdio.d.ts +8 -0
- package/build/dist/drivers/stdio.js +12 -1
- package/build/dist/drivers/stdio.js.map +1 -1
- package/build/dist/plugins/aws/ssh.js +8 -3
- package/build/dist/plugins/aws/ssh.js.map +1 -1
- package/build/dist/plugins/db/types.d.ts +13 -10
- package/build/dist/plugins/file-transfer/index.d.ts +35 -0
- package/build/dist/plugins/file-transfer/index.js +74 -0
- package/build/dist/plugins/file-transfer/index.js.map +1 -0
- package/build/dist/plugins/file-transfer/types.d.ts +31 -0
- package/build/dist/plugins/file-transfer/types.js +3 -0
- package/build/dist/plugins/file-transfer/types.js.map +1 -0
- package/build/dist/plugins/google/auth.d.ts +4 -0
- package/build/dist/plugins/google/auth.js +75 -0
- package/build/dist/plugins/google/auth.js.map +1 -0
- package/build/dist/plugins/google/ssh-key.js +7 -3
- package/build/dist/plugins/google/ssh-key.js.map +1 -1
- package/build/dist/plugins/google/ssh.js +5 -2
- package/build/dist/plugins/google/ssh.js.map +1 -1
- package/build/dist/plugins/kubeconfig/types.d.ts +3 -5
- package/build/dist/plugins/login.d.ts +3 -1
- package/build/dist/plugins/login.js +2 -2
- package/build/dist/plugins/login.js.map +1 -1
- package/build/dist/plugins/okta/login.d.ts +10 -2
- package/build/dist/plugins/okta/login.js +38 -12
- package/build/dist/plugins/okta/login.js.map +1 -1
- package/build/dist/plugins/ssh/index.js +1 -1
- package/build/dist/plugins/ssh/index.js.map +1 -1
- package/build/dist/types/delegation.d.ts +39 -0
- package/build/dist/types/delegation.js +36 -0
- package/build/dist/types/delegation.js.map +1 -0
- package/build/dist/types/request.d.ts +5 -3
- package/build/dist/types/request.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -1
|
@@ -8,6 +8,14 @@ This file is part of @p0security/cli
|
|
|
8
8
|
|
|
9
9
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
10
|
**/
|
|
11
|
+
import yargs from "yargs";
|
|
12
|
+
/** Log with debugging
|
|
13
|
+
*
|
|
14
|
+
* Debug logs are written to stderr
|
|
15
|
+
*/
|
|
16
|
+
export declare function debug(argv: yargs.ArgumentsCamelCase<{
|
|
17
|
+
debug?: boolean;
|
|
18
|
+
}>, message: string, ...rest: any): void;
|
|
11
19
|
/** Used to output machine-readable text to stdout
|
|
12
20
|
*
|
|
13
21
|
* In general this should not be used for text meant to be consumed
|
|
@@ -19,7 +19,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.spinUntil = exports.clear2 = exports.reset2 = exports.print2 = exports.print1 = void 0;
|
|
22
|
+
exports.spinUntil = exports.clear2 = exports.reset2 = exports.print2 = exports.print1 = exports.debug = void 0;
|
|
23
23
|
/** Functions to handle stdio
|
|
24
24
|
*
|
|
25
25
|
* These are essentially wrappers around console.foo, but allow for
|
|
@@ -29,6 +29,17 @@ exports.spinUntil = exports.clear2 = exports.reset2 = exports.print2 = exports.p
|
|
|
29
29
|
const util_1 = require("../util");
|
|
30
30
|
const ansi_1 = require("./ansi");
|
|
31
31
|
const process_1 = require("process");
|
|
32
|
+
/** Log with debugging
|
|
33
|
+
*
|
|
34
|
+
* Debug logs are written to stderr
|
|
35
|
+
*/
|
|
36
|
+
function debug(argv, message, ...rest) {
|
|
37
|
+
if (!argv.debug)
|
|
38
|
+
return;
|
|
39
|
+
// eslint-disable-next-line no-console
|
|
40
|
+
console.error(message, ...rest);
|
|
41
|
+
}
|
|
42
|
+
exports.debug = debug;
|
|
32
43
|
/** Used to output machine-readable text to stdout
|
|
33
44
|
*
|
|
34
45
|
* In general this should not be used for text meant to be consumed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/drivers/stdio.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;AAEH;;;;;GAKG;AACH,kCAAgC;AAChC,iCAAuC;AACvC,qCAAiC;
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/drivers/stdio.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;AAEH;;;;;GAKG;AACH,kCAAgC;AAChC,iCAAuC;AACvC,qCAAiC;AAGjC;;;GAGG;AACH,SAAgB,KAAK,CACnB,IAAmD,EACnD,OAAe,EACf,GAAG,IAAS;IAEZ,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO;IACxB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC;AARD,sBAQC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,OAAY;IACjC,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAHD,wBAGC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAY;IACjC,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAHD,wBAGC;AAED,8DAA8D;AAC9D,SAAgB,MAAM;IACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAFD,wBAEC;AAED,uCAAuC;AACvC,SAAgB,MAAM;IACpB,4BAA4B;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC;AACX,CAAC;AAJD,wBAIC;AAED,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACrC,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,wDAAwD;AACjD,MAAM,SAAS,GAAG,CAAU,OAAe,EAAE,OAAmB,EAAE,EAAE;IACzE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,MAAM,QAAQ,GAAG,gBAAM,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,CAAC,OAAO,CAAC,CAAC;KACjB;IACD,+EAA+E;IAC/E,qBAAqB;IACrB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,MAAM,EAAE;QACd,MAAM,IAAA,YAAK,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,MAAM;YAAE,MAAM;QAClB,IAAI,QAAQ,EAAE;YACZ,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAO,CAAC,KAAK;gBACX,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAClC,GAAG;gBACH,OAAO;gBACP,cAAO,CAAC,KAAK,CAChB,CAAC;SACH;QACD,EAAE,EAAE,CAAC;KACN;IACD,MAAM,EAAE,CAAC;IACT,OAAO,MAAM,OAAO,CAAC;AACvB,CAAC,CAAA,CAAC;AA3BW,QAAA,SAAS,aA2BpB"}
|
|
@@ -46,6 +46,7 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
46
46
|
const keys_1 = require("../../common/keys");
|
|
47
47
|
const api_1 = require("../../drivers/api");
|
|
48
48
|
const stdio_1 = require("../../drivers/stdio");
|
|
49
|
+
const delegation_1 = require("../../types/delegation");
|
|
49
50
|
const util_1 = require("../../util");
|
|
50
51
|
const aws_1 = require("../okta/aws");
|
|
51
52
|
const config_1 = require("./config");
|
|
@@ -170,14 +171,18 @@ exports.awsSshProvider = {
|
|
|
170
171
|
: undefined;
|
|
171
172
|
}),
|
|
172
173
|
requestToSsh: (request) => {
|
|
173
|
-
var _a, _b, _c, _d
|
|
174
|
+
var _a, _b, _c, _d;
|
|
174
175
|
const { permission, delegation, generated } = request;
|
|
175
176
|
const { resource, region } = permission;
|
|
176
177
|
const { instanceId } = resource;
|
|
177
178
|
const { linuxUserName, hostKeys } = generated;
|
|
179
|
+
const awsDelegate = (0, delegation_1.getDelegate)(delegation, "aws");
|
|
178
180
|
// TODO: Update after P0 backend data-model update
|
|
179
|
-
const { idcId, idcRegion, accountId } = (
|
|
180
|
-
|
|
181
|
+
const { idcId, idcRegion, accountId } = (_a = awsDelegate === null || awsDelegate === void 0 ? void 0 : awsDelegate.permission) !== null && _a !== void 0 ? _a : resource;
|
|
182
|
+
if (!accountId) {
|
|
183
|
+
throw "Backend did not provide an AWS account ID for SSH session.";
|
|
184
|
+
}
|
|
185
|
+
const name = (_d = (_b = awsDelegate === null || awsDelegate === void 0 ? void 0 : awsDelegate.generated.name) !== null && _b !== void 0 ? _b : (_c = generated === null || generated === void 0 ? void 0 : generated.resource) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : "";
|
|
181
186
|
const common = {
|
|
182
187
|
linuxUserName,
|
|
183
188
|
accountId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/aws/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,4CAI2B;AAC3B,2CAAsE;AACtE,+CAA6C;
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/aws/ssh.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,21 +8,24 @@ This file is part of @p0security/cli
|
|
|
8
8
|
|
|
9
9
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
10
|
**/
|
|
11
|
+
import { DelegationField } from "../../types/delegation";
|
|
11
12
|
import { AwsResourcePermissionSpec } from "../aws/types";
|
|
12
|
-
|
|
13
|
-
delegation: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
permission: {
|
|
19
|
-
vpcId: string;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
13
|
+
type AwsRdsDelegate = {
|
|
14
|
+
delegation: DelegationField<{
|
|
15
|
+
aws: AwsResourcePermissionSpec;
|
|
16
|
+
}>;
|
|
17
|
+
permission: {
|
|
18
|
+
vpcId: string;
|
|
22
19
|
};
|
|
20
|
+
};
|
|
21
|
+
export type DbPermissionSpec = {
|
|
22
|
+
delegation: DelegationField<{
|
|
23
|
+
"aws-rds": AwsRdsDelegate;
|
|
24
|
+
}>;
|
|
23
25
|
generated: object;
|
|
24
26
|
permission: {
|
|
25
27
|
instanceId: string;
|
|
26
28
|
};
|
|
27
29
|
type: "mysql" | "postgres";
|
|
28
30
|
};
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Copyright © 2024-present P0 Security
|
|
2
|
+
|
|
3
|
+
This file is part of @p0security/cli
|
|
4
|
+
|
|
5
|
+
@p0security/cli is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
|
|
6
|
+
|
|
7
|
+
@p0security/cli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
+
|
|
9
|
+
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
|
+
**/
|
|
11
|
+
import { FileTransferCommandArgs } from "../../commands/file-transfer";
|
|
12
|
+
import { Authn } from "../../types/identity";
|
|
13
|
+
import { AwsResourcePermissionSpec } from "../aws/types";
|
|
14
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
15
|
+
import yargs from "yargs";
|
|
16
|
+
export declare const provisionTransferRequest: (authn: Authn, args: yargs.ArgumentsCamelCase<FileTransferCommandArgs>) => Promise<{
|
|
17
|
+
bucket: string;
|
|
18
|
+
prefix: string;
|
|
19
|
+
region: string;
|
|
20
|
+
awsSpec: AwsResourcePermissionSpec;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const generateTransferUrls: (authn: Authn, target: {
|
|
23
|
+
bucket: string;
|
|
24
|
+
key: string;
|
|
25
|
+
region: string;
|
|
26
|
+
awsSpec: AwsResourcePermissionSpec;
|
|
27
|
+
}, debug?: boolean) => Promise<{
|
|
28
|
+
s3: S3Client;
|
|
29
|
+
getUrl: string;
|
|
30
|
+
deleteUrl: string;
|
|
31
|
+
expirySeconds: {
|
|
32
|
+
get: number;
|
|
33
|
+
delete: number;
|
|
34
|
+
};
|
|
35
|
+
}>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.generateTransferUrls = exports.provisionTransferRequest = void 0;
|
|
13
|
+
const request_1 = require("../../commands/shared/request");
|
|
14
|
+
const auth_1 = require("../aws/auth");
|
|
15
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
16
|
+
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
17
|
+
const lodash_1 = require("lodash");
|
|
18
|
+
const GET_EXPIRES_SECONDS = 5 * 60;
|
|
19
|
+
const DELETE_EXPIRES_SECONDS = 60 * 60;
|
|
20
|
+
const provisionTransferRequest = (authn, args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
const response = yield (0, request_1.request)("request")(Object.assign(Object.assign({}, (0, lodash_1.pick)(args, "$0", "_")), { arguments: [
|
|
22
|
+
"file-transfer",
|
|
23
|
+
"session",
|
|
24
|
+
args.destination,
|
|
25
|
+
...(args.reason ? ["--reason", args.reason] : []),
|
|
26
|
+
], wait: true }), authn, { message: "approval-required" });
|
|
27
|
+
if (!response) {
|
|
28
|
+
throw "Did not receive a response from server";
|
|
29
|
+
}
|
|
30
|
+
const awsSpec = response.request.delegation.aws;
|
|
31
|
+
if (!awsSpec) {
|
|
32
|
+
throw "Backend granted file-transfer access, but there was an error getting AWS access details";
|
|
33
|
+
}
|
|
34
|
+
const { bucketName, bucketRegion, objectPrefix } = response.request.permission.resource;
|
|
35
|
+
return {
|
|
36
|
+
bucket: bucketName,
|
|
37
|
+
prefix: objectPrefix,
|
|
38
|
+
region: bucketRegion,
|
|
39
|
+
awsSpec,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
exports.provisionTransferRequest = provisionTransferRequest;
|
|
43
|
+
const generateTransferUrls = (authn, target, debug) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
const credentials = yield (0, auth_1.awsCloudAuth)(authn, target.awsSpec, debug);
|
|
45
|
+
const sdkCredentials = {
|
|
46
|
+
accessKeyId: credentials.AWS_ACCESS_KEY_ID,
|
|
47
|
+
secretAccessKey: credentials.AWS_SECRET_ACCESS_KEY,
|
|
48
|
+
sessionToken: credentials.AWS_SESSION_TOKEN,
|
|
49
|
+
};
|
|
50
|
+
const s3 = new client_s3_1.S3Client({
|
|
51
|
+
region: target.region,
|
|
52
|
+
credentials: sdkCredentials,
|
|
53
|
+
});
|
|
54
|
+
const objectArgs = { Bucket: target.bucket, Key: target.key };
|
|
55
|
+
const [getUrl, deleteUrl] = yield Promise.all([
|
|
56
|
+
(0, s3_request_presigner_1.getSignedUrl)(s3, new client_s3_1.GetObjectCommand(objectArgs), {
|
|
57
|
+
expiresIn: GET_EXPIRES_SECONDS,
|
|
58
|
+
}),
|
|
59
|
+
(0, s3_request_presigner_1.getSignedUrl)(s3, new client_s3_1.DeleteObjectCommand(objectArgs), {
|
|
60
|
+
expiresIn: DELETE_EXPIRES_SECONDS,
|
|
61
|
+
}),
|
|
62
|
+
]);
|
|
63
|
+
return {
|
|
64
|
+
s3,
|
|
65
|
+
getUrl,
|
|
66
|
+
deleteUrl,
|
|
67
|
+
expirySeconds: {
|
|
68
|
+
get: GET_EXPIRES_SECONDS,
|
|
69
|
+
delete: DELETE_EXPIRES_SECONDS,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
exports.generateTransferUrls = generateTransferUrls;
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/file-transfer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,2DAAwD;AAGxD,sCAA2C;AAG3C,kDAI4B;AAC5B,wEAA6D;AAC7D,mCAA8B;AAG9B,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,CAAC;AACnC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,CAAC;AAEhC,MAAM,wBAAwB,GAAG,CACtC,KAAY,EACZ,IAAuD,EACvD,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAO,EAAC,SAAS,CAAC,iCAIlC,IAAA,aAAI,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KACxB,SAAS,EAAE;YACT,eAAe;YACf,SAAS;YACT,IAAI,CAAC,WAAW;YAChB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,EACD,IAAI,EAAE,IAAI,KAEZ,KAAK,EACL,EAAE,OAAO,EAAE,mBAAmB,EAAE,CACjC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,wCAAwC,CAAC;KAChD;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,yFAAyF,CAAC;KACjG;IAED,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,GAC9C,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IAEvC,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,OAAO;KACR,CAAC;AACJ,CAAC,CAAA,CAAC;AAvCW,QAAA,wBAAwB,4BAuCnC;AAEK,MAAM,oBAAoB,GAAG,CAClC,KAAY,EACZ,MAKC,EACD,KAAe,EAMd,EAAE;IACH,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAY,EAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG;QACrB,WAAW,EAAE,WAAW,CAAC,iBAAiB;QAC1C,eAAe,EAAE,WAAW,CAAC,qBAAqB;QAClD,YAAY,EAAE,WAAW,CAAC,iBAAiB;KAC5C,CAAC;IAEF,MAAM,EAAE,GAAG,IAAI,oBAAQ,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,cAAc;KAC5B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,IAAA,mCAAY,EAAC,EAAE,EAAE,IAAI,4BAAgB,CAAC,UAAU,CAAC,EAAE;YACjD,SAAS,EAAE,mBAAmB;SAC/B,CAAC;QACF,IAAA,mCAAY,EAAC,EAAE,EAAE,IAAI,+BAAmB,CAAC,UAAU,CAAC,EAAE;YACpD,SAAS,EAAE,sBAAsB;SAClC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,EAAE;QACF,MAAM;QACN,SAAS;QACT,aAAa,EAAE;YACb,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,sBAAsB;SAC/B;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AA/CW,QAAA,oBAAoB,wBA+C/B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** Copyright © 2024-present P0 Security
|
|
2
|
+
|
|
3
|
+
This file is part of @p0security/cli
|
|
4
|
+
|
|
5
|
+
@p0security/cli is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
|
|
6
|
+
|
|
7
|
+
@p0security/cli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
+
|
|
9
|
+
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
|
+
**/
|
|
11
|
+
import { PermissionSpec } from "../../types/request";
|
|
12
|
+
import { AwsResourcePermissionSpec } from "../aws/types";
|
|
13
|
+
export type FileTransferPermission = {
|
|
14
|
+
resource: {
|
|
15
|
+
accountId: string;
|
|
16
|
+
instanceId: string;
|
|
17
|
+
instanceName: string;
|
|
18
|
+
arn: string;
|
|
19
|
+
region: string;
|
|
20
|
+
bucketName: string;
|
|
21
|
+
bucketRegion: string;
|
|
22
|
+
objectPrefix: string;
|
|
23
|
+
};
|
|
24
|
+
destination: string;
|
|
25
|
+
type: "resource";
|
|
26
|
+
};
|
|
27
|
+
export type FileTransferPermissionSpec = PermissionSpec<"file-transfer", FileTransferPermission, Record<string, never>> & {
|
|
28
|
+
delegation: {
|
|
29
|
+
aws?: AwsResourcePermissionSpec;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/plugins/file-transfer/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ensureGcloudLogin = exports.getGcloudAccessToken = void 0;
|
|
13
|
+
/** Copyright © 2024-present P0 Security
|
|
14
|
+
|
|
15
|
+
This file is part of @p0security/cli
|
|
16
|
+
|
|
17
|
+
@p0security/cli is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
|
|
18
|
+
|
|
19
|
+
@p0security/cli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
20
|
+
|
|
21
|
+
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
22
|
+
**/
|
|
23
|
+
const subprocess_1 = require("../../common/subprocess");
|
|
24
|
+
const stdio_1 = require("../../drivers/stdio");
|
|
25
|
+
const util_1 = require("../../util");
|
|
26
|
+
const util_2 = require("./util");
|
|
27
|
+
const getGcloudAccessToken = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
const { command, args } = (0, util_2.gcloudCommandArgs)(["auth", "print-access-token"]);
|
|
29
|
+
// Force debug=false otherwise it prints the access token
|
|
30
|
+
return yield (0, subprocess_1.asyncSpawn)({ debug: false }, command, args);
|
|
31
|
+
});
|
|
32
|
+
exports.getGcloudAccessToken = getGcloudAccessToken;
|
|
33
|
+
const runGcloudLogin = ({ debug }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
(0, stdio_1.print2)("Logging in to Google Cloud CLI...");
|
|
36
|
+
const { command, args } = (0, util_2.gcloudCommandArgs)(["auth", "login"]);
|
|
37
|
+
const child = (0, util_1.spawnWithCleanEnv)(command, args, {
|
|
38
|
+
// stdio is [stdin, stdout, stderr]. We send the child's stdout to OUR
|
|
39
|
+
// stderr instead of inheriting fd 1: `gcloud auth login` writes its
|
|
40
|
+
// human-readable progress to stdout, but this CLI reserves fd 1 for
|
|
41
|
+
// machine-readable output (e.g. access tokens, JSON) that callers parse.
|
|
42
|
+
// Inheriting the child's stdout would interleave gcloud's chatter into
|
|
43
|
+
// that stream and corrupt it, so we redirect it to stderr — where
|
|
44
|
+
// human-facing text belongs.
|
|
45
|
+
stdio: ["inherit", process.stderr, "inherit"],
|
|
46
|
+
});
|
|
47
|
+
child.on("error", (error) => reject(`Failed to run 'gcloud auth login': ${error.message}`));
|
|
48
|
+
child.on("exit", (code) => {
|
|
49
|
+
if (debug) {
|
|
50
|
+
(0, stdio_1.print2)(`'gcloud auth login' exited with code ${code}`);
|
|
51
|
+
}
|
|
52
|
+
if (code === 0) {
|
|
53
|
+
resolve();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
reject("Google Cloud CLI login failed. Please run 'gcloud auth login' and try again.");
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
const ensureGcloudLogin = ({ debug, } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
+
try {
|
|
63
|
+
const accessToken = yield (0, exports.getGcloudAccessToken)();
|
|
64
|
+
if (debug) {
|
|
65
|
+
(0, stdio_1.print2)("Google Cloud CLI credentials are valid; skipping login.");
|
|
66
|
+
}
|
|
67
|
+
return accessToken;
|
|
68
|
+
}
|
|
69
|
+
catch (_a) {
|
|
70
|
+
yield runGcloudLogin({ debug });
|
|
71
|
+
return yield (0, exports.getGcloudAccessToken)();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
exports.ensureGcloudLogin = ensureGcloudLogin;
|
|
75
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/plugins/google/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wDAAqD;AACrD,+CAA6C;AAC7C,qCAA+C;AAC/C,iCAA2C;AAEpC,MAAM,oBAAoB,GAAG,GAA0B,EAAE;IAC9D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAA,wBAAiB,EAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC5E,yDAAyD;IACzD,OAAO,MAAM,IAAA,uBAAU,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC,CAAA,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEF,MAAM,cAAc,GAAG,CAAO,EAAE,KAAK,EAAuB,EAAE,EAAE;IAC9D,OAAA,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAA,cAAM,EAAC,mCAAmC,CAAC,CAAC;QAC5C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAA,wBAAiB,EAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAA,wBAAiB,EAAC,OAAO,EAAE,IAAI,EAAE;YAC7C,sEAAsE;YACtE,oEAAoE;YACpE,oEAAoE;YACpE,yEAAyE;YACzE,uEAAuE;YACvE,kEAAkE;YAClE,6BAA6B;YAC7B,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9C,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1B,MAAM,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC9D,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE;gBACT,IAAA,cAAM,EAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;aACxD;YACD,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,EAAE,CAAC;aACX;iBAAM;gBACL,MAAM,CACJ,8EAA8E,CAC/E,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAA;EAAA,CAAC;AAEE,MAAM,iBAAiB,GAAG,CAAO,EACtC,KAAK,MACkB,EAAE,EAAmB,EAAE;IAC9C,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,4BAAoB,GAAE,CAAC;QACjD,IAAI,KAAK,EAAE;YACT,IAAA,cAAM,EAAC,yDAAyD,CAAC,CAAC;SACnE;QACD,OAAO,WAAW,CAAC;KACpB;IAAC,WAAM;QACN,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,OAAO,MAAM,IAAA,4BAAoB,GAAE,CAAC;KACrC;AACH,CAAC,CAAA,CAAC;AAbW,QAAA,iBAAiB,qBAa5B"}
|
|
@@ -22,6 +22,7 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
22
22
|
**/
|
|
23
23
|
const subprocess_1 = require("../../common/subprocess");
|
|
24
24
|
const stdio_1 = require("../../drivers/stdio");
|
|
25
|
+
const auth_1 = require("./auth");
|
|
25
26
|
const util_1 = require("./util");
|
|
26
27
|
/**
|
|
27
28
|
* Adds an ssh public key to the user object's sshPublicKeys array in Google Workspace.
|
|
@@ -37,9 +38,12 @@ const util_1 = require("./util");
|
|
|
37
38
|
const importSshKey = (publicKey, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
39
|
var _a;
|
|
39
40
|
const debug = (_a = options === null || options === void 0 ? void 0 : options.debug) !== null && _a !== void 0 ? _a : false;
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
// Ensure the user is logged in to the Google Cloud CLI and return a valid
|
|
42
|
+
// access token. This is the earliest point a gcloud token is required in the
|
|
43
|
+
// direct `p0 ssh` and `ssh-resolve` flows (before the cloudProviderLogin hook
|
|
44
|
+
// runs), so the login must happen here. `gcloud auth login` runs only when
|
|
45
|
+
// the existing token is invalid.
|
|
46
|
+
const accessToken = yield (0, auth_1.ensureGcloudLogin)({ debug });
|
|
43
47
|
const { command: accountCommand, args: accountArgs } = (0, util_1.gcloudCommandArgs)([
|
|
44
48
|
"config",
|
|
45
49
|
"get-value",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-key.js","sourceRoot":"","sources":["../../../../src/plugins/google/ssh-key.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wDAAqD;AACrD,+CAA6C;
|
|
1
|
+
{"version":3,"file":"ssh-key.js","sourceRoot":"","sources":["../../../../src/plugins/google/ssh-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
22
22
|
**/
|
|
23
23
|
const ssh_1 = require("../../commands/shared/ssh");
|
|
24
24
|
const keys_1 = require("../../common/keys");
|
|
25
|
+
const auth_1 = require("./auth");
|
|
25
26
|
const install_1 = require("./install");
|
|
26
27
|
const ssh_key_1 = require("./ssh-key");
|
|
27
28
|
const util_1 = require("./util");
|
|
@@ -60,8 +61,10 @@ const unprovisionedAccessPatterns = [
|
|
|
60
61
|
{ pattern: /Error while connecting \[4010: 'destination read failed'\]/ },
|
|
61
62
|
];
|
|
62
63
|
exports.gcpSshProvider = {
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
cloudProviderLogin: (_authn, _request, debug) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
yield (0, auth_1.ensureGcloudLogin)({ debug });
|
|
66
|
+
return undefined;
|
|
67
|
+
}),
|
|
65
68
|
ensureInstall: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
69
|
if (!(yield (0, install_1.ensureGcpSshInstall)())) {
|
|
67
70
|
throw "Please try again after installing the required GCP utilities";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/google/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,mDAA0D;AAC1D,4CAAqD;AAErD,uCAAgD;AAChD,uCAAyC;AAEzC,iCAA2C;AAE3C,oGAAoG;AACpG,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,2BAA2B,GAAG;IAClC,EAAE,OAAO,EAAE,iCAAiC,EAAE;IAC9C;QACE,mEAAmE;QACnE,OAAO,EAAE,uCAAuC;KACjD;IACD,EAAE,OAAO,EAAE,mDAAmD,EAAE;IAChE;QACE,OAAO,EAAE,+CAA+C;QACxD,kBAAkB,EAAE,IAAI;KACzB;IACD,EAAE,OAAO,EAAE,4DAA4D,EAAE;CACjE,CAAC;AAEE,QAAA,cAAc,GAIvB;IACF,
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/google/ssh.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,11 +30,9 @@ export type K8sClusterConfig = {
|
|
|
30
30
|
export type K8sConfig = {
|
|
31
31
|
"iam-write": Record<string, K8sClusterConfig>;
|
|
32
32
|
};
|
|
33
|
-
export type K8sPermissionSpec = PermissionSpec<"k8s", K8sResourcePermission, K8sGenerated
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
};
|
|
33
|
+
export type K8sPermissionSpec = PermissionSpec<"k8s", K8sResourcePermission, K8sGenerated, {
|
|
34
|
+
aws?: AwsResourcePermissionSpec;
|
|
35
|
+
}>;
|
|
38
36
|
export type K8sResourcePermission = {
|
|
39
37
|
resource: {
|
|
40
38
|
name: string;
|
|
@@ -2,5 +2,7 @@ import { TokenResponse } from "../types/oidc";
|
|
|
2
2
|
import { OrgData } from "../types/org";
|
|
3
3
|
declare const loginPlugins: readonly ["google", "okta", "ping", "oidc-pkce", "microsoft", "azure-oidc", "google-oidc", "aws-oidc"];
|
|
4
4
|
export type LoginPluginType = (typeof loginPlugins)[number];
|
|
5
|
-
export declare const pluginLoginMap: Record<string, (org: OrgData
|
|
5
|
+
export declare const pluginLoginMap: Record<string, (org: OrgData, options?: {
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
}) => Promise<TokenResponse>>;
|
|
6
8
|
export {};
|
|
@@ -41,12 +41,12 @@ exports.pluginLoginMap = {
|
|
|
41
41
|
okta: login_4.oktaLogin,
|
|
42
42
|
ping: login_5.pingLogin,
|
|
43
43
|
"google-oidc": login_3.googleLogin,
|
|
44
|
-
"oidc-pkce": (org) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
"oidc-pkce": (org, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
45
|
const providerType = (0, authUtils_1.getProviderType)(org);
|
|
46
46
|
if (!providerType) {
|
|
47
47
|
throw "Missing provider type for OIDC PKCE login";
|
|
48
48
|
}
|
|
49
|
-
return yield exports.pluginLoginMap[providerType](org);
|
|
49
|
+
return yield exports.pluginLoginMap[providerType](org, options);
|
|
50
50
|
}),
|
|
51
51
|
password: login_2.emailPasswordLogin,
|
|
52
52
|
"azure-oidc": login_1.azureLogin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugins/login.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,kDAAqD;AAGrD,yCAA2C;AAC3C,yCAAmD;AACnD,0CAA6C;AAC7C,wCAAyC;AACzC,wCAAyC;AAEzC,MAAM,YAAY,GAAG;IACnB,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;CACF,CAAC;AAIE,QAAA,cAAc,GAGvB;IACF,MAAM,EAAE,mBAAW;IACnB,IAAI,EAAE,iBAAS;IACf,IAAI,EAAE,iBAAS;IACf,aAAa,EAAE,mBAAW;IAC1B,WAAW,EAAE,CAAO,GAAG,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugins/login.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,kDAAqD;AAGrD,yCAA2C;AAC3C,yCAAmD;AACnD,0CAA6C;AAC7C,wCAAyC;AACzC,wCAAyC;AAEzC,MAAM,YAAY,GAAG;IACnB,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;CACF,CAAC;AAIE,QAAA,cAAc,GAGvB;IACF,MAAM,EAAE,mBAAW;IACnB,IAAI,EAAE,iBAAS;IACf,IAAI,EAAE,iBAAS;IACf,aAAa,EAAE,mBAAW;IAC1B,WAAW,EAAE,CAAO,GAAG,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,YAAY,GAAG,IAAA,2BAAe,EAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,2CAA2C,CAAC;SACnD;QACD,OAAO,MAAM,sBAAc,CAAC,YAAY,CAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,CAAA;IACD,QAAQ,EAAE,0BAAkB;IAC5B,YAAY,EAAE,kBAAU;CACzB,CAAC"}
|
|
@@ -2,8 +2,16 @@ import { Identity } from "../../types/identity";
|
|
|
2
2
|
import { TokenResponse } from "../../types/oidc";
|
|
3
3
|
import { OrgData } from "../../types/org";
|
|
4
4
|
import { AwsFederatedLogin } from "../aws/types";
|
|
5
|
-
/** Logs in to Okta via OIDC
|
|
6
|
-
|
|
5
|
+
/** Logs in to Okta via OIDC.
|
|
6
|
+
*
|
|
7
|
+
* Requests `offline_access` so we can silently refresh the access token at TTL.
|
|
8
|
+
* Some Okta tenants disallow this scope at the app config — in that case
|
|
9
|
+
* `/device/authorize` returns `invalid_scope`; we retry once without it and
|
|
10
|
+
* proceed with the legacy device-only flow.
|
|
11
|
+
*/
|
|
12
|
+
export declare const oktaLogin: (org: OrgData, options?: {
|
|
13
|
+
debug?: boolean;
|
|
14
|
+
}) => Promise<TokenResponse>;
|
|
7
15
|
/**
|
|
8
16
|
* Converts OIDC tokens into a SAML assertion for AWS federated authentication.
|
|
9
17
|
*
|
|
@@ -140,18 +140,44 @@ const fetchSamlResponse = (org, { access_token }) => __awaiter(void 0, void 0, v
|
|
|
140
140
|
const samlInputValue = $('input[name="SAMLResponse"]').val();
|
|
141
141
|
return typeof samlInputValue === "string" ? samlInputValue : undefined;
|
|
142
142
|
});
|
|
143
|
-
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
143
|
+
const oktaOidcUrls = (org) => () => {
|
|
144
|
+
const providerType = (0, authUtils_1.getProviderType)(org);
|
|
145
|
+
const providerDomain = (0, authUtils_1.getProviderDomain)(org);
|
|
146
|
+
(0, node_assert_1.default)(providerType === "okta", "Invalid provider configuration (expected okta OIDC provider)");
|
|
147
|
+
(0, node_assert_1.default)(providerDomain, "Invalid provider configuration (missing Okta domain)");
|
|
148
|
+
return {
|
|
149
|
+
deviceAuthorizationUrl: `https://${providerDomain}/oauth2/v1/device/authorize`,
|
|
150
|
+
tokenUrl: `https://${providerDomain}/oauth2/v1/token`,
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
const OKTA_BASE_SCOPE = "openid email profile";
|
|
154
|
+
const OKTA_BROWSER_SCOPE = `${OKTA_BASE_SCOPE} okta.apps.sso`;
|
|
155
|
+
const OKTA_OFFLINE_SCOPE = `${OKTA_BASE_SCOPE} offline_access`;
|
|
156
|
+
/** Logs in to Okta via OIDC.
|
|
157
|
+
*
|
|
158
|
+
* Requests `offline_access` so we can silently refresh the access token at TTL.
|
|
159
|
+
* Some Okta tenants disallow this scope at the app config — in that case
|
|
160
|
+
* `/device/authorize` returns `invalid_scope`; we retry once without it and
|
|
161
|
+
* proceed with the legacy device-only flow.
|
|
162
|
+
*/
|
|
163
|
+
const oktaLogin = (org, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
164
|
+
const urls = oktaOidcUrls(org);
|
|
165
|
+
try {
|
|
166
|
+
const tokenResponse = yield (0, login_1.oidcLogin)((0, login_1.oidcLoginSteps)(org, OKTA_OFFLINE_SCOPE, urls));
|
|
167
|
+
if (!tokenResponse.refresh_token && (options === null || options === void 0 ? void 0 : options.debug)) {
|
|
168
|
+
(0, stdio_1.print2)("Okta token response omitted refresh_token; CLI will re-prompt for auth at session TTL.");
|
|
169
|
+
}
|
|
170
|
+
return tokenResponse;
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
174
|
+
if (!message.includes("invalid_scope"))
|
|
175
|
+
throw e;
|
|
176
|
+
if (options === null || options === void 0 ? void 0 : options.debug) {
|
|
177
|
+
(0, stdio_1.print2)("Okta tenant rejected offline_access; retrying without it.");
|
|
178
|
+
}
|
|
179
|
+
return yield (0, login_1.oidcLogin)((0, login_1.oidcLoginSteps)(org, OKTA_BROWSER_SCOPE, urls));
|
|
180
|
+
}
|
|
155
181
|
});
|
|
156
182
|
exports.oktaLogin = oktaLogin;
|
|
157
183
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/plugins/okta/login.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/plugins/okta/login.ts"],"names":[],"mappings":"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"}
|