Oktaは、今日のクラウド環境でアイデンティティ管理に広く使用されています。Oktaの機能をNuxeo Platformと統合したいと考えた理由はまさにそこにあります。認証とユーザプロビジョニングの両方でOktaを使用するようNuxeo Platformを構成する操作は、実に簡単です!

Nuxeo Platformは、任意のSAML 2.0アイデンティティプロバイダとの統合をサポートしており、これまでにOkta、OneLogin、Ping One、SSOCircle、Google、OIF、ADFSでのテストに成功しています。このブログでは、Oktaに焦点を合わせて、Nuxeo Studioを使用した構成および統合の設定がいかにすばやく簡単であるかをご説明します。

使用事例

アイデンティティプロバイダとしてOktaを既に使用している組織があるとします。この組織は、デジタルアセット管理(DAM)のためのグローバルソリューションとしてNuxeo Platformを実装することを決定しており、Oktaを使用したユーザ認証をNuxeo Platformで構成する必要があります。

前提条件

Nuxeo Platformに関する基本的な知識があり、Nuxeo Studioを使用して新しいDAMプロジェクトに機能を追加したことがあることが前提条件となります。

ソリューション

最初からご説明しましょう。このプロセスを迅速に進めるため、既存のOpenShiftクラスタにNuxeo LTS 2016 Dockerコンテナ(8.10)を展開して、http://example-nuxeo-test-okta-integration.apps.io.nuxeo.com/でアクセスできるようにします(これは単なるデモ用のURLであり、後で利用できなくなります)。もちろん、Nuxeo Platformはどこにどのように展開してもかまいません(ここでは、個人的に好きなコンテナを選んだだけです)。Oktaを構成するためにNuxeo側で実行する必要のある手順は常に同じです。実際、Nuxeo Platformを任意のSAML 2.0アイデンティティプロバイダと統合するときと同じ手順に従うことができます。

実行中のNuxeoサーバがない場合は、次のコマンドを実行してコンテナをローカルで起動し、以下の手順に従うことができます。

$ docker run -p 8080:8080 nuxeo:8.10

Oktaの構成

OktaからのSAMLベースのシングルサインオンをサポートするようNuxeo Platformを構成するには、まず、新しいアプリケーションをOktaで設定します。詳細な手順を説明したチュートリアルがOktaドキュメンテーションにありますので、それに従ってください。以下は、そのチュートリアルを簡潔にまとめたものです。

1.Okta組織が既に作成されている必要があります。まだ作成していない場合は、新しい組織を作成してください。
2.[Admin]/[Applications]を選択して、新しいアプリケーションを作成し(この例のアプリケーション名は「Nuxeo Okta Integration」)、サインイン方法としてSAML 2.0を選択します。

Oktaダッシュボードアプリケーション

新しいOktaアプリケーションの作成

3.SAML設定では、「Single sign on URL/IdP」と「Audience URI (SP Entity ID)」を以下のように設定する必要があります。

  • http://$NUXEO_URL/nuxeo/nxstartup.faces - JSF UI(または両方のUI)を使用している場合
  • http://$NUXEO_URL/nuxeo/ui - Web UIだけを使用している場合

    この例では、次の図のようになります。

    Okta SAML設定

    また、認証時にNuxeo Platformに渡す、Oktaユーザプロファイルからの「lastName」、「firstName」、「email」の各プロパティのマッピングも行いました。

4.必要となる可能性のある追加的な情報をすべて構成したら(Oktaからフィードバックを求められます)、(ほぼ)完了です。

5.アプリケーションが作成されたら、このアプリケーションのアイデンティティプロバイダメタデータを忘れずに取得してください。このメタデータはNuxeo側で必要となります。Oktaアプリケーションで[Sign On]タブに移動して、リンク場所をコピーします(この情報は、次の図に示すとおり[View Setup Instructions]で確認できます)。

OktaアプリケーションでのSAML2.0のセットアップ手順

Oktaでのユーザがどのように管理されるかを確認したい場合は、下記の手順を続けてください。そうでない場合は、「Nuxeoの構成」セクションに進んでください。ユーザは後からでも追加できます。

6.Okta組織でユーザを構成します。

Oktaを初めて使用しているのでなければ、組織でユーザが既に構成されている可能性があります(ディレクトリ統合を通じて構成されたユーザである可能性もあります)。そうでない場合は、ユーザがまだ構成されていないため、架空の人物「John Doe」を追加してください。ユーザをインポートするオプションはOktaに多数ありますが、この例では、単に一人のユーザを手動で追加することにします。

Oktaドメイン/組織のユーザはグローバルであり、組織内の任意のOktaアプリケーションに割り当てることができます。新しいユーザを追加するには、[Directory]/[People]、[Add Person]の順に選択します。

Oktaで架空の人物「John Doe」を作成する

(簡略化のため)メールアドレスをユーザ名として使用して、追加したユーザにメールが送られるよう、アクティベーションメールを送信することを選択します。また、このユーザがそうしているように、多要素認証も設定する必要があります。

7.組織のOktaユーザを新しく作成したOktaアプリケーションに割り当てます。

ユーザJohn Doeがシステムに登録されたため、新しく作成されたアプリケーションにJohn Doeを割り当てる必要があります。作成したアプリケーションの中から「Nuxeo Okta Application」を選択し、[Assignments]/[Assign]/[Assign to People]を選択します。

John DoeをOktaアプリケーションに割り当てる

次に、新しく作成したOktaアプリケーションを認証に使用するようNuxeo Platformを構成しましょう。

Nuxeoの構成

1.SAML2認証マーケットプレイスをインストールします。お使いのサーバに適したバージョン(この例では2.3)を選択してください。

  $NUXEO_HOME/bin/nuxeoctl mp-install saml2-authentication

2.新しい「OKTA_AUTH」authenticationPluginをコントリビューションすることにより、Oktaアプリケーションに対して認証を行うようNuxeo Platformに指示します。また、Oktaで構成した属性と、それと一致する属性とのマッピングも行います。

これを行うには、サンプルコントリビューションをStudioプロジェクトに追加して、「metadata」パラメータ名を変更して、アイデンティティプロバイダメタデータまたはOktaアプリケーションを指すようにします(上記の「Oktaの構成」の手順5でOktaアプリケーションから取得したURL)。

Okta Studioコントリビューション

新しいセットアップをテストする

すべて正しくセットアップされた場合は、Nuxeo Platformのログインページに新しいOktaリンクが次のように表示されます。

Nuxeo Oktaログインページ

Oktaリンクをクリックすると、Oktaログインページにリダイレクトされます。

Nuxeo向けOktaログイン

Oktaへのログイン後、ユーザJohn DoeはNuxeo Platformにアクセスできるようになります。

Nuxeoホーム

初回ログイン後、「John Doe」はユーザとしてNuxeo Platformに表示され、Nuxeo Platform内で通常のユーザとして使用できるようになります(アクセス許可やワークフロータスクなどを割り当てることができます)。初回ログイン前にOktaユーザをNuxeo Platformで使用できるようにする必要がある場合は、SCIMを使用してこれらのユーザをプロビジョニングします。これについて詳しくは、別のブログ投稿でご説明します。