OutSystemsのユーザー管理をマスターしよう!(vol.13)

  • 公開日:2023年06月05日(月)

システム開発はアプリケーションをリリースして終わりではなく、その後の管理・運用も重要ですよね。OutSystemsで開発したアプリケーションを最終的に利用するエンドユーザーの情報を登録し、適切な権限を付与して管理する運用は、セキュリティやOutSystemsのライセンスにも関わる重要事項です。

そこで本ブログ記事では、OutSystemsにおけるユーザー管理機能について、運用負荷を軽減できる標準機能の活用方法や標準機能を拡張してさらに開発・運用を効率化する手法を解説します。

OutSystemsのユーザー管理機能とは?

OutSystemsにおけるユーザー管理は、「Users」というアプリケーションを用いて行われます。
「Users」は、OutSystemsに標準で搭載されているアプリケーションであり、OutSystemsユーザーに関わる基本的な管理機能を有しています。

「Users」の主要機能

  1. ユーザーの作成/更新/無効化/削除
    OutSystemsのユーザー情報は、「User」というシステムエンティティに保存されています。
    「Users」を使用することで、このエンティティにユーザー情報を作成することができます。

    作成したユーザーの情報を更新したり、パスワードを再設定したり、一定数以上のログイン試行によりブロックされた場合の解除をしたりなど、様々な操作を行うことができます。
    また、異動や退職などによりOutSystemsで開発したアプリケーションを利用しなくなったユーザー情報は、無効化または削除することが可能です。ユーザー数はライセンスにも関わるため、できるだけ節約することが望まれます。ユーザーは無効化するだけでライセンスのカウント対象から外れるので、過去のユーザー情報を残しておける無効化の方が適切でしょう。
  2. ユーザーのロール管理
    「Users」のもう一つの主要な機能として、ロール管理があります。アプリケーション開発において定義したカスタムロールを、ユーザーに付与/剥奪できる機能です。
    ユーザーにロールを適用する方法は2種類あります。個別のユーザーに直接付与/剥奪する方法と、グループに複数ユーザーと複数ロールをまとめて一括で付与/剥奪する方法です。「Users」では、どちらの方法も利用可能です。
    グループによる管理を実現するために、グループの作成機能や、グループメンバー/グループロールの管理機能も備わっています。

  3. AD認証の構築
    さらに、「Users」を使って、AD認証機能を構築することが可能です。Azure AD/Okta/SAML 2.0など、様々な認証方法が設定できます。
    環境(開発環境/検証環境/本番環境 など)ごとに異なる認証方法を設定可能なため、手軽にテストユーザーを作りたい開発環境はパスワード認証を、検証環境以上はAzure AD認証を設定するというように、用途に応じて使い分けることができます。対応している認証方式や詳細な設定手順はこちらのOutSystems公式ドキュメントからご確認ください。

このように、「Users」はユーザー管理にまつわる複数の機能を利用できるシンプルかつ便利なツールとして、OutSystems導入初期に効果を発揮することでしょう。

OutSystemsのユーザー管理をさらに効率化するには?

前章では、便利な標準提供のツールである「Users」の機能を解説しました。これだけでもユーザー管理は十分に行えそうですが、実は追加で機能を開発することで、さらなる効率化が実現可能です。
弊社がこれまでのプロジェクトで共通部品として追加開発したOutSystemsユーザー管理機能の中から、汎用的で便利な機能を2つご紹介します。

  • ユーザー一括登録/ロール一括付与
    「Users」では、ユーザーの管理は個人単位となります。そのため、新規作成画面を毎回開いて情報を入力しなければならないほか、グループメンバーの登録も一人ずつ名前を入力して検索結果から追加しなければなりません。実際のアプリケーションリリース時は、利用ユーザーを一気に登録することや、グループに一括でメンバーを追加する必要がありますよね。利用者の多いアプリケーションであれば、なおさら手入力の登録作業は避けたいと思うはずです。
    そこで役に立つのが「ユーザー一括登録/ロール一括付与」機能です。
    「Users」そのものには一括処理機能は搭載されていませんが、システムエンティティとしてユーザーやグループ、ロールなどが公開されており、OutSystemsでアプリケーションを開発することで、それらのエンティティにCRUD処理を実行することが可能です。Excelから読み取った情報を、一括でユーザー登録したり、グループメンバーとして一気に追加することができるようになります。処理内容も単純なので、開発工数以上の効果が期待できます。

    *上図は、弊社が開発した「ユーザー/ロールの一括管理機能」の画面です。
  • 属性情報連携
    Userエンティティに保持される情報は、メールアドレスや電話番号など、かなり基本的な内容に絞られます。しかし、実際にアプリケーション開発をはじめると、「所属部門によって処理を分岐させたい」 「勤務地によって異なるデータを表示したい」 など、ユーザーの属性情報をもとに実行したい処理が出てくることでしょう。
    そこで役に立つのが「属性情報連携」機能です。
    ユーザーの属性情報を連携するにあたっては、様々な要素を検討する必要があります。「どの情報ソースからデータを取得するのか?」 「どうやってOutSystems側のユーザー情報と紐づけるのか?」 「OutSystems側に属性情報をレプリケートする必要があるか?」 などを検討しながら、今後開発されるアプリケーションでも必要になる可能性を踏まえ、拡張性も考慮した共通機能として開発することで、OutSystemsプラットフォーム全体の開発効率を向上させることが可能です。

OutSystemsのユーザー管理にあると便利な機能とは?

その他にも、ユーザー管理にまつわる次のような機能があると、開発・運用が大幅に効率化できます。自社の要件に合わせて開発することがほとんどですが、一部はForgeの機能で代替することも可能です。

  • パスワードリセット
    通常は統合認証基盤を構築してユーザーのログインを自動化しますが、統合認証が利用できずにパスワード認証でログインする場合、ユーザーがパスワードを忘れてしまった場合のリセット機能が必要となります。
  • ユーザー無効化、無ログイン通知
    ライセンスを節約するには、利用していないユーザーなどを定期的に削除する仕組みが必要です。一定期間ログインのないユーザーなどを無効化する機能は、Timerによって自動実行することで、運用上の大きなメリットを得られます。
  • ユーザー検索
    アプリケーションの機能として、ユーザー検索は欠かせません。共通部品として存在しないと、各々のアプリケーションが独自にユーザー検索機能を開発してしまい、変更が発生した際に多大な影響が発生してしまいます。前章の属性情報連携機能の開発とあわせて、WebBlockとしてユーザー検索機能を開発しておくと良いでしょう。

どれも、OutSystemsプラットフォーム全体や多くのアプリケーションに影響する機能です。この他にも、共通部品として開発すべき機能は多数あるかと思います。その精査には、専用のCoEチームを組織することで、OutSystemsプラットフォーム全体を俯瞰する視点から、必要な機能を検討していくと良いでしょう。

まとめ

さてここまで、OutSystemsにおけるユーザー管理の標準機能と、それを拡張してさらに開発・運用を効率化するアイデアをご紹介してまいりました。
OutSystemsは開発プラットフォームであるため、複数のアプリケーションが共存することを踏まえ、全体最適化の観点を持っておくことが重要です。そのような観点を持った組織として、弊社はCoEチームを組成することを推奨・ご支援しております。
https://itsol.dentsusoken.com/outsystems/service/coe/

もし、「OutSystemsの導入にあたりCoEチームの組成を検討しているが、システムの保守・運用やノウハウの一元管理をどのように実現したらよいかわからない」、「折角OutSystemsを導入したが、共通部品として何が必要か整理できていない」といったお悩みがございましたら、是非、弊社までお気軽にお声掛けください。

*本記事は、2023年5月1日時点の情報を基に作成しています。
製品・サービスに関する詳しいお問い合わせは、電通総研のWebサイトからお問い合わせください。
https://itsol.dentsusoken.com/outsystems/inquiry/