コンテンツにスキップ

アクセス制御設定マニュアル


1. 概要

1.1 目的

本書は、IDApex サービスにおいて、ユーザーの「ロール」(役割)に基づいたアクセス制御(認可処理)を設定するための手順をまとめたマニュアルです。

通常のアプリケーションでは個別の設定画面で利用制限を行いますが、本システムではSAML連携等の仕様に合わせ、ログイン時の動作(認証フロー)の中で権限チェックを行う特殊な構成を採用しています。これにより、正しい役割を持たないユーザーのログインを入り口で遮断し、セキュアなサービス利用環境を維持することを目的としています。

1.2 前提条件

本書での作業を開始するための前提条件です。

表 1-1

前提条件 備考
IDApex IAMの管理コンソール画面が開ける管理者権限があること
『IAM_基本設定マニュアル』 の設定が完了していること 日本語化やクライアントの基本設定が完了している必要があります 。
IDApex IGAとの連携が完了していること ユーザーの登録およびロール(役割)の付与は、IGA側から自動で行われます。
制御対象となるアプリケーション(クライアント)が登録されていること 設定対象のクライアントが一覧に存在することを確認してください 。
IDApex IAM 内で必要な「ロール」が作成済みであること 権限の基準となる「ロール」をあらかじめ定義しておく必要があります。
インターネット接続環境 IDApex IAM はインターネットを通じて操作を行います。

1.3 全体の流れ

本書では、グループ同期と認証フローを組み合わせた、以下の流れでアクセス制御を設定します。

  1. グループとロールの紐付け IGAから同期された「グループ」に対して、IAM 内で定義した「ロール」を割り当てます。これにより、グループに所属するユーザーへ自動的に権限が継承されます。
  2. 認証フローへの認可ステップ追加 ログイン時のルール(ブラウザフロー)の中に、「特定のロールを持っているか」を判定する条件(Condition - user role)を組み込みます。
  3. クライアントへのフロー適用(Bind flow) 作成した権限チェック付きのフローを、対象のアプリケーション(クライアント)に紐付けます。
  4. 動作確認 設定したロールを持つユーザーのみがログインでき、持たないユーザーが正しく拒否されるかを確認します。

2. アクセス制御設定

本セクションでは、ログインユーザーのロールに応じて各クライアントに対してアクセス制御を行うための設定を行います。

2.1 グループへのロール割り当て

IDApex IGA から同期された「グループ」に対して、IDApex IAM 内で作成した「ロール」(役割)を割り当てる手順を説明します。

この設定を行うことで、そのグループに所属するユーザー全員に、特定のアプリケーションを利用するための権限が一括で付与されます。

  1. 管理者ユーザーで IDApex IAM の管理コンソールへアクセスします。
  2. 左のメニューから「グループ」を選択します。
  3. 画面に表示されているグループ一覧から、設定を行いたいグループ名を押下します。

【補足】

ここに表示されているグループは、IDApex IGA から自動的に同期されたものです。 1. 上部のタブ一覧から「Role mapping」(ロールマッピング)を選択します。 image

  1. 「Assign role」(ロールの割り当て)ボタンを押下します。
  2. 「Filter by clients」から「Filter by realm roles」を選択します。 image

  3. 割り当てたいロールにチェックを入れ、画面下の「Assign」(割り当て)ボタンを押下します。 image

  4. 「ロールマッピング」のリストに、選択したロールが表示されていることを確認します。 image

2.2 認証フローへの認可ステップ追加

SAML連携などのアプリケーションにおいて、特定のロールを持つユーザーのみにアクセスを許可するための「認可機能付き認証フロー」を作成します。

  1. 管理者ユーザーで IDApex IAM の管理コンソールへアクセスします。
  2. 左のメニューから「認証」を選択します。
  3. 「Create flow」ボタンを押下し、新しい認証フローを作成します。
  4. 新しいフローの名前に、認可を行うことがわかる名称を入力し、「作成」ボタンを押下します 。

【補足】

フロータイプは必ず『Basic flow』のままにしてください。 1. 作成されたフローの詳細画面が開きます。「Add sub-flow」(サブフローの追加)を選択します。 image

  1. サブフローの名前を「Login Flow」(認証)とし、フロータイプを「generic」のまま追加します 。 image

  2. 追加したサブフローの必要条件を「Required」(必須)に変更します 。

  3. 追加した 「Login Flow」 内の 「+」 ボタンを押し、以下のログイン手段を 「Alternative」(選択肢) として追加します 。 表 2-1
認証ステップ 備考
Cookie ブラウザの既存セッションを利用します 。
Risk-based Flow サブフロー。 フロータイプ「generic」 ID/パスワード入力およびリスク判定を行います 。
  1. 「Risk-based Flow」に以下の認証ステップを追加します。 表 2-2
認証ステップ タイプ 必須条件 備考
Username Password Form step Required
OTP Form step Required
Risk based step Required 歯車マークを押下し設定を行ってください。 参照:『IAM_リスクベース認証設定』マニュアル
Conditional 2FA sub-flow Conditional フロータイプは『generic』としてください。
Condition – user attribute condition Required Conditional 2FAの認証ステップ 歯車マークを押下し設定を行ってください。 参照:『IAM_リスクベース認証設定』マニュアル
WebAuthn Authenticator step Required Conditional 2FAの認証ステップ

image

  1. 画面上部の「Add sub-flow」(サブフローの追加)を選択します。
  2. サブフローの名前を「Role Check」(ロール確認)とし、フロータイプを「generic」のまま追加します 。 image

  3. 追加したサブフローの必要条件を「Required」(必須)に変更します 。

  4. 「Role Check」の「Add sub-flow」(サブフローの追加)を選択します。
  5. サブフローの名前を「Allow access」(許可)とし、フロータイプを「generic」のまま追加します 。
  6. 追加したサブフローの必要条件を「Conditional」(条件付き)に変更します 。
  7. 「Allow access」内の「+」ボタンを押し、「Add condition」(条件の追加)を選択して「Condition - user role」を選びます 。
  8. 追加された条件の歯車マークをクリックし、以下の設定を行って保存します 。 エイリアスは任意の名称です。 User roleはアクセスを許可するロールを選択してください。 Negate outputは必ずオフにしてください。 image

  9. 同じサブフロー内の「+」ボタンを押し、「Add step」(ステップの追加)を選択して、ログインを許可する「Allow access」を追加します。

  10. 追加した「Condition - user role」と「Allow access」の必須条件を「Required」に変更します。
  11. 「Role Check」の「Add sub-flow」(サブフローの追加)を選択します。
  12. サブフローの名前を「Deny access」(拒否)とし、フロータイプを「generic」のまま追加します 。
  13. 追加したサブフローの必要条件を「Conditional」(条件付き)に変更します 。
  14. このサブフロー内の「+」ボタンを押し、「Add condition」(条件の追加)を選択して「Condition - user role」を選びます 。
  15. 追加された条件の歯車マークをクリックし、以下の設定を行って保存します 。 エイリアスは任意の名称です。 User roleはアクセスを許可するロールを選択してください。 Negate outputは必ずオンにしてください。(User roleを持っていない、という設定になります) image

  16. 同じサブフロー内の「+」ボタンを押し、「Add step」(ステップの追加)を選択して、ログインを拒否する「Deny access」を追加します。

  17. 追加した「Condition - user role」と「Deny access」の必須条件を「Required」に変更します。
  18. 「Deny access」の歯車マークを押下します。
  19. 「エイリアス」に任意の文字列、「Error message」にログイン拒否ページに表示されるエラーメッセージを入力し保存します。 image

以上で認証フローと認可ステップの追加が完了しました。

認証フロー全体のキャプチャは次のページとなります。

image

2.3 クライアントへのフロー適用(Bind flow)

2.2章で作成した「認可機能付き認証フロー」を、対象のアプリケーション(クライアント)および外部IdPの設定に紐付け、アクセス制御を有効化します。

  1. 左のメニューから 「クライアント」 を選択します。
  2. 一覧から、アクセス制限を行いたいクライアントを選択します 。
  3. 上部の 「Advanced」 タブを選択し、画面を一番下までスクロールします。 一番右にあるので表示されていない場合は「>」ボタンを押下してください。
  4. 「認証フローのオーバーライド」 セクションにて、以下の設定を行い 「保存」 をクリックします。

ブラウザフロー(Browser Flow):2.2章で作成したフロー(例:Sample Role Check)を選択 image

2.4 動作確認

設定したアクセス制御が意図通りに動作するかを確認します。

テストを実施する際は、既存のログイン情報の影響を避けるため、必ずブラウザの 「シークレットウィンドウ(インコグニートモード)」 を使用してください。

  1. テストを行う前に、以下の2種類のテストユーザーが用意されていることを確認してください 。 表 2-3
前提条件 備考
権限ありユーザー 「ロールA」が割り当てられたグループに所属しているユーザー。
権限なしユーザー 「ロールA」を持っていないユーザー。
  1. 以下の表に基づき、各ログイン経路で正しく認可処理が行われるかを確認します。 表 2-4
ログイン経路 テストユーザー 確認手順 期待される結果
ID/パスワード入力 権限なし ID・パスワードでログインを試行 図 2-14の画面が表示され、クライアントにログインできないこと。
ID/パスワード入力 権限あり ID・パスワードでログインを試行 クライアントへログインできること。
既存Cookie利用 権限なし IDApex IAMへログイン成功後、ブラウザを閉じずにクライアントへ再アクセス 図 2-14の画面が表示され、クライアントにログインできないこと。
既存Cookie利用 権限あり IDApex IAMログイン成功後、ブラウザを閉じずにクライアントへ再アクセス クライアントへログインできること。

image

3. お問い合わせ

1. お問い合わせ先

当サービスへのお問い合わせは、メールでの問い合わせのみとなります。

お問い合わせに対し、一時回答は遅くとも翌営業日までには返信いたします。

以下のメールアドレスにお客様の企業名または団体名を添えて、お問い合わせ内容を記載ください。

メールアドレス