日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過SCIM協議將企業內部賬號同步到阿里云RAM

企業上云的過程中,為減少維護和管理成本,需要基于一套原則將企業內部系統中已有的賬號同步到云上。阿里云通過SCIM標準協議,結合OAuth應用的安全授權,可以將企業內部系統中的賬號數據同步到阿里云訪問控制(RAM)中。

前提條件

本文中所有RAM控制臺的操作,推薦使用RAM管理員或具有OAuth管理權限的RAM用戶完成。

背景信息

  • SCIM(System for Cross-domain Identity Management)主要用于多用戶的云應用身份管理。SCIM 2.0建立在一個對象模型上,所有SCIM對象都繼承Resource。Resource具有id、externalId和meta屬性,RFC 7643定義了擴展公共屬性的User、Group和EnterpriseUser。本文的示例將采用User來同步用戶信息。

  • 開放授權OAuth(Open Authorization)是為用戶資源的授權定義了一個安全、開放及簡單的標準,第三方無需知道用戶的賬號和密碼,就可獲取到用戶的授權信息。阿里云當前的OAuth授權形態分為WebAppNativeAppServerApp三種。WebAppNativeApp都屬于3-legged OAuth,而ServerApp屬于2-legged OAuth。SCIM主要使用2-legged OAuth機制來完成應用程序(消費者)和API(服務提供商)之間的授權,從而進行下一步的數據同步業務。更多關于OAuth的信息,請參見OAuth 2.0OAuth應用概覽

  • 阿里云SCIM Endpoint:https://scim.aliyun.com

  • 阿里云OAuth獲取access_token的Endpoint:https://oauth.aliyun.com/v1/token

步驟一:創建OAuth應用并授權

  1. 使用阿里云賬號登錄RAM控制臺

  2. 在左側導航欄,單擊OAuth應用(公測)

  3. 企業應用頁簽,單擊創建應用,創建OAuth應用。

    其中,應用類型選擇ServerApp。具體操作,請參見創建應用

  4. 單擊應用名稱,在應用OAuth范圍頁簽,單擊添加OAuth范圍,添加OAuth應用范圍。

    其中,OAuth范圍選擇/acs/scim。具體操作,請參見添加應用范圍

  5. 為OAuth應用授權。

    1. 應用OAuth范圍頁簽,單擊去授權

    2. 第三方應用授權頁面,選中阿里云跨域身份管理服務,然后單擊授權

  6. 應用密鑰頁簽,單擊創建密鑰,創建應用密鑰。

    重要
    • 應用密鑰內容(client_secret)僅在創建時可見,請您及時保存。

    • AppSecretId是應用密鑰的ID,不是應用密鑰內容(client_secret)。

步驟二:同步賬號數據

支持通過客戶端(例如:One Identity)或SCIM API兩種方式同步賬號數據。

  • 客戶端:您可以在客戶端(One Identity)中配置SCIM信息,然后通過One Identity同步賬號數據。One Identity配置方法,請參見One Identity文檔

  • SCIM API:您可以通過SCIM API將企業內部系統中的賬號映射成RAM用戶,支持對RAM用戶的以下字段進行創建、刪除、查詢和修改操作。

    • id:RAM用戶ID,全局唯一,服務端生成。

    • externalId:RAM用戶外鍵,用戶級別唯一,客戶端指定,用于將阿里云的RAM用戶和企業內部系統中的用戶關聯。

      說明

      通過控制臺創建的RAM用戶無externalId字段。

    • userName:RAM用戶名稱,用戶級別唯一,客戶端指定。

    • displayName:RAM用戶顯示名稱,客戶端指定。

通過阿里云SCIM API同步賬號數據的操作如下所示。

  1. 獲取已授權的ServerApp的ID(client_id)和密鑰內容(client_secret)。

  2. 通過client_idclient_secret訪問https://oauth.aliyun.com/v1/token,獲取access_token

    其中,請求頭中的Authorization內容為"Authorization: Basic Base64Encode(client_id:client_secret)",例如:client_id=cid,client_secret=123456,那么請求頭中需要輸入的Authorization內容為"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. 查詢阿里云SCIM支持的ResourceTypeSchema

    查詢SCIM支持的ResourceType

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

    查詢SCIM支持的Schema

    curl --location --request GET 'https://scim.aliyun.com/Schemas'
  4. 創建、查詢、修改和刪除RAM用戶。

    • 創建RAM用戶。

      根據企業內部系統中的賬號信息,指定與之對應的RAM用戶名稱(userName)、顯示名稱(displayName)和外鍵(externalId),然后創建RAM用戶。

      請求示例:

      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 Filter,阿里云僅支持對iduserNameexternalId進行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用戶成功。

      說明

      阿里云暫時不支持軟刪除。如果您的系統支持軟刪除,建議先將軟刪除映射成硬刪除,再同步到阿里云。