SmartHRからOktaへSCIM連携している時にAPI等でOktaのProfileを更新するときの注意点
こちらの記事は以前noteで書いた内容のその後になります
GAS×Okta WorkflowsでOktaのProfileを更新しようとしていたらエラー吐いてた
はい、あの記事の内容だけではダメだったってことですね。
状況
OktaでProfileのSourceがSmartHRになっているとProfileの項目にロックが掛かり、手動やAPIからの更新が出来なくなるみたいです。
そりゃそうか。
ただSmartHRからのSCIM連携は使いたい、でもカスタム従業員項目もOktaに連携させたい。ってことで模索した結果になります。
Profileの項目ごとにSourceを選べる
やりたい事としては以下の通りです。
- SmartHRからのSCIM連携は継続しておきたい
- 特定のカスタム従業員項目はAPIでOktaのProfileに反映させたい
つまりOktaのProfile項目の中で、APIで更新したい項目だけSmartHRからの連携を切りたいのです。
そんな都合の良い設定がOktaにあったのでやっていきます(さすがのOkta)
まずはOktaの管理画面からDirectory > Profile Editor > User (default)に入ります。
今回はFirstname_EnglishとLastname_EnglishをAPIから更新出来るようにしたいので、右側の鉛筆マークを押します。

一番下のSource priorityがInherit from profile sourceになっていますが、Inherit from Oktaに変更します。

必要に応じてUser permissionを変更しても良いですが、今回はSmartHRの情報が正になるのでHideのままで良いでしょう。

User permissionはRead Only or Read-Writeにすると、ユーザー自身がOktaの設定画面から内容を閲覧することが出来ます。
Read-Writeにするとユーザー自身で変更まで可能になります。

これで本当に完成
これでgivenNameやfamilyNameはSmartHRから、カスタム従業員項目はGAS→Okta Workflowsを経由してOktaのProfileに取り込むことが出来ました。
それでは、皆さんも良いOktaライフを🙌
Discussion