過去にKong Gateway/KonnectとEntra IDの連携関連のメモは以下で書いてきた。
- KonnectのDev Portalの認証にEntra ID(AzureAD)を利用する
- APIの認証をEntra ID(旧Azure AD)で行う
- 既存のEntra IDをKong Managerの認証に使う
ただ、まだKonnectのログイン認証の検証はやっていなかったので、ここではその手順を確認する。
前提
検証開始時、以下が揃っているものとする。
- Konnectにログインできる
- アプリが作成済みで、以下を既に入手済み
- クライアントID
- クライアントシークレットの値
- IssuerのURL
アプリの作成については過去のこちらの記事にまとめている。
なお、リダイレクトURIはhttps://cloud.konghq.com/login
となる。
また今回はOIDCでログインしたユーザはKonnectのデフォルトのチームであるOrganization Adminに所属させて、Teamに割り当たっている権限が使えるようにするところをゴールとする。
連携手順の確認
Entra ID設定
ここまででEntra IDのアプリの作成は終わっているが、ロールの作成は未実施である。
ロールはKonnectのTeamとマッピングするために作成し、ログインユーザに権限を与えるために利用する。
ロールの作成はアプリのアプリロール
からアプリロールの作成
を選択して行う。
アプリロールの作成画面になるので、各項目を埋めて作成する。
ここでは以下のようにした。
- 表示名:
OrgAdmin for Konnect
- 許可されたメンバーの種類:
ユーザーまたはグループ
- 値:
OrgAdmin
- 説明:
Role for Team in Konnect
ここの値はKonnect内のTeamとのマッピングで利用する。
なお、Kong Gateway Enterprise版と異なり<Workspace名>:<ロール名>
のような制約はないので好きな値にしてもらって問題ない。
次にロールとEntra IDのユーザとの紐づけを行う。
Entra IDのエンタープライズアプリケーション
から作成したアプリを選択し、ユーザーとグループ
からユーザーまたはグループの追加
を選択してKonnectを利用するユーザにロールを割り当てる。
割り当てが終わればユーザーとグループ
から割当たっていることが確認できる。
以上でEntra IDの設定は終了となる。
Konnect設定
OIDCの設定を行い、先程作成したロールとTeamを紐づけてログインユーザがKonnect内で操作を出来るように設定する。
まずKonnectにログインし、Organization
->Settings
からAuthentication Scheme
のタブの中にあるOIDCのConfigure
をクリックする。
最初に以下の入力項目を入力する。
- Issuer URI
- Client ID
- Client Secret
- Organization Login Path
Issuer URI
、Client ID
、Client Secret
についてはEntra IDで取得したものを入力する。
Organization Login Path
についてはOIDCログインのURLのためのパスであり、https://cloud.konghq.com/login/<指定した値>
でOIDCログインが出来るようになる。
上記値設定後、Entra ID固有の設定をAdvanced Settings部分に行う。
- Scopes:
<Client ID>/.default
を追加 - Claim Mappings:Groupsを
roles
に変更
以下のような感じで入力したら、Saveをクリックする。
Saveすると以下のようにOIDCがConfigured
かつDisabled
になる。
OIDCの横の︙
をクリックし、Enable OIDC
をクリックしてOIDC連携を有効化する。
有効化したタイミングで認証を使ってログイン出来るようになるが、権限とのマッピングが終わっていないので操作がまともに出来ない。
権限を与えるためにマッピングを行う。
Authentication Scheme
のタブの横にあるTeam Mappings
をクリックしIdp Mapping Enabled
のチェックボックスを有効化する。
有効化するとTeam名とGroup Nameのマッピング画面が出てくるので、Organization Adminに先ほどロール作成時に設定した値(ここではOrgAdmin
)を設定する。
Saveをクリックして保存したら設定は終了となる。
動作確認
https://cloud.konghq.com/login/<Organization Login Pathで指定した値>
にアクセスするとEntra IDの認証が求められるので入力して先に進む。
ログイン後、ログインしたユーザのTeamを確認すると、適切にマッピングされていることが確認できる。
またControl Planeの作成など各種操作が行えることも確認できる。
ハマりどころ
アプリのロールとKonnectのTeamのマッピングが上手く行かないと、以下の画面を見続けることになる。
上手く行かない場合は以下あたりを見直してみると良いと思う。
- ロール名とTeam Mappingで設定したGroup Nameが一致するか
- Claim Mappingsの設定でGroupsに
roles
を設定しているか - OIDCをEnabledにしているか