Tanzu Mission Control Self-Managed(TMC-SM)を自宅ラボに構築します。今回は OIDC Provider として Okta の設定を実施します。
前回はこちら
今回の内容です。
ドキュメントでは、下記のあたりに説明があります。
Okta では、TMC-SM と連携するための Group と Application を作成します。そして、TMC-SM インストールの際に指定する Client ID と Client Secret を記録しておきます。
1. 利用する Okta の環境
今回は、無料の Okta Developer Edition Service を利用しています。
下記からサインアップできます。
2. Okta での Group の作成
TMC-SM で利用される Group を、Okta 側で作成しておきます。Group の名前は固定値です。
- tmc:admin
- tmc:member
「Directory」→「Groups」を開いて、「Add group」をクリックします。
Name に「tmc:admin」と入力して「Save」をクリックします。
tmc:admin Group には、管理者となるユーザを追加しておきます。
「tmc:admin」を開いて、「Assign people」をクリックします。
TMC-SM の管理者にするユーザを「Assigned」にしておきます。
同様に「tmc:member」Group も作成しておきます。
3. Okta での Application 作成
3-1. Application の作成
「Applications」→「Applications」を開いて、「Create App Integration」をクリックします。
下記を選択して「Next」をクリックします。
- Sign-in method: OIDC ‐ OpenID Connect
- Application type: Native Application
General Settings では、下記を入力します。
- App integration name: TMC Self-Managed
- Grant type:
- Refresh Token: On
- Resource Owner Password: On
TMC-SM の利用するドメインにあわせて、URI を入力します。
- Sign-in redirect URIs:
https://pinniped-supervisor.tmc.go-lab.jp/provider/pinniped/callback
Assignments → Controlled access では、「Skip group assignment for now」を選択して「Save」をクリックします。
3-2. Application の設定変更
作成した Application の設定を調整します。
Client Authentication: Client secret
「General」タブ→「Client Credentials」にある、「Edit」をクリックします。
「Client Authentication」を「Client secret」に変更して、「Save」をクリックします。
Client Secret が生成されるので、コピー ボタンを利用して、テキスト エディタなどで保存しておきます。
Federation Broker Mode: Disabled
「General」タブの一番下にある「Federation Broker Mode」は、「Disabled」にしておきます。
3-3. Application への Group 割り当て
Applicaiton の「Assignments」タブ→「Assign」→「Assign to Groups」をクリックします。
「tmc:admin」と「tmc:member」を、「Assigned」にして「Done」をクリックします。
4. Okta での ID Token Claim の追加
ドキュメントからは読み解けなかったのですが、さらに ID Token Claim の追加が必要なようです。
下記のサイトを参考に設定してみました。
「Security」→「API」を開き、「Claims」タブにある「Add Claim」をクリックします。
「Add Claim」画面が開くので、パラメータを入力して「Create」をクリックします。
- Name: full_name
- Include in token type: ID Token
- Value type: Expression
- Value: user.firstName
同様に、もうひとつ Claim を作成します。
- Name: groups
- Include in token type: ID Token
- Value type: Groups
- Filter: 「Starts with」→「tmc」
作成後に「ID」を開くと、Claim が 2つ表示されます。
つづく。