以前「Konnectのログイン認証をEntra ID(旧Azure AD)で行う」という内容でKonnectの認証にOIDCを使う方法を紹介した。
今回はそのSAML版。
Konnectの公式ドキュメントはこちらとこちら。
前提
検証開始時、以下が揃っているものとする。
- Konnectにログインできる
- Entra IDのエンタープライズアプリケーションを作成できる権限がある
2番目の作成にはかなり強力な権限が必要になるので、会社のEntra IDを使って検証するには少しハードルが高いかもしれない。
Entra IDの設定
アプリケーションの作成
Entra IDにログインし、エンタープライズアプリケーション
->新しいアプリケーション
をクリックする。
検証目的だとギャラリーにあるMicrosoft Entra SAML Toolkitも使えるが、ここでは独自のアプリケーションの作成
から新規に作成する。
作成時は名前は任意のものを入力し、ギャラリーに見つからないその他のアプリケーションを統合します(ギャラリー以外)
を選択して作成をクリックする。
グループの割り当て
作成したエンタープライズアプリケーションに対し、ログインするユーザを割り当てる。
ここではログインするユーザがグループに属しているものとし、グループのみ割り当てる。
エンタープライズアプリケーションの管理
->ユーザーとグループ
からユーザーまたはグループの追加
をクリックする。
すると割り当て画面に遷移するので、ユーザーとグループ
で利用するユーザが属するグループを選択し、ロールはDefault Access
か最初からあるUser
を選択する。
なお、今回はセキュリティグループを利用する。
グループ名をクリックするとオブジェクトIDが取得できるが、これは後で利用するのでメモっておく。
SAMLの設定
エンタープライズアプリケーションの管理
->シングルサインオン
からSAMLを選択する。
基本的な SAML 構成
の設定
画面遷移後、基本的な SAML 構成
を編集し、以下を設定する。
- 識別子 (エンティティID):https://cloud.konghq.com/sp/< KonnectのOrganizationID>
- 応答URL (Assertion Consumer Service URL):
https://global.api.konghq.com/v2/authenticate/<ログインに使用するパス>/saml/acs - サインオンURL:
https://cloud.konghq.com/login/<ログインに使用するパス>
<ログインに使用するパス>
の部分はSAML認証時にアクセスするパスの一部で自身で任意のものを決めて設定する。
ここではmy-saml-test
とする。
属性とクレーム
の設定
次に属性とクレーム
を編集し、属性を設定する。
こちらに関してはKonnectのドキュメントのIdP SAML attribute mapping referenceが参考となる。
ここでは以下のように設定する。
必要な要求
クレーム名 | 値 |
---|---|
一意のユーザー識別子 | user.principalname |
追加の要求
クレーム名 | 値 |
---|---|
user.email |
|
firstname | user.givenname |
lastname | user.surname |
groups | user.groups |
一意のユーザー識別子についてはデフォルト値のまま使用する。
追加の要求で設定するクレームについては名前空間
の項目は空欄とし、groupsについてはグループ要求を追加する
から追加する。
groupsについては以下のように設定している。
ソース属性がグループIDとなっており、グループIDを用いてKonnectのTeams(ロール)とマッピングすることになる。
最終的には以下のようになる。
アプリのフェデレーション メタデータ URLの取得
最後に、SAML証明書の項目にあるアプリのフェデレーション メタデータ URL
をコピーして手元にメモっておく。
こちらは後でKonnectの設定で利用する。
Konnectの設定
SAMLの設定
Konnectにログインし、Organization
->Settings
からAuthentication Scheme
のタブの中にあるSAMLのConfigure
をクリックする。
クリックするとIDP Metadata URL
とLogin Path
の入力が求められる。
ここでは以下のように入力した。
- IDP Metadata URL:
https://login.microsoftonline.com/f177c1d6-50cf-49e0-818a-xxxxxx/federationmetadata/2007-06/federationmetadata.xml
- Login Path:
my-saml-test
設定後、Single Sign-On URL
とAudience URI
が表示されるが、Single Sign-On URL
はEntra ID側で設定したSAMLの応答URLと一致していることを確認しておく。
問題なければEnable SAML
をクリックしてSAMLを有効化する。
なお、EnableにするとKonnectにはログインできるようになるが、権限がないので以下のように権限不足の画面が表示されるのみとなる。
RBACの設定
SAML認証で許可するグループがKonnectのどの権限を持つかを設定する。
Organization
->Settings
からTeams Mappings
のタブの中にあるIdP Mapping Enabled
をチェックする。
チェックするとどのTeam(ロール)にどのグループを割り当てるかの画面が表示されるので、Entra IDのグループのオブジェクトIDを設定する。
ここではOrganization Adminにグループを設定する。
動作確認
SAML経由でKongにアクセスするには先程設定したログインパスを指定してアクセスする。
URLは以下となる。
https://cloud.konghq.com/login/<指定したログインパス>>
ログイン情報を入力してログインすると、Konnectの画面が表示される。
Organization
->Users
でログインユーザが作成されている事がわかる。
作成されたユーザをクリックすると、からログインしたアカウントをクリックするとOrganization Admin
が設定されていることも確認できる。