【よくあるお問い合わせ】Oktaユーザー名を更新したけどアプリ側に変更が反映されない

すかんく

すかんく

はじめに

こんにちは、年始は加賀温泉で過ごした Identity チームのすかんくです。
今回はよくあるお問い合わせシリーズとして、Okta に関する内容をお届けしたいと思います。

お問い合わせ内容


Oktaユーザ名を「user-A」から「user-B」に更新したのですが、アプリケーション側のSAMLで使うユーザ名に変更が反映されません。

発生条件

以下の両方に当てはまるケースでは、ユーザー属性を更新してもアプリケーション側の SAML 連携に用いる NameID(Okta上では “Application username format/アプリケーションユーザーの形式” と表示)の値は自動更新されません。

  1. プロビジョングを構成(または対応)していないアプリケーションの場合
  2. Application username formatでカスタム式を利用していない場合
    • 設定箇所:アプリケーション画面の [サインオン/認証] タブ > [アプリケーションユーザー名の形式]

Okta ドキュメント通りに SSO を設定していると [条件 2.] にマッチしやすいため、注意が必要です。

解決策

発生条件のいずれかを回避できるようアプリケーションの構成を変更することで、ユーザー属性を更新した際に

  1. プロビジョニングを構成する
    • 対応していないアプリケーションでは実質的な選択肢からは外れる
  2. Application username formatでカスタム式を用いる

解決策 1. については各アプリケーションの手順書に従っていただくとして、ここでは解決策 2. について紹介していきます。

手順

  1. アプリケーション画面の [サインオン/認証] タブ > [アプリケーションユーザー名の形式] で “カスタム” を選択する
  2. Okta Expression Language に基づいたカスタム式を入力し、保存する
    • 例)Oktaユーザー名であれば、user.login が設定値となります
    • Okta Expression Language に関してはこちらのブログでも解説しております

おわりに

今回は非プロビジョニング環境下における Okta ユーザー属性をアプリケーション側へ反映させる際の手順についてご紹介しました。
さっくりとした内容ですが、本件で困っている方の助けになれば幸いです。

個人的にはOktaを使っていく中で共通して躓きやすいポイントだと感じるので、ユーザー側がカスタム式を使わずとも自動反映されるようなOkta側の機能改修に期待したいですね。ではまた。

この記事をシェア