Skip to content

Commit 932af7d

Browse files
Add new config value for own public cert and fix kombit strategy values (#289)
1 parent 3fec22b commit 932af7d

File tree

4 files changed

+21
-13
lines changed

4 files changed

+21
-13
lines changed

src/auth/kombit.strategy.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,36 @@ export class KombitStrategy extends PassportStrategy(SamlStrategy, "kombit") {
1414
constructor(private readonly authService: AuthService) {
1515
super(
1616
{
17-
issuer: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/metadata`,
1817
callbackUrl: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/login/callback`,
19-
publicCert: configuration()["kombit"]["certificatePublicKey"],
20-
idpCert: configuration()["kombit"]["certificatePublicKey"],
21-
audience: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/metadata`,
22-
logoutCallbackUrl: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/logout/callback`,
23-
logoutUrl: configuration()["kombit"]["entryPoint"],
2418
entryPoint: configuration()["kombit"]["entryPoint"],
25-
identifierFormat: "",
19+
issuer: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/metadata`,
20+
audience: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/metadata`,
21+
idpCert: configuration()["kombit"]["certificatePublicKey"],
22+
privateKey: configuration()["kombit"]["certificatePrivateKey"],
23+
publicCert: configuration()["kombit"]["certificateOwnPublicKey"],
2624
decryptionPvk: configuration()["kombit"]["certificatePrivateKey"],
2725
signatureAlgorithm: "sha256",
26+
logoutCallbackUrl: `${configuration()["backend"]["baseurl"]}/api/v1/auth/kombit/logout/callback`,
27+
logoutUrl: configuration()["kombit"]["entryPoint"],
28+
acceptedClockSkewMs: 1000, // Allow some slack in clock sync
2829
disableRequestedAuthnContext: true,
30+
wantAuthnResponseSigned: false,
31+
identifierFormat: "",
2932
authnRequestBinding: "HTTP-Redirect",
30-
acceptedClockSkewMs: 1000, // Allow some slack in clock sync
3133
},
32-
(req, profile, done) => {
34+
function (profile: Profile, done: Function) {
3335
return this.validate(profile, done);
3436
}
3537
);
3638
}
3739

3840
// eslint-disable-next-line @typescript-eslint/ban-types
39-
async validate(profile: Profile, done: Function): Promise<UserResponseDto> {
41+
public async validate(profile: Profile, done: Function): Promise<UserResponseDto> {
42+
this.logger.log("Profile", profile);
43+
const samlResponse = profile.getSamlResponseXml();
44+
this.logger.log("SAML Response", samlResponse);
45+
this.logger.log("AssertionXML", profile.getAssertionXml());
46+
4047
try {
4148
const exists = await this.authService.validateKombitUser(profile);
4249
done(null, exists);

src/config/configuration.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ export default (): any => {
2424
entryPoint:
2525
process.env.KOMBIT_ENTRYPOINT ||
2626
"https://adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2/issue.idp",
27-
certificatePublicKey: process.env.KOMBIT_CERTIFICATEPUBLICKEY || "INSERT_KOMBIT_CERT", // Public certificate from Kombit Test server
27+
certificatePublicKey: process.env.KOMBIT_CERTIFICATEPUBLICKEY || "INSERT_KOMBIT_CERT", // Public certificate from Kombit server
2828
certificatePrivateKey: process.env.KOMBIT_CERTIFICATEPRIVATEKEY || "",
29+
certificateOwnPublicKey: process.env.KOMBIT_CERTIFICATEOWNPUBLICKEY || "",
2930
roleUri: process.env.KOMBIT_ROLE_NAME || "http://os2iot.dk/roles/usersystemrole/adgang/",
3031
},
3132
chirpstack: {

src/services/user-management/auth.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { ErrorCodes } from "@entities/enum/error-codes.enum";
88
import { Injectable, Logger, UnauthorizedException } from "@nestjs/common";
99
import { JwtService } from "@nestjs/jwt";
1010
import { compare } from "bcryptjs";
11-
import { Profile } from "@node-saml/node-saml";
11+
import { Profile } from "@node-saml/passport-saml";
1212
import * as xml2js from "xml2js";
1313
import { ApiKeyService } from "../api-key-management/api-key.service";
1414
import { UserService } from "./user.service";

src/services/user-management/user.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { isPermissionType } from "@helpers/security-helper";
2222
import { nameof } from "@helpers/type-helper";
2323
import { OS2IoTMail } from "@services/os2iot-mail.service";
2424
import { AuthenticatedRequest } from "@dto/internal/authenticated-request";
25-
import { Profile } from "@node-saml/node-saml";
25+
import { Profile } from "@node-saml/passport-saml";
2626

2727
@Injectable()
2828
export class UserService {

0 commit comments

Comments
 (0)