1
1
import { Client } from "@microsoft/microsoft-graph-client" ;
2
2
import { ClientCertificateCredential } from "@azure/identity" ;
3
3
import { parseDisplayName } from "../common/utils.js" ;
4
+ import { logger } from "./logging.js" ;
4
5
5
6
export interface EntraUser {
6
7
email : string ;
@@ -24,13 +25,14 @@ interface GraphUser {
24
25
export const createEntraClient = (
25
26
tenantId : string ,
26
27
clientId : string ,
27
- clientCertificate : string , // Base64 encoded PFX or PEM certificate
28
+ clientCertificate : string ,
28
29
) : Client => {
29
- // Decode the certificate from base64
30
- const certificateBuffer = Buffer . from ( clientCertificate , "base64" ) ;
31
-
30
+ logger . info ( "Creating the Entra ID client" ) ;
31
+ const certificatePem = Buffer . from ( clientCertificate , "base64" ) . toString (
32
+ "utf-8" ,
33
+ ) ;
32
34
const credential = new ClientCertificateCredential ( tenantId , clientId , {
33
- certificate : certificateBuffer . toString ( "utf-8" ) , // For PEM format
35
+ certificate : certificatePem ,
34
36
} ) ;
35
37
36
38
return Client . initWithMiddleware ( {
@@ -51,7 +53,7 @@ export const createEntraClient = (
51
53
export const getAllEntraUsers = async (
52
54
client : Client ,
53
55
) : Promise < EntraUser [ ] > => {
54
- console . log ( "Fetching users from Entra ID..." ) ;
56
+ logger . info ( "Fetching users from Entra ID..." ) ;
55
57
const users : EntraUser [ ] = [ ] ;
56
58
57
59
try {
@@ -104,7 +106,7 @@ export const getAllEntraUsers = async (
104
106
}
105
107
}
106
108
107
- console . log ( `Fetched ${ users . length } users from Entra ID` ) ;
109
+ logger . info ( `Fetched ${ users . length } users from Entra ID` ) ;
108
110
return users ;
109
111
} catch ( error ) {
110
112
console . error ( "Error fetching Entra ID users:" , error ) ;
0 commit comments