日本時間5月16日のContent Cloud Summitで、カスタムアプリにBox AI APIを活用する方法を紹介します。

詳細を表示

アプリケーションコードのスキャフォールディング

ガイド SSOとApp User ウェブアプリ: Box App UserへのOkta IDの関連付け アプリケーションコードのスキャフォールディング

アプリケーションコードのスキャフォールディング

このガイドではまず、必要となるOktaとBoxのアプリケーションを作成するにあたり、コードと構成データを格納するローカルアプリケーションを作成します。

言語/フレームワークの設定に応じて、空のアプリケーションを作成し、必要な依存関係のほか、すべての構成ファイルとプログラムファイルをインストールします。

まずは、以下からお好みの言語/フレームワークを選択してください。

Node

Express.jsフレームワークを使用します。

Java

Spring Bootフレームワークを使用します。

Python

Flaskフレームワークを使用します。

.NET

ASP.NET Coreフレームワークを使用します。

  • アプリケーション用にローカルディレクトリを作成します。
  • そのローカルディレクトリの中にpackage.jsonファイルを作成し、お好みのエディタで開いたら、以下の内容をコピーして貼り付け、ファイルを保存して閉じます。
{
  "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"
  }
}
  • ターミナル/コンソールからnpm initを実行して依存関係をインストールします。
  • ローカルディレクトリに2つのファイル (server.jsおよびconfig.js) を作成します。
  • config.jsを開いて、以下のデフォルト構成を保存します。
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';
  • Eclipseで新しいプロジェクトを作成します。求められたら、Gradleプロジェクトを選択します。
  • プロジェクトの一意の名前を入力します。このガイドではokta.sampleという名前を使用しています。
  • build.gradleファイルを開いて以下の依存関係を追加します。保存したら、Gradleプロジェクトを更新します。
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'
}
  • /src/main/resources/application.propertiesファイルを開いて以下のデフォルトを保存します。
okta.oauth2.redirect-uri=/authorization-code/callback
okta.oauth2.issuer=
okta.oauth2.clientId=
okta.oauth2.clientSecret=

security.oauth2.sso.loginPath=/authorization-code/callback
  • アプリケーション用にローカルディレクトリを作成します。
  • ターミナル/コマンドプロンプトでpipコマンド (pip install flask flask_oidc okta boxsdk config) を使用して、必要な依存関係をインストールします。
  • ローカルディレクトリに3つのファイル (client_secrets.jsonconfig.pyserver.py) を作成します。
  • config.pyを開いて以下の内容を保存します。これは、必要となるOktaアプリの構成情報の一部です。残りの情報については、次の手順で設定します。
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'
  • client_secrets.jsonを開いて以下の内容を保存します。これは、構成時にFlask OpenID Connect統合で使用される標準のオブジェクトです。残りの情報については、次の手順で設定します。
{
  "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"
    ]
  }
}
  • アプリケーション用にローカルディレクトリを作成します。
  • コマンドプロンプト/ターミナルウィンドウを開いて、ローカルアプリケーションディレクトリに移動します。.NET Core CLIを使用して、dotnet new mvcと入力してEnterキーを押します。これにより、ASP.NET Core MVC (Model-View-Controller) ウェブアプリに主要なスキャフォールディングが作成されます。または、Visual Studioから直接このアプリケーションを作成することもできます。
  • コマンドプロンプト/ターミナルウィンドウで、ローカルアプリケーションディレクトリにdotnet add package Okta.AspNetCoreと入力してOkta ASP.NET Coreの依存関係を追加し、dotnet add package Box.V2.Coreと入力してBoxの依存関係を追加します。
  • Visual Studioまたはお好みのエディタに新しいアプリケーションを読み込みます。
  • プロジェクトのルート内でStartup.csを開きます。
  • ファイルの先頭に以下のパッケージ宣言を追加します。
using Microsoft.AspNetCore.Authentication.Cookies;
using Okta.AspNetCore;
  • ConfigureServicesメソッドの内容を以下の内容に置き換えます。具体的なOktaアプリケーションの値は次の手順で設定します。
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 = ""
});

次の行をConfigureメソッドの先頭に追加します。

app.UseAuthentication();

前の手順が完了していません

開始するには、お好みの言語/フレームワークを選択してください。

まとめ

  • 新しいローカルアプリケーション、ファイル、基本的な構成の詳細を作成しました。
  • プロジェクトの依存関係をすべてインストールしました。