😁

Oktaでグループにユーザを大量追加するのがダルい時に、APIを使って簡単に追加する手順

2021/09/17に公開

超初心者向けです。
今日、支援先で総務兼情シスちょっとな人に、「こーしたらええんやでー」って話したら、めっちゃ感動されて、同じ様に悩んでる人の助けになれば良いなぁと思って、書くことにしました。

Oktaを導入して、サービスをSSO化する時に、既存サービス側のユーザをエクスポートして、Oktaにアサインする時に、大量のユーザを追加する必要があって、GUIでポチポチするには心が折れかけた事ないですか?
その時に、このメモを使って下さい。

準備

1.Okta APIトークンの準備

以下の手順でトークンを取得しておく

  • 管理コンソールにログイン。
  • SecurityAPI Token と移動。
  • Create Tokenを押下し、Tokenを取得。


API Token発行

2.GroupのOkta IDを確認する

今回は一旦グループに追加して、それをApplicationにアサインする方法を想定しています。
(一旦、グループにアサインした方が何かと楽なので、私はその実装が多い。)
Okta Group IDは、URLで確認できる ので、そのIDを取得する。
書式は、以下の通り。

https:// {管理コンソールのURL}/admin/group/{Group_ID}

3.UserIDを取得する。

これは、Oktaをパワフルにサポートしてくれるエクステンションを使って取得するのが楽で良いです。

このエクステンションをインストールすると標準機能には無い ユーザエクスポート ができるようになります。
管理者GUIにアクセスすると、左上にこんなアイコンできてると思います。
Rockstar
Rockstarインストール後

ユーザエクスポートを実行すると、OktaのユーザIDとセットでエクスポートしてくれるので、これを利用します。追加したいユーザのリスト等と結合して、UserIDのリストを作っておくと良いでしょう。


Okta User Exportsした後のCSVファイル

Groupにユーザを追加するAPIの確認

Referenceはこちらです。

Example

curl -v -X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: SSWS ${api_token}" \
"https://${yourOktaDomain}/api/v1/groups/${Group_ID}/users/${User_ID}"

置き換えが必要なのは、
 - ${api_token} → 手順1のToken
 - ${yourOktaDomain}  → 管理者GUIのURLを。
 - ${Group_ID}  → 手順2で確認したGroupID
 - ${User_ID} → 手順3で取得したUserID

実行しましょう。

まずは、ターミナル.app を開いて、サンプル的に一人を実行してみて、目当てのグループに、人が追加されるのを確認しましょう。 
問題なければ、こんな感じにテキストを整形して、複数行をコピー、ペーストして流し込んで上げれば直ぐに終わると思います。

curl -X PUT  -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: SSWS  {token}" "https://{yourOktaDomain}.okta.com/api/v1/groups/{groupID}/users/{AさんのuserID}"
curl -X PUT  -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: SSWS  {token}" "https://{yourOktaDomain}.okta.com/api/v1/groups/{groupID}/users/{BさんのuserID}"
curl -X PUT  -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: SSWS  {token}" "https://{yourOktaDomain}.okta.com/api/v1/groups/{groupID}/users/{CさんのuserID}"
curl -X PUT  -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: SSWS  {token}" "https://{yourOktaDomain}.okta.com/api/v1/groups/{groupID}/users/{DさんのuserID}"

どうできた? 簡単だったでしょう。


最後に

API操作する? むずい!!無理やわ! ってなってる人のブレークスルーになれば嬉しいな。
参考になれば嬉しいです。

Discussion