はじめに こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です...
【Okta | OIGシリーズ】Entitlement Managementで実現する柔軟な権限管理の仕組みをご紹介
はじめに
こんにちは、 ネクストモード株式会社 テクニカルサポート担当です。
Okta Identity Governance (OIG) の機能の一つであるEntitlement Managementについて検証してみました。この機能を使うことで、Oktaと連携している各種SaaSアプリケーションに対して、より詳細で柔軟な権限管理を実現できます。特に注目すべき点は、単なる権限の付与だけでなく、組織の要件に応じて細かなポリシーを設定し、それに基づいた自動的な権限制御が可能になることです。そこで今回は、実際の設定手順に沿ってご紹介します。
Entitlement Managementとは
Oktaと連携したSaaS内の権限やライセンス情報をOktaに取り込み、詳細な権限付与ポリシーを通じて効果的な管理を実現することができます。これにより、各アプリケーションの権限設定をOkta上で一元的に把握し、組織のセキュリティポリシーに沿った適切なアクセス制御が可能となります。
また、取り込んだ権限の組み合わせをBundleとしてまとめることで、Access Requestでの利用が可能になります。これは単なる権限付与の機能にとどまらず、アクセス権の定期的な見直しなど、OIGの他の機能との連携においても重要な基盤となります。さらに、これらの機能を組み合わせることで、より効率的で統合的なアイデンティティガバナンスを実現することができます。
設定の流れ
Entitlement ManagementでSaaSの権限情報やライセンス情報を取り込むには連携可能SaaSもしくはCSVインポートのどちらかの方法があります。
連携可能SaaSは以下のようなものがあります。
- Box,Google Workspace,Microsoft Office 365,Salesforceなど
今回はGoogle Workspaceを例に設定してみます。
前提
設定作業を行うOkta管理者はOkta Entitlement Managementアプリケーションにアサインしておく必要があります。
Google Workspace事前準備
今回、Oktaからライセンスの制御を行うため、Google Workspaceでライセンスの自動割り当てが設定されている場合は無効化しておきます。
Okta設定
SSO設定までは以下を参考に設定します。
本来であればプロビジョニング設定に進みますが、Entitlement Managementの設定をする場合は先にはGovernance Engine の有効化を行います。
Generalタブ内にIdentity GovernanceというエリアがありますのでGovernance Engine をEnabledにします。
次にProvisioningタブで連携設定をします。Google Workspaceで権限やライセンス情報の割り当てや更新を行うために、最低限Create UsersとUpdate User Attributesを有効にする必要があります。
Assignmentsタブからユーザーをアサインします。今回はOktaグループCloud Identity Free Groupを用意しアサインしました。
この時にManage roles on create and updateとManage licenses on create and updateはそれぞれtrueとします。
次にGovernanceタブを開くと、以下のようにEntitlementタブ、Bundlesタブ、Policyタブが表示されます。
EntitlementタブではGoogle Workspaceから取得されたLicensesやRolesが表示されています。
PolicyタブからAdd ruleを行い、User scopeでGroup membershipを選択し、作成済みのグループを選択します。
今回は行いませんが、Add conditionから条件を追加指定することができます。
AssignではEntitlementでLicensesを選択しCloud Identityを選択します。
Preview Userに任意のユーザーを入れ、プレビューすることができます。
次に、ユーザープロファイルのDivisionがSystemの場合にGoogle Workspace側で作成したカスタム管理者ロールを指定したルールを作成します。
同様にDepartmentがIT Helpdeskの場合にヘルプ デスク管理者のロールを指定したルールも作成します。
最終的に以下のように3つのルールで構成されたポリシーとしました。この時点ではドラフト状態です。
Preview draftをクリックすると、ユーザーが適用される権限一覧がCSVファイルとして「Your Entitlement Policy Preview」というメールで受信することができます。
有効化のために、Apply policyをクリックします。
挙動確認
アサインしたユーザーの権限を確認します。
3点リーダーからView access detailsをクリックします。
以下のようにポリシーによって割り当てされたライセンスとロールが確認できます。
このAdmin UserはCloud Identity Free Group RuleとSystem Division Ruleそれぞれに合致するため上記のようなライセンスとロールが割り当てされています。
次に、このユーザーのプロファイルのDivisionの値をSystemから空白にすることでSystem Division Ruleには合致しなくなり、Cloud Identity Free Group Ruleによるライセンスの割り当てだけが有効となります。
実際にGoogle Workspace側でも反映されていることを確認します。
OIGの他の機能との関連性について
Access Requestsとの関係について
ロールやライセンスをまとめることができるバンドルをを作ることで、Access Requestsでユーザーにバンドルを選択させることができます。
以下はアドミン権限とヘルプデスク権限それぞれをバンドルとして作成した状態です。
Access Requestsの設定を作成する際にバンドルを指定します。
ユーザーはAccess Requestsを行う際にバンドルを選択することができます。
Access Requestsの設定方法の詳細は以下のブログをご参照ください。
Access Requestsでバンドルを活用することで、一時的な特権を取得したい場合に活用できそうです。
Access Certificationとの関係について
定期的な棚卸しを行えるAccess Certificationは、ユーザー単位やアプリケーション単位という視点で棚卸しが可能です。Entitlement Managementを活用することでアプリケーション単位をさらに権限やライセンスという視点で細分化して棚卸しをすることができます。
Access Certificationについては以下の記事もご参照ください。
まとめ
Entitlement Managementと似たような概念として、従来からユーザーをアサインする際にユーザー単位やグループ単位でロールやライセンスを割り当てる方法が存在していました。しかしながら、組織の規模が大きくなったり、権限管理の要件が複雑化したりするケースでは、管理用グループが無秩序に増加し、その結果として権限管理の全体像が把握しづらくなり、運用負荷が著しく増大するという課題がありました。
そこで、Entitlement Managementを活用することで、アプリケーション設定側で明確なルールを定義し、条件に基づいて自動的に権限を制御できるようになります。これにより、グループ管理の複雑さを軽減し、より体系的で管理しやすい権限制御を実現することが可能となります。
さらに、Access RequestsやAccess Certificationといった他のOIG機能と効果的に組み合わせることで、申請・承認のワークフローや定期的な権限レビューなどを含む、より柔軟で包括的なアイデンティティガバナンスの実現が可能となります。これにより、セキュリティの向上とコンプライアンスの遵守を両立しながら、効率的な運用を実現できます。