SCIM APIとは?仕組みと使い方をわかりやすく解説SCIM APIについて

SCIM APIについての投稿のアイキャッチ API

はじめに

SCIM APIとは何かを初心者向けに解説します。

以前アサインしていた案件でSCIM APIに準拠したAPIの設計を担当しました。

備忘録として、ここのブログで残しておこうかなと、、、

思い出しながら書くので、間違ってたらすみません。

SCIM APIとは何ぞや?

SCIM API とは 複数サービス間やシステム間で、ユーザーアカウント情報(ID、グループ、権限など)を自動的に作成・更新・削除する標準化されたAPI技術です。RFC7644に基づく標準的な仕様です。

簡単に説明すると、システムAとシステムBがあった時に、システムAでユーザ作成→システムBでも作りましょうね。っていうことですね。

システム間でユーザ情報の連携をするために、様々なルールを定めた仕様になります。

SCIM API に準拠するとは?

RFC 7643: System for Cross-domain Identity Management: Core Schema
The System for Cross-domain Identity Management (SCIM) specifications are designed to make identity management in cloud-...

↑こちらがSCIM API の原本になります。(rfc7644もID同期について書かれています。)

はい、英語で記載されてます。IETF(Internet Engineering Task Force:インターネット技術タスクフォース)という国際的な組織が管理しています。

SCIM API は前提としてRESTful API です。ん?少し混乱しますが、RESTful API は 大分類で、SCIM API が中分類になります。あらゆるリソースはRESTの原則・設計思想に基づいて、作ることができます。対して、SCIM API が扱うリソースはユーザ とユーザが所属するグループになります。ユーザに関する情報の専門家というわけですね!

そのため、SCIM API はより詳細にルールが明記されてあります。

エンドポイントの命名規則や、リクエストヘッダや、レスポンスまで、事細かく決められています。

ただ、細かすぎて完全に準拠した企業は少ないかも?

参考となる企業のAPIの仕様書

SCIMユーザーAPIリファレンス | Snowflake Documentation
Docs | ServiceNow

私も設計する際に参考にさせていただきました。

エンドポイントやリクエストで送るデータの規則などしっかり明記されてますね!

このように作るユーザのことも考えてしっかりとした仕様書を作ったりもしました。

エンドポイントの例ですが、こんな感じです。v2はバージョンを示します。1.0と2.0があります。特に指定がない場合は、2.0で設計するかと思いますが、ユーザ側にv2でリクエストを投げるようにしっかりと示してくださいね。(仕様書に明記するなり)

/scim/v2/Users/{user.id}

企業が公開しているエンドポイントにリクエストを投げてみて、どのようなレスポンスが返ってくるかも参考になるかと思います。

curl -X 'GET' -H 'Accept: application/json' エンドポイント

最後に

今回も恒例ですが、私はまだ未熟者ゆえ、間違った知識などを披露することもありますので、参考程度にお願いいたします。

コメント

タイトルとURLをコピーしました