クラウドサービスにおけるID管理の理想と現実

こんにちは、システムコンサルティング本部の浅賀です。

システムコンサルティング本部では、サイボウズ製品と他社製品のアライアンス(連携)を強化する取り組みを行なっています。

最近では、OpenID Foundation JapanJNSA(日本ネットワークセキュリティ協会)が合同で開催している「Enterprise Identity Working Group」に参加しており、今回はその活動について書かせて頂きます。

Enterprise Identity Working Group の取り組み

ワーキンググループでは、企業向けのクラウドサービスで ID 連携を普及させるための課題分析と解決策の検討を行なっています。
クラウドサービスを展開するベンダー、クラウドサービスを利用する企業、セキュリティベンダー、ID 管理ツールベンダーなど様々なメンバーが参加しています。

ワーキンググループで cybozu.com の説明を行なっている様子
ワーキンググループで cybozu.com の説明を行なっている様子

クラウドサービスにおける ID 管理・運用の課題

企業でのクラウドサービス利用は年々増加していますが、課題となる点も見つかっています。

  • サービスの利用者にとって
    • 利用するサービスが増えてくると ID・パスワードが増え、覚えるだけでも大変。
    • サービスごとにログイン情報を入力する必要があり、ログインに手間がかかる。
  • システム管理者にとって
    • 社員の増減に伴って、各サービスに対しての ID の発行・削除が必要。
      ID の削除を忘れると、退職した社員が気付かないところでサービスにログインして情報を抜き出していたという事もあり得る。
    • サービスによって ID 登録のフォーマットが異なるため、サービスごとの登録データを準備する必要があり、手間がかかる。

ワーキンググループでの解決案

上記の課題について、ワーキンググループでは、OpenID Connect と SCIM(スキム) を使う事による解決方法を検討しました。

ユーザープロビジョニングと ID 連携による、ID 管理の一元化とユーザーの利便性向上
ユーザープロビジョニングと ID 連携による、ID 管理の一元化とユーザーの利便性向上

OpenID Connect は、認証結果と属性情報(クレーム)の受け渡しを行うための共通仕様です。
各クラウドサービスが OpenID Connect に対応する事で、利用者がサービスごとの ID・パスワードを覚えたり、サービスにアクセスする度にログイン情報を入力する必要が無くなります。

OAuth 2.0 をベースに作られていますので、既存のクラウドサービスにも実装しやすいと考えられます。
昨年、Yahoo! Japan の YConnect が OpenID Connect に対応して話題になりました。

SCIM は ID 情報の連携(ユーザー・プロビジョニング)の共通仕様で、フォーマット(JSON)とプロトコル(RESTful API)を定義しています。
各クラウドサービスが対応する事で、利用企業は各クラウドサービスに対して、共通の仕様で ID 情報の連携を行う事が可能となります。

日本ではまだ耳にする事が少ない技術で、残念ながら日本ではそのまま使えるものではありませんでした。

例えば、日本では当然必要になると思われる「よみがな」や、日本企業独特の「職位」や「表示順」といった属性がコアスキーマに存在していません。
また、グループを表現するリソースは存在していますが、階層構造で表現する事ができないなど、日本で利用するためには多くの問題がありました。

ワーキンググループでは、日本での利用時に不足すると思われる内容を洗い出し、標準属性の拡張や新たなリソースの定義を行いました。

例えば、個人の氏名を表現するために、以下のような JSON フォーマットを定義しました。
これでしたら「よみがな」を実現できますし、多言語の考慮が行われている事も分かって頂けると思います。

※下記は検討中の案で、標準仕様として確定したものではありません。

SCIM 標準スキーマ(一部を抜粋)

{
    "name": {
        "formatted": "Ms. Barbara J Jensen III",
        "familyName": "Jensen",
        "givenName": "Barbara",
        "middleName": "Jane",
        "honorificPrefix": "Ms.",
        "honorificSuffix": "III"
      }
}

日本向けに拡張したスキーマ案

{
    "orgUserNames": [
    {
        "locale": "ja_JP"
        "type": "kanji",
        "value": "佐藤 昇"
      },
      {
        "locale": "ja_JP",
        "type": "kana",
        "value": "さとう のぼる"
      },
      {
        "locale": "ja_JP",
        "type": "roman",
        "value": "Noboru SATO"
      }
  ]
}

おわりに

昨年から続けて来たワーキンググループも、残すところ1回となりました。
検討してきた内容は成果物としてまとめ、その後は国内で普及させるための活動を行なっていく予定です。

サイボウズとしては、今後も業界標準仕様の策定に積極的に関わっていきたいと考えています。