すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:SCIM を使用したオンプレミスアカウントの RAM へのプロビジョニング

最終更新日:Mar 26, 2026

企業がクラウドへ移行するに伴い、オンプレミス環境のアカウントを同期することは、メンテナンスコストの削減において極めて重要です。Alibaba Cloud では、System for Cross-domain Identity Management (SCIM) プロトコルと Open Authorization (OAuth) を活用して、お客様のオンプレミスシステムから Resource Access Management (RAM) へアカウントデータを同期できます。

前提条件

このトピックで説明する RAM コンソール内のすべての操作は、RAM 管理者または OAuth 管理権限を持つ RAM ユーザーとして実行することを推奨します。

背景情報

  • System for Cross-domain Identity Management (SCIM) は、マルチテナント型クラウドアプリケーションにおけるユーザー ID 管理のためのプロトコルです。SCIM 2.0 はオブジェクトモデルに基づいて構築されており、すべての SCIM オブジェクトはコアとなる Resource を基盤としています。この Resource には、idexternalId、および meta の属性があります。RFC 7643 では、UserGroupEnterpriseUser などの拡張が定義されています。本トピックでは、User オブジェクトを用いてユーザー情報を同期します。

  • Open Authorization (OAuth) は、アクセス委任のためのオープン標準です。これにより、第三者アプリケーションがユーザーの認証情報を公開せずに、ユーザーのリソースにアクセスできます。Alibaba Cloud では、Web アプリケーションネイティブアプリケーションサーバーアプリケーション の 3 種類の OAuth アプリケーションをサポートしています。Web アプリケーション および ネイティブアプリケーション では 3-legged OAuth を、サーバーアプリケーション では 2-legged OAuth を使用します。SCIM では、主に 2-legged OAuth 機構を用いてクライアントアプリケーションと API サービスプロバイダー間の通信を認可し、データ同期を実現します。OAuth の詳細については、「OAuth 2.0」および「OAuth アプリケーションの概要」をご参照ください。

  • Alibaba Cloud SCIM エンドポイント:https://scim.aliyun.com

  • Alibaba Cloud OAuth エンドポイント(アクセストークン取得用):https://oauth.aliyun.com/v1/token

ステップ 1:OAuth アプリケーションの作成と承認

  1. RAM コンソールに Alibaba Cloud アカウントでログインします。

  2. 左側のナビゲーションウィンドウで、OAuth プレビュー をクリックします。

  3. エンタープライズアプリケーション タブで、アプリケーションの作成 をクリックします。

    アプリケーションタイプサーバーアプリケーション に設定します。「OAuth アプリケーションの作成」をご参照ください。

    サーバーアプリケーションを作成後、その詳細ページよりアプリケーション ID(client_id)を確認します。

  4. アプリケーション名をクリックし、OAuth スコープ タブで、OAuth スコープの追加 をクリックします。

    OAuth スコープ には /acs/scim を選択します。「OAuth スコープの管理」をご参照ください。

  5. OAuth アプリケーションを承認します。

    1. OAuth スコープ タブで、承認 をクリックします。

    2. サードパーティアプリケーションの承認 ページで、クロスドメイン ID 管理へのアクセス を選択し、承認 をクリックします。

  6. アプリケーションシークレット タブで、シークレットの作成 をクリックしてアプリケーションシークレットを作成します。

    重要

    アプリケーションシークレット(AppSecretValue)は、作成時にのみ表示されます。安全な場所に保存してください。

ステップ 2:アカウントデータの同期

One Identity などのクライアント、または SCIM API を使用してアカウントデータを同期できます。

  • クライアント:クライアント(例:One Identity)で SCIM 設定を構成し、それを用いてアカウントデータを同期できます。「One Identity ドキュメント」をご参照ください。

  • SCIM API:SCIM API を使用して、オンプレミス環境のアカウントを RAM ユーザーにマップします。API では、以下の RAM ユーザー属性に対する作成、クエリ、変更、削除操作をサポートしています:

    • id:RAM ユーザーの ID。この ID はグローバルに一意であり、サーバーによって生成されます。

    • externalId:RAM ユーザーの外部キー。クライアントがこの ID を指定することで、Alibaba Cloud 上の RAM ユーザーとお客様のオンプレミスシステム上のユーザーを関連付けます。

      説明

      RAM コンソールで作成された RAM ユーザーには、externalId 属性はありません。

    • userName:RAM ユーザー名。この名前はユーザー単位で一意であり、クライアントが指定します。

    • displayName:RAM ユーザーの表示名。この名前はクライアントが指定します。

以下に、Alibaba Cloud SCIM API を使用したアカウントデータの同期手順を示します。

  1. 承認済みのサーバーアプリケーションのアプリケーション ID(client_id)およびアプリケーションシークレット(AppSecretValue)を取得します。

  2. https://oauth.aliyun.com/v1/token に、client_id および AppSecretValue を使用してアクセスし、access token を取得します。

    Authorization ヘッダーは、"Authorization: Basic Base64Encode(client_id:AppSecretValue)" の形式である必要があります。たとえば、client_idcidAppSecretValue123456 の場合、ヘッダーは "Authorization: Basic Y2lkOjEyMzQ1Ng==" となります。

    リクエスト例:

    curl --location --request POST --header "Authorization: Basic Y2lkOjEyMzQ1Ng==" https://oauth.aliyun.com/v1/token?grant_type=client_credentials&client_id=463790568674183****

    応答例:

    {
        "scope": "/acs/scim",
        "request_id": "8dc768e0-d6fe-4f52-a788-05631dd6c584",
        "access_token": "eyJ***hKg",
        "token_type": "Bearer",
        "expires_in": "3599"
    }
  3. Alibaba Cloud SCIM がサポートする ResourceType および Schema をクエリします。

    サポートされる ResourceType のクエリ:

    curl --location --request GET 'https://scim.aliyun.com/ResourceTypes'

    サポートされる Schema のクエリ:

    curl --location --request GET 'https://scim.aliyun.com/Schemas'
  4. RAM ユーザーの作成、クエリ、変更、削除を行います。

    • RAM ユーザーの作成

      RAM ユーザーを作成するには、お客様のオンプレミスシステムのアカウント情報をもとに、RAM ユーザー名(userName)、表示名(displayName)、および外部キー(externalId)を指定します。

      リクエスト例:

      curl --location --request POST 'https://scim.aliyun.com/Users' \
      --header 'Authorization: Bearer  eyJ***hKg' \
      --header 'Content-Type: application/json' \
      --data-raw '{
          "displayName": "j2gg0s_****",
          "schemas": [
              "urn:ietf:params:scim:schemas:core:2.0:User"
          ],
          "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****",
          "userName": "j2gg0screatedbyscim_exa****"
      }'

      応答例:

      {
          "displayName": "j2gg0s_****",
          "meta": {
              "created": "2020-02-14T03:58:59Z",
              "location": "https://scim.aliyun.com/Users/27648498165273****",
              "lastModified": "2020-02-14T03:58:59Z",
              "resourceType": "User"
          },
          "schemas": [
              "urn:ietf:params:scim:schemas:core:2.0:User"
          ],
          "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****",
          "id": "27648498165273****",
          "userName": "j2gg0screatedbyscim_exa****"
      }
    • 特定の RAM ユーザーのクエリ

      • GET /Users/{id} を使用して、id で RAM ユーザーをクエリします。

      • GET /Users?filter=externalId eq xxx を使用して、externalId で RAM ユーザーをクエリします。

      • GET /Users?filter=userName eq xxx を使用して、userName で RAM ユーザーをクエリします。以下のコードはリクエストおよび応答の例です。

        リクエスト例:

        curl --location --request GET 'https://scim.aliyun.com/Users?filter=userName%20eq%20%22j2gg0screatedbyscim****%22' \
        --header 'Authorization: Bearer  eyJ***hKg'

        応答例:

        {
            "startIndex": 1,
            "totalResults": 1,
            "itemsPerPage": 30,
            "schemas": [
                "urn:ietf:params:scim:api:messages:2.0:ListResponse"
            ],
            "Resources": [
                {
                    "displayName": "j2gg0screatedbyscim****",
                    "meta": {
                        "created": "2019-12-11T01:53:19Z",
                        "location": "https://scim.aliyun.com/Users/27769827602919****",
                        "lastModified": "2019-12-11T02:10:39Z",
                        "resourceType": "User"
                    },
                    "schemas": [
                        "urn:ietf:params:scim:schemas:core:2.0:User"
                    ],
                    "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****",
                    "id": "27769827602919****",
                    "userName": "j2gg0screatedbyscim****"
                }
            ]
        }
        説明

        SCIM フィルターについて、Alibaba Cloud では、iduserName、および externalId 属性に対して、and および eq のみをサポートしています。

    • RAM ユーザーの属性の変更

      リクエスト例:

      curl --location --request PUT 'https://scim.aliyun.com/Users/27648498165273****' \
      --header 'Authorization: Bearer  eyJ***hKg' \
      --header 'Content-Type: application/json' \
      --data-raw '{
          "displayName": "j2gg0s_new_****",
          "schemas": [
              "urn:ietf:params:scim:schemas:core:2.0:User"
          ],
          "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****",
          "userName": "j2gg0screatedbyscim_new_exa****"
      }'

      応答例:

      {
          "displayName": "j2gg0s_new_****",
          "meta": {
              "created": "2020-02-14T03:58:59Z",
              "location": "https://scim.aliyun.com/Users/27648498165273****",
              "lastModified": "2020-02-14T04:03:55Z",
              "resourceType": "User"
          },
          "schemas": [
              "urn:ietf:params:scim:schemas:core:2.0:User"
          ],
          "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****",
          "id": "27648498165273****",
          "userName": "j2gg0screatedbyscim_new_exa****"}
    • RAM ユーザーの削除

      リクエスト例:

      curl --location --request DELETE 'https://scim.aliyun.com/Users/27648498165273****' \
      --header 'Authorization: Bearer  eyJ***hKg' \
      --header 'Content-Type: application/json'

      HTTP ステータスコード 204 が返された場合、RAM ユーザーの削除が正常に完了しています。

      説明

      Alibaba Cloud では、現在ソフト削除はサポートされていません。お客様のシステムでソフト削除がサポートされている場合は、Alibaba Cloud へのデータ同期前に、ソフト削除をハード削除にマップしてください。