Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

midPoint by OpenStandiaAdvent Calendar 2024

Day 23

midPoint からSaaSにプロビジョニングする(Auth0編)

Last updated at Posted at 2024-12-22

midPoint by OpenStandia Advent Calendar 2024 の23日目は、これまで構築してきた開発/検証環境の上で、今度はSaaSアプリケーションにプロビジョニングさせてみます。例として、クラウド型の認証サービス(いわゆるIdentity as a Service(IDaaS))の1つである、Auth0にユーザーをプロビジョニングします。

22日目で利用した開発/検証環境が前提となります。

追加コネクターの導入

22日目の記事と同じく、追加コネクターを入手してmidPointにロードさせます。

Auth0コネクターもSmartHRコネクターと同じで、Maven CentralからJARファイルの入手が可能です。curlコマンドなどで取得して配置します。

$ curl -O --output-dir ./icf-connectors https://repo1.maven.org/maven2/jp/openstandia/connector/connector-auth0/1.2.1/connector-auth0-1.2.1.jar

JARファイルを配置したディレクトリへのマウント設定や、HTTPS接続のためのトラストストアのセットアップは22日目の記事で解説済みのため、実施済みであることを前提としています。詳細は、22日目の記事を参照してください。

環境の起動

Docker Composeで環境を起動します。midpoint_serverコンテナのログを見ると、追加したコネクターが起動時に認識されてロードされた旨を確認することができます。

midpoint_server  | 2024-12-21 17:21:45,685 [PROVISIONING] [main] INFO (com.evolveum.midpoint.provisioning.impl.ProvisioningServiceImpl): Discovered local connector connector: ConnId jp.openstandia.connector.auth0.Auth0Connector v1.2.1 (OID:8114bf26-a1d0-42e5-9710-4c31ea6a1c56)

Auth0との連携

Auth0を連携先システムとして、midPointのユーザー情報をプロビジョニングするようにしてみます。やることは、接続先のコネクター種類が変わっただけであり、既に解説した以下のプロビジョニング系の記事と同じです。

基本的な設定の流れは上記の記事で既に解説済みのため、本記事ではAuth0固有の設定を中心に紹介します。

Auth0の準備

プロビジョニング先となるAuth0の環境が必要です。本記事では、Auth0のトライアル環境を利用して確認しています。試されたい方は、以下のページよりサインアップしてトライアル用の環境を準備してください。

Auth0の管理コンソールの「Create Application」からアプリケーションの作成を行い、midPointから接続用の「Client ID」と「Client Secret」を払い出します。作成するアプリケーションのタイプとしては「Machine to Machine Applications」を選択します。

image.png

認可するAPIの設定ではAuth0 Management APIを選択肢し、パーミッションを設定します。

  • userで検索してキャプチャのようにチェックを付けます。
    image.png

  • connectionで検索してキャプチャのようにチェックを付けます。
    image.png

Auth0コネクターとしては、他にはRoleとOrganizationも扱うことができますが、今回は使用しません。要件に応じてパーミッションを設定する必要があります。

リソースの作成

Auth0コネクターを正しく導入できていると、リソースの作成画面で「Auth0Connector」を選択できるようになっています。

image.png

image.png

用意したAuth0環境に合わせて、「Auth0 Domain」「Autho0 Client ID」「Auth0 Client Secret」を設定します。

もし、インターネットアクセスにHTTPプロキシが必要な環境であれば、設定項目がありますので必要に応じて設定します。

image.png

オブジェクトタイプ・スキーマでは、今回は「User_Username-Password-Authentication」のみを選択します。

Auth0コネクターはAuth0のDatabase Connectionsを取得し、自動的にオブジェクトタイプ・スキーマの候補に表示します。その際、「User_(Database名)」という名前になります。Auth0にはデフォルトで「Username-Password-Authentication」というConnectionが存在するので、今回はそれを使用します。

image.png

オブジェクトタイプの追加

midPointのユーザーをAuth0にプロビジョニングするため、オブジェクトタイプの追加を行います。

Userの追加

Auth0のユーザー用のオブジェクトタイプを追加します。

image.png

オブジェクトクラスにはUser_Username-Password-Authenticationを設定します。

image.png

midPointのユーザーをプロビジョニングしたいので、「タイプ」ではユーザーを選択します。

image.png

アウトバウンドマッピングの設定

以下のように設定します。

image.png

同期の設定

11日目の記事「midPoint からCSVにプロビジョニングする」と同じ同期の設定をしておきます。

image.png

Correlationの設定

11日目の記事「midPoint からCSVにプロビジョニングする」と同様に、名寄せの設定をしておきます。

インバウンドマッピング

Auth0のemail属性を使った名寄せ専用のインバウンドマッピングを作成しておきます。

image.png

image.png

Correlationの設定

作成したインバウンドマッピングを使用した名寄せルールを設定しておきます。

image.png

image.png

アクティベーションの設定

Auth0のユーザーはアカウントステータスを持っていますので、それもmidPointからプロビジョニングするように設定しておきます。

16日目の記事「midPoint からActive Directoryにプロビジョニングする(ユーザー編)」と同様の手順で設定します。

image.png

image.png

クレデンシャルの設定

Auth0の今回使用するConnectionのユーザーはパスワードを持っていますので、それもmidPointからプロビジョニングするように設定しておきます。

16日目の記事「midPoint からActive Directoryにプロビジョニングする(ユーザー編)」と同様の手順で設定します。

image.png

プロビジョニングの確認

リソースの設定が完了したので、プロビジョニングの動作を確認します。例として、22日目の記事でSmartHRより取り込んだユーザーを使用して確認します。

パスワードの設定

Auth0で今回使用するDatabase Connectionではパスワードが必須のため、事前にmidPointのユーザーにパスワードを設定しておきます。

パスワードには、Auth0で使用するDatabase Connectionのパスワードポリシーに準拠する値を設定してください。

image.png

リソースアサイン追加によるプロビジョニング

例によって、プロビジョニングを行うユーザーの詳細画面を開き、「アサイン > リソース」メニューからリソースを直接アサインする方法で動作確認します。

Auth0リソースを、「種類」はアカウント、「用途」はdefaultを選択してアサイン追加します。

image.png

変更のプレビューを確認し、プロビジョニング内容を確認して保存します。

image.png

正常に保存できたら、プロジェクションができていることを確認しておきます。

image.png

プロジェクションの詳細も確認しておきます。Auth0よりユーザー情報を取得できていることを確認します。

image.png

Auth0側のログイン確認

プロビジョニングしたユーザーを利用して実際にログインできるかも確認してみましょう。Auth0の管理コンソールの「Getting Started」のページに、ログインフローを試す機能があります。「Try it out」リンクをクリックします。

image.png

ログイン画面が表示されるので、プロビジョニングしたユーザーのメールアドレスとパスワード(先ほどmidPointの画面から設定したパスワード)でログインします。

image.png

初回ログイン時にMFAセットアップが求められるので1、Google Authenticator等使用して設定します。

image.png

そのままログインフローを進めると、「It Works!」のページが表示されればログイン成功です。midPointからプロビジョニングした属性情報も確認できます。

image.png

まとめ

23日目では、midPointからSaaSアプリケーションへのプロビジョニングについて、Auth0を例に解説しました。既にプロビジョニングについては、11日目16日目の記事などで解説済みでした。今回のプロビジョニングではコネクターが異なるだけで、midPoint側ではほぼ同じ設定手順で対応できることをご理解いただけたかと思います。

今回紹介したAuth0以外にも、コネクターリストにはいくつかSaaSアプリケーション向けのコネクターが掲載されていますので、ぜひ試してみてください。

明日は、midPoint 4.7で導入された新しい機能である、「シミュレーション(Simulation)」を紹介したいと思います。SaaSアプリケーションでは、開発者ごとに専用の開発/検証環境を用意することが難しく、接続先が共用環境となることが一般的です。また、一部のSaaSでは検証環境を準備するのが困難で、本番環境しか提供されない可能性もあります。また、プロジェクトの予算が制約となり、検証環境を用意できない場合もあります。そのような状況でmidPointから安易に更新を行うと、設定ミスや操作ミスによってデータを破壊し、大きな影響を与えてしまうかもしれません。「シミュレーション(Simulation)」はこうしたシチュエーションで非常に役立つ機能となりそうです。是非ご期待ください!

  1. Auth0のセットアップ次第で変わります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address