SaaS その他

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

はじめに

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

お問い合わせ内容

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

発生条件

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

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

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

Note:NameID Format(Application username format)とは?

NameIDとはユーザー識別子のことを指し、formatとはNameID(ユーザー識別子)を判定する方式を指します。
Okta目線で言い換えれば、アプリ側でログイン先を判定して貰うためにOktaから送信している値と型に関する情報のまとまりでしょうか。(詳細はこちらに記載されていますので、興味ある方はどうぞ)

解決策

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

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

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

手順

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

設定を変更された際、既にアプリケーションへ割り当てられているユーザーに対しては本変更による自動更新が適用されません。
そのため、本設定完了後にアプリケーションから全ユーザーに対して割り当て解除/再割り当てを行っていただく必要があります。

おわりに

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

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

すかんく

2022/1 入社、Identity チームのすかんくと申します。
ブログでは IdP 関連の機能紹介を中心に記載していこうと思います。
好きな漫画はアイシールド21・ハイキュー・ベイビーステップです。