public static async createSpnAndAssignRole()

in src/configure/helper/graphHelper.ts [20:49]


    public static async createSpnAndAssignRole(session: AzureSession, aadAppName: string, scope: string): Promise<AadApplication> {
        let accessToken = await this.getGraphToken(session);
        let tokenCredentials = new TokenCredentials(accessToken);
        let graphClient = new RestClient(tokenCredentials);
        let tenantId = session.tenantId;
        var aadApp: AadApplication;

        return this.createAadApp(graphClient, aadAppName, tenantId)
        .then((aadApplication) => {
            aadApp = aadApplication;
            return this.createSpn(graphClient, aadApp.appId, tenantId);
        })
        .then((spn) => {
            aadApp.objectId = spn.objectId;
            return this.createRoleAssignment(session.credentials2, scope, aadApp.objectId);
        })
        .then(() => {
            return aadApp;
        })
        .catch((error) => {
            let errorMessage = error && error.message;
            if (!errorMessage && error["odata.error"]) {
                errorMessage = error["odata.error"]["message"];
                if (typeof errorMessage === "object") {
                    errorMessage = errorMessage.value;
                }
            }
            throw new Error(errorMessage);
        });
    }