Realmsの活用:複雑なワークフォース管理を効率化
このブログはこちらの英語ブログ(2024年9月25日公開)の参考和訳です。
Realmsは、OktaのUniversal Directoryでユーザー管理の新しいアプローチを提供する新機能です。Realmsを活用することで、ビジネスがどのような形で成長するかに関係なく、柔軟なユーザー管理を実現して維持できます。既存のリソースや能力を生かした有機的な成長でも、M&Aや部署の新設による成長でも、多様なタイプのユーザーに対応した管理が必要になります。ビジネスが拡大する過程では、こうしたユーザーをシームレスに管理し、管理を委任できることが非常に重要です。
中央のIT管理者はRealmsを使用することで、単一のOkta org内でアイデンティティを集約し、グループや複数のorgへの依存を減らすことにより、権限を委任してユーザー管理を容易にし、組織の複雑さを改善できます。ここでは、Realmsを使用して複数の部署の管理を効率化する方法、そして独自のユースケースに応用する方法を説明します。(Realmsの基本情報については、Dipt Kanthilalのブログ記事をご覧ください。)
はじめに:Realmsの有効化
現在、Okta Identity Governanceでのセルフサービスにより、早期アクセスでRealms機能を利用できます。利用を開始するには、以下の手順に従ってください。
- 管理コンソールの左のナビゲーションで[Settings]を選択します。
- [Features]を選択します。
- Realmsを有効にします。
Realmsが有効になったら、以下の手順でユースケース例の構成を開始します。
- 領域を作成します。
- 領域割り当てを設定します。
- 管理権限を領域管理者に委任します。
- 特定の領域でAccess Certificationキャンペーンを作成します。
- 領域認証ポリシーを設定します。
- Okta Workflowsを使用して領域の管理を自動化します。
シナリオ:WindRides Aviation
背景:Realmsを実際に使用してみましょう。WindRidesは架空の航空会社で、商業航空業務から拡大し、プライベートジェットのリースや客室乗務員の調達といったビジネス部門を新設しました。2つの新しい主要ビジネスを導入したことで、ユーザーやアクセスの管理、日常的なITニーズへの対応が増え、ITチームの大きな負担となっています。その一方で、地域やビジネスが異なっている場合でも、類似する職務ではアプリケーションのニーズが共通しています。そこで、効率化のために新しいRealms機能を活用することにしました。
現在の環境:WindRidesは現在、グループを使用してアプリケーションアクセスをモデル化し、管理しています。しかし、グループ間でユーザー層が重複しているため、管理者は異なる地域のユーザーの管理に苦労しています。以下のシナリオは、地域ごとにさまざまなエンジニアリンググループを管理する現在の構造を示しています。
最終的な目標:WindRidesはRealmsを使用し、地域をまたいでエンジニアリングの機能グループを1つ作成し、共有のアプリケーションアクセスを提供しつつ、異なるユーザー層をセグメント化したいと考えています。
このモデルを採用することで、中央のIT管理者はユーザーおよびグループ管理の負担を軽減し、各地域の管理者にユーザー管理を簡単に委任できます。特定のアプリアクセスに対応するためにグループを追加することは可能ですが、このモデルにより、同じアプリアクセスが定義された地域グループの乱立を防止できます。
領域の作成
Realms機能がorgで有効になると、管理コンソールの左側ナビゲーションで、[Directory]の下に[Realms]という新しいセクションが表示されます。
まず、[Realms]セクションに移動して、領域を作成します。同社のシナリオに基づき、Engineering AMER、Engineering EMEA、Engineering APACという3つの領域を作成します。
3つの領域に加え、包括的な役割を果たすDefault Realmが存在します。既存のユーザーは最初にDefault Realmに配置されますが、後から簡単に他の領域に移動できます。APIやOkta Workflowsを使用して領域を作成することも可能です。
領域割り当て
前述のとおり、ユーザーは必ずいずれかの領域に所属する必要があります。既存のユーザーは最初にDefault Realmに配置されますが、個別に他の領域に移動できます。新しい[Realm assignments]を利用することで、正しい領域へのユーザーのオンボーディングを自動的に実行できます。また、領域割り当てを活用して、複数のユーザーを一括で別の領域に移動することも可能です。
個々のユーザーの移動
個人のユーザープロファイルで、鉛筆アイコンをクリックすると、そのユーザーを別の領域に移動できます。以下に示す例で、Alex Taylorは現在Default Realmに配置されていますが、所属をEngineering EMEA領域に変更する必要があります。そこで、鉛筆アイコンを使用して目的の領域に移動します。
複数のユーザーを一括で移動する場合は、[Realm assignments]を使用すると効率的です。
領域割り当ての利用方法
[Realms]セクションには、[Realm assignments]というタブがあります。バックアップとして、デフォルトの[Catch-all realm assignment]が用意されていますが、WindRidesの例では3つのカスタム領域に関連付けて具体的にRealmsを割り当てる必要があります。
領域割り当てを作成する際には、以下の情報を利用することで、ユーザーを正しい領域に作成またはオンボーディングできます。
領域割り当て名 |
簡単に参照できるように、領域割り当てに関連付けられた名前です。 |
プロファイルソース |
組織内のユーザープロファイルの信頼できる情報源であり、Okta、ディレクトリ、人事ソースなどの正式に承認されたプロファイルソースを指します。 |
優先度 |
変更なし:[Priority]の値を最下位に設定 最優先に指定:[Priority]の値を最上位に設定
これにより、複数の領域割り当て間の競合が解決されます。 |
スコープ |
複数の領域に同じプロファイルソースを関連付ける必要がある場合、ユーザープロファイル属性を使用して領域割り当てに追加のパラメーターを設定できます。 |
領域への割り当て |
割り当て先の領域 |
WindRidesがオンボーディングを自動化してユーザーを容易に移動できるように、スコープの一部としてプロファイルソースとExpression Languageを活用して、3つの領域割り当てを作成します。
Expression Languageを使用して、2つの属性(Organization = Regions、Department = Engineering)を組み合わせ、領域割り当てのスコープを決定できます。
グループルールと同様に、作成した領域割り当ては有効にする必要があります。有効にするには、[Actions]メニューに移動し、[Activate]を選択します。
領域割り当ては、有効にした後に作成された新しいユーザーに対して自動的に実行されます。既存のユーザーに対して領域割り当てを実行するには、[Run]または[Run all realm assignments]を選択します。ジョブのステータスは、[Monitor user movement]タブで確認できます。
領域割り当てを実行すると、org内のすべてのユーザーが正しい領域に所属するようになります。
管理者の委任
領域を使うことで得られる主な利点の一つは、ユーザー管理を委任できる点です。次のステップとして、WindRidesチームは管理者ロールを設定します。
ステップ1:ロールを作成する
[Administrators]ビューでの最初のステップは、委任先の管理者のロールを作成することです。最低限、委任される領域管理者には、ユーザーと領域に関連する許可へのアクセス権が必要です。さらに、必要に応じて、グループやアプリケーションに関連する権限を割り当てます。以下は、割り当て可能な許可の例です。
許可名 |
許可セット |
User |
ユーザーを管理する すべてのユーザー許可を含む |
Realms |
領域とその詳細を表示する |
Application |
アプリケーションのユーザー割り当てを編集する |
WindRidesは、すべての領域管理者に同じ権限を委任するため、ロールを1つだけ作成する必要があります。
[Security]>[Administrators]>[Roles]で新しいロールを作成します。
ステップ2:リソースセットを作成する
リソースセットには、管理が委任されるリソースを定義します。管理する必要がある3つの領域に合わせて、リソースセットを3つ作成する必要があります。
WindRidesのシナリオでは、Engineering AMER、Engineering EMEA、Engineering APACそれぞれに個別のリソースセットを作成します。これらのリソースセットには、ユーザー、領域、アプリケーションが含まれます。
[Security]>[Administrators]>[Resources]で新しいリソースを作成します。
ユーザーについては、[Users in realm]を選択し、含める領域を選択します。これによりユーザーセットが定義され、[People]ページに表示されます。
[Realms]リソースセットを追加することで、委任された管理者が表示して管理できる領域が設定されます。リソースセットの一部としてアプリケーションを追加すると、委任された管理者が管理できるアプリケーションが指定されます。[Users in realm]での選択内容に従って、委任された管理者は、管理対象の領域に所属するユーザーに対してのみ、表示やアプリケーションへの割り当て/割り当て解除を実行できることに留意してください。
WindRidesは3つの領域を使用します。したがって、各管理者が管理できるユーザー集団を定義するために、3つのリソースセットを作成する必要があります。
ステップ3:管理者を割り当てる
ロールとリソースセットが定義されたので、最後の手順では、委任される管理者にロールとリソースセットの両方を関連付けます。最初にユーザーを選択し、次にロールとリソースセットを選択して、委任プロセスを完了します。
委任された管理者のユーザーエクスペリエンス
この動画では、管理者はEngineering EMEA領域のユーザーのみを管理できます。割り当てられた許可に基づいて、ユーザーの作成、ライフサイクルの管理、領域内のユーザーへのアプリケーションの割り当て/割り当て解除を実行できます。
Okta Identity GovernanceのAccess Certificationキャンペーン
領域割り当てを利用することで、WindRidesは適切な領域にユーザーを自動的に作成できます。さらに、カスタム管理者ロールのフレームワークを使って、これらのユーザーの管理を委任できます。ユーザー管理のもう1つの重要な側面はガバナンスであり、ユーザーがどのリソースにアクセスできるかを確認し、そのアクセスを継続すべきかを評価します。Okta Identity Governanceを利用することで、認定キャンペーンを作成して領域管理者に割り当てることができます。この方法により、委任された管理者は、担当する領域内のユーザーに対するレビューを割り当てられ、継続的なガバナンスを維持できます。
Expression Languageを使用することで、WindRidesはキャンペーンに含まれるユーザーやレビュアーのスコープを指定できます。この例では、Expression Languageを利用して、キャンペーン対象ユーザーのスコープをEngineeringRealmsに指定します。式で参照されるRealmIDは、APIまたはRealmsのURLから取得できます。以下は、Engineering EMEAのRealmIDの例です。
Access CertificationキャンペーンでのExpression Languageのリファレンス
スコープ |
式 |
詳細 |
ユーザー |
user.realmId == "realmid" |
1つの領域のスコープ。 複数のRealmsは、ORを使用してスコープの一部として定義できます。 例: user.realmId == "realmId1" Or user.realmId == "realmId2" ... |
レビュアー |
user.realmId == "Realmid" ? "[email protected]": "[email protected]" |
この式を使用すると、スコープ内のユーザーのRealmIDがTrueかどうかが条件でチェックされます。Falseの場合、レビューはフォールバックレビュアーにルーティングされます。 |
ステップ1:キャンペーンを作成する
WindRidesは、リソースとユーザーの両方のキャンペーンを実行できますが、Engineering EMEA領域内のGoogleアプリケーションに対するアプリケーションアクセスを評価するためのリソースキャンペーンの作成に関心があります。
ステップ2:ユーザースコープ
ユーザースコープには、すべてのユーザーまたは特定のユーザーのサブセットを含めることができます。Expression Languageを活用してユーザースコープを定義します。
ステップ3:レビュアーを選択する
レビュアーを定義するために選択できるオプションは多数あります。このキャンペーンでは、WindRidesはレビューを領域管理者に割り当てたいので、[Custom]を選択します。
Expression Languageを使用すると、領域管理者をレビュアーとして定義できます。ユーザーが定義された領域に所属していない場合、レビューはフォールバックレビュー担当者にルーティングされます。領域管理者は、レビュー対象となる領域に所属している必要はありません。
Access Certificationキャンペーン
上の動画では、Expression Languageを使用したユーザーとレビュー担当者のスコープの構成など、リソースのAccess Certificationキャンペーンの構成方法を解説しています。
認証ポリシー
Access Certificationキャンペーンと同様に、認証ポリシーでもExpression Languageを使用してポリシールールを定義します。
認証ポリシーの設定
この動画では、よりきめ細かなポリシーを設定するため、Expression Languageを活用して、特定の認証ポリシーのスコープを特定領域内のユーザーに指定する方法を解説しています。
Okta Realms接続
自動化はユーザー管理の重要な部分であり、Okta Workflowsはライフサイクル管理の自動化で重要な役割を果たします。Okta Workflowsが提供するRealmsカードは、領域の作成/削除、特定領域へのユーザーのオンボーディングなどのフローの構築に役立ちます。
Okta Workflowsで領域を活用するには、最初に以下の2つの重要な手順を実行する必要があります。
- 認可
- Realms Actionsカードの接続
Okta Workflows OAuth認可の付与
許可を付与するには、[Applications]でOkta Workflows OAuthアプリケーションに移動します。[OKTA API scopes]で、領域でOkta Workflowsを構築するために必要な以下の許可を付与します。
付与する認可 |
okta.realms.manage |
okta.realms.read |
okta.schemas.read |
okta.users.manage |
okta.users.read |
Okta Realmsコネクター
Okta Workflowsコンソールから[Connections]に移動し、[Okta Realms]の新しい接続フィルターを追加します。
このビューで、付与された許可を検証することも可能です。
接続を追加するには、Okta Workflows OAuthアプリケーションからクライアントIDとシークレットを取得し、ドメインURLと一緒に接続に追加します。
認証が成功すると、Actionsカードの準備が整います。
Okta Workflowsカードの活用
この動画では、Okta Workflowsカードを設定する手順を順を追って解説しています。
おわりに
Realms機能の導入により、WindRidesは組織を再設計して、グループの数を減らし、複数の部署を1つのorgに統合し、オンボーディングから委任、ガバナンスまでユーザーを簡単に管理できるようになりました。
今後は、ビジネスの拡大に応じてRealmsを活用し、組織内のユーザーを管理する中央ITチームの負担を軽減できます。
その他のリソース
- 詳細情報:Realmsのヘルプドキュメント
- トレーニング:Okta University
MacAdmins Slackの#oktaチャネルでは、学びや助け合いの場を提供しています。コミュニティにご参加ください。
以上の内容は、原文(英語)の参考和訳であり、原文と内容に差異がある場合は、原文が優先されます。