はじめに
実際の開発で開発環境と本番環境は分けて管理する場合、KonnectのOrganizationを分けられればいいんだろうがそうできない場合どうやって管理するのかと思ったので。
今回は、KonnectのSAMLログインとIP制限を検証し、CP単位の権限設定を確認した。
Microsoft Entra IDとのSAMLログイン検証
Microsoft Entra IDをIdPとして、KonnectのSAMLログインの設定をした。
先達がかき分けてくれているのでこちらを確認しながら設定した(今回はgroupのクレーム周りは触っていない)
Entra ID側の設定(前半)
Entra IDのユーザーから新規にユーザーを登録。
Entra IDのエンタープライズアプリケーション->新しいアプリケーション->独自のアプリケーションの作成から任意の名前で作成。Kongが候補として出てくるが今回は無視して作成した。
Entra IDのエンタープライズアプリケーションから登録したユーザーを追加。
Entra IDのエンタープライズアプリケーション->管理->シングルサインオンからアプリのフェデレーション メタデータ URLをコピーしておく。
Konnect側の設定(前半)
Konnect画面左上のOrganizationからManage organizationを選択。
Settings->Authentication schemeからSAMLのConfigureを選択。
IDP Metadata URLには先ほど保管したフェデレーション メタデータ URLを貼り付け。
Login Pathは任意だが後で共通のものを設定するのでコピーしておく。
この二つを設定すると生成されるSingle Sign-On URL、Audience URIもコピーしておく。
Entra ID側の設定(後半)
Entra IDのエンタープライズアプリケーション->シングルサインオン->基本的なSAML構成のエンティティID、応答URL、サインオンURLに、先ほどコピーしておいたそれぞれ下記を設定。
| 設定する項目 | Konnect側の値 |
|---|---|
| エンティティID | Audience URI |
| 応答URL | Single Sign-On URL |
| サインオンURL |
https://cloud.konghq.com/login/ + Login Path
|
属性とクレームには新しいクレームの追加から、email、firstname、lastnameをそれぞれの値で追加。値としてはもともとあるが、クレーム名の問題で追加する必要があるようだ。
この辺りの値の対応は公式ドキュメント見た方が正確。
とりあえずここまでで https://cloud.konghq.com/login/ + Login Path からSAMLログイン自体はできるようになるが、今回マッピングの設定はしていないのでこの段階では権限なしでControl Planeは見られない。
Konnect側の設定(後半)
Organization -> Teams -> New Teamからチーム作成し、
Role Assignmentsより下記設定する。
| 設定する項目 | 設定値 |
| Entity Type | Control Planes |
| Region | 対象となるリージョン |
| Instance | 対象となるControl Plane(出てこなかったらリージョンの指定が悪い) |
| Add Roles | 付けたい権限 |
今回はUSリージョンの特定Control Planeの参照権限だけつけてみる。
一度ログインさえしてしまえばUsersの中に追加されているはずなのでこれにAdd teams。グループの割り当てをきちんとしておけばこの辺は本来不要。
ログインすると期待通り特定のControl Planeのみ表示された。
IP制限設定
これも先達が詳しく書いてくれているのでこちらを見ながら設定。
Organization -> Security -> IP allow list -> Add IP address より、許可したいIPアドレスを設定。
画像は適当な例だが、CIDR表記すると勝手に計算して許可範囲を出してくれるので便利。
実際IPアドレスの異なるスマホからアクセスしてみるとブロックされた。
最後に
実際に開発で使うにはSAMLとIP制限を組み合わせることになるが、IP制限できるのはOrganization単位のため、JITで一時的に権限付与するなどSAML側のアカウントで制御 or システムアカウントに絞って運用することになりそう。
今度はシステムアカウントについても調べてみたい。















