こんにちは、こやしいです。
Oktaを利用したSAMLシングルサインオン(SSO)の設定をしている際、こんな壁にぶつかったことはありませんか?
「このアプリだけ、OktaのID(メールアドレス)とは関係ないユーザー名でログインさせたい…」
本記事ではこちらの解決方法として、「カスタム属性」を使って個別にユーザー名をマッピングする方法を解説します。
目次
以前の弊社ブログでは、ドメイン名の置換(@以降の変更)をしたい場合等に、Okta Expression Language(EL式)という変換ルールで一括対応する方法をご紹介しました。
例:Oktaに @example.comで登録し、アプリには @example.net でログインする
参考記事:
一方、今回はユーザーごとに変換後のIDが完全に異なり、全員に共通して適用できる変換式(ルール)が作成できない状態です。こういったケースで活躍するのが「カスタム属性」です。
例:Oktaに next.mode@xxx.co.jpで登録し、アプリにはntmd@xxx.comでログインする
Oktaでは、各ユーザーの情報(名前・メールアドレスなど)を「プロファイル」として管理しています。このプロファイルに好きな項目を追加できるのがカスタム属性の機能です。
今回は「アプリ専用のログインID」という項目を新しく追加し、ユーザーごとに値を登録します。そして、アプリへのログイン時にOktaがその値を参照して渡す、という流れで実現します。
設定手順
まずは、アプリ専用のユーザー名を格納する「カスタム属性(項目)」を追加します。
1. Okta管理コンソール画面で Directory > Profile Editor を開く
2. User (default) プロファイルを選択し、【+属性を追加】をクリック
3. 以下の情報を入力して保存 (入力値はあくまで一例となります)
2. User (default) プロファイルを選択し、【+属性を追加】をクリック

3. 以下の情報を入力して保存 (入力値はあくまで一例となります)
表示名: GWSログイン名(管理上の表示名)
変数名: gws_login(設定で使う変数名)

これで「GWSログイン名」という項目が属性に追加されました。
手順②:ユーザーごとに値を割り当てる
次に、追加した項目に各ユーザーのアプリ専用IDを入力していきます。
1. Directory >ユーザーを開き、対象のユーザーを選択
2. プロファイルタブの編集をクリック
3.「GWSログイン名」欄に、そのユーザーのアプリ専用ID (ntmd@xxx.com)を入力して保存
1. Directory >ユーザーを開き、対象のユーザーを選択
2. プロファイルタブの編集をクリック

3.「GWSログイン名」欄に、そのユーザーのアプリ専用ID (ntmd@xxx.com)を入力して保存

この作業をアプリを使用するユーザー分、繰り返します。

