Box Developer Documentation
 

    Scaffold application code

    Scaffold application code

    Our first step in this guide is to create a local application to house our code and configuration data as we start to create the Okta and Box applications that will be needed.

    Depending on your language / framework preference, create a blank application, install the required dependencies, as well as all configuration and program files.

    Choose your preferred language / framework below to get started.

    Node

    Using the Express.js framework.

    Java

    Using the Spring Boot framework.

    Python

    Using the Flask framework.

    .NET

    Using the ASP.NET Core framework.

    • Create a local directory for your application.
    • Create a package.json file inside the local directory, open it in your preferred editor, copy / paste the following into it, and save / exit the file.
    {
      "name": "okta-box",
      "version": "1.0.0",
      "description": "Box / Okta sample integration",
      "main": "server.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js"
      },
      "author": "Box",
      "license": "ISC",
      "dependencies": {
        "@okta/oidc-middleware": "^4.0.0",
        "@okta/okta-sdk-nodejs": "^3.2.0",
        "box-node-sdk": "^1.31.0",
        "express-session": "^1.17.0"
      }
    }
    
    • Run npm init from the terminal / console to install dependencies.
    • Create two files, server.js and config.js in the local directory.
    • Open config.js and save the following default configuration.
    const oktaClientId = exports.oktaClientId = '';
    const oktaClientSecret = exports.oktaClientSecret = '';
    const oktaOrgUrl = exports.oktaOrgUrl = '';
    const oktaBaseUrl = exports.oktaBaseUrl = 'http://localhost:3000';
    const oktaRedirect = exports.oktaRedirect = '/authorization-code/callback';
    
    • From Eclipse, create a new project. When prompted, select a Gradle project.
    • Enter a unique name for the project, we used okta.sample for this guide.
    • Open your build.gradle file and add the following dependencies. Once saved, refresh the Gradle project.
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-security'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'com.okta.spring:okta-spring-boot-starter:1.4.0'
        testImplementation('org.springframework.boot:spring-boot-starter-test') {
          exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        }
        testImplementation 'org.springframework.security:spring-security-test'
        compile 'com.box:box-java-sdk:2.44.1'
    }
    
    • Open your /src/main/resources/application.properties file and save the following defaults.
    okta.oauth2.redirect-uri=/authorization-code/callback
    okta.oauth2.issuer=
    okta.oauth2.clientId=
    okta.oauth2.clientSecret=
    
    security.oauth2.sso.loginPath=/authorization-code/callback
    
    • Create a local directory for your application.
    • Install needed dependencies using the following pip command from your terminal / command prompt: pip install flask flask_oidc okta boxsdk config
    • Create three files in the local directory, client_secrets.json, config.py, and server.py.
    • Open config.py and save the following into it. This will be some of Okta app configuration information needed. We'll fill in the remaining information in the next step.
    okta_client_secret = 'YOUR OKTA CLIENT SECRET'
    okta_org_url = 'YOUR OKTA ORG URL'
    okta_auth_token = 'YOUR OKTA APP TOKEN'
    okta_callback_route = '/oidc/callback'
    
    • Open client_secrets.json and save the following into it. This will be a standard object that the Flask OpenID Connect integration will use during configuration. We'll fill in the remaining information in the next step.
    {
      "web": {
        "client_id": "OKTA CLIENT ID",
        "client_secret": "OKTA CLIENT SECRET",
        "auth_uri": "OKTA AUTHORIZE URI",
        "token_uri": "OKTA TOKEN URI",
        "issuer": "OKTA APP DEFAULT",
        "userinfo_uri": "OKTA APP USER INFO URI",
        "redirect_uris": [
          "http://127.0.0.1:5000/oidc/callbac"
        ]
      }
    }
    
    • Create a local directory for your application.
    • Open a command prompt / terminal window and go to the local application directory. Using the .NET Core CLI type dotnet new mvc and hit enter. This will create the main scaffolding for a ASP.NET Core MVC (Model-View-Controller) web app. Alternately, create the application directly from Visual Studio.
    • From the command prompt / terminal window in the local application directory, add the Okta ASP.NET Core dependencies by typing dotnet add package Okta.AspNetCoreand the Box dependencies by typing dotnet add package Box.V2.Core.
    • Load your new application into Visual Studio or your preferred editor.
    • Within the root of the project, open Startup.cs.
    • Add the following package declarations to the top of the file.
    using Microsoft.AspNetCore.Authentication.Cookies;
    using Okta.AspNetCore;
    
    • Replace the content of the ConfigureServices method with the following. We will fill in the specific Okta application values in the next step.
    services.AddControllersWithViews();
    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = OktaDefaults.MvcAuthenticationScheme;
    })
    .AddCookie()
    .AddOktaMvc(new OktaMvcOptions
    {
        // Replace these values with your Okta configuration
        OktaDomain = "",
        ClientId = "",
        ClientSecret = ""
    });
    

    Add the following line to the top of the Configure method.

    app.UseAuthentication();
    

    Incomplete previous step

    Please select a preferred language / framework to get started.

    Summary

    • You created a new local application, files, and basic configuration details.
    • You installed all project dependencies.