天天看點

關于資産服務入門

與其他Predix平台服務類似,對資産服務的認證通路由指定的可信釋出者控制,由使用者賬号和認證(UAA)網頁服務管理。開始進行資産服務之前,UAA服務執行個體必須已經設定為可信釋出者。

關于如何在Predix服務中實施認證和授權的更多資訊,請參見了解平台服務。

資産服務設定

該路線圖列出了開始進行資産服務的基本任務任務。

通路控制服務(ACS)的認證由指定的可信釋出者控制,由使用者賬号和認證(UAA)網頁服務管理。開始進行資産服務之前,您必須将一個UAA服務執行個體設定為可信釋出者。關于在Predix服務中認證和授權的資訊,請參見關于安全服務。

如果您已經根據使用Cloud Foundry指令設定平台服務中的描述設定了UAA服務,建立了一個可信的釋出者和一個OAuth2用戶端,那麼您無需執行所有任務。

任務路線圖

編号 任務 資訊

1 建立一個文本檔案,以存儲您将來需要用到的數值。 請參見建立一個參數文本檔案。

2 (可選)如有必要,配置您的代理設定。 根據您的位置和網絡配置,您可能需要配置您的代理設定,以便通路遠端資源。參見 定義與遠端資源的代理連接配接。

3 (可選)設定對Predix平台Artifactory的通路。 如果您需要通路Predix平台程式工件,您需要設定對Artifactory的通路。

Predix提供ACS spring安全擴充,用于與spring安全進行內建。庫存儲在Artifactory中。

參見設定對Predix平台Artifactory的通路。

4 将您的應用程式部署到Cloud Foundry中。 關于将一個Predix Hello World網頁應用程式部署到cloud foundry中的示例,請參見建立一個簡單的Predix Hello World網頁應用程式。

5 建立一個可信釋出者的執行個體。 建立一個使用者賬号和認證(UAA)服務的執行個體。UAA是每個平台服務用于認證的授權伺服器。

參見建立一個UAA服務執行個體。

6 建立一個資産服務執行個體。 參見建立一個資産服務執行個體。

7 建立OAuth2客戶賬号,設定對您的服務的通路,該服務使用UAA認證。 當您建立一個UAA執行個體時,會自動為您建立一個管理者用戶端,用于通路UAA的其他配置。您可以為您的服務執行個體建立一個具有特定權限範圍的新用戶端。如果已經有一個Oauth2用戶端,您可以更新該用戶端以添加您的服務執行個體。

參見建立一個OAuth2用戶端。

8 更新Oath2用戶端以添加服務特定範圍或權限。 為了使您的應用程式能夠通路平台服務,您的JSON網絡令牌(JWT)必須包含該平台服務所需的範圍。

參見更新OAuth2用戶端。

參見資産服務所需的權限與範圍。

9 将您的應用程式與服務執行個體綁定。 如果要在您的應用程式與平台服務之間建立通信,你必須将應用程式與服務綁定。

參見将一個應用程式與一個資産服務執行個體綁定。

10 将資産模型資料添加到您的應用程式。 參見将資産模型資料添加到您的應用程式

11 開始使用資産服務。 參見使用資産服務。

建立一個參數文本檔案

您可以在您的空間中建立多達10個UAA服務執行個體。如果您需要其他執行個體,添加新執行個體之前首先删除不用的舊執行個體。

1. 通過https://www.predix.io登入您的Predix賬号。

2. 導航至目錄 > 服務頁籤,然後點選使用者賬号和認證标題。

3. 在所需方案上點選訂閱。

4. 填寫建立服務執行個體頁面上的字段。

字段 說明

組織 選擇您的組織。

空間 為您的應用程式選擇空間。

服務執行個體名稱 為該UAA服務執行個體輸入一個唯一的名稱。

服務方案 選擇一個方案。

管理者用戶端密碼 輸入一個用戶端密碼(這是該UAA執行個體的管理者密碼)。用戶端密碼可以是任意字母數字字元串。

注:将用戶端密碼記錄在一個安全的位置,以供将來使用。

子域 (可選)除了為UAA建立的域,輸入一個您可能需要用到的子域。您不得在子域的名稱中添加特殊字元。子域的值不區分大小寫。

5. 點選建立服務。

您的UAA執行個體使用以下規範建立:

• 一個用戶端辨別符(admin)。

注:一個 admin 用戶端被建立用于啟動引導。你可以建立與您的應用程式一起使用的其他用戶端。

• 一個用戶端密碼(您在建立服務時指定的密碼)。

如果要檢索您的執行個體的其他詳細資訊,您可以将一個應用程式與您的執行個體綁定。

使用指令行建立一個UAA服務執行個體

使用指令行代替圖形使用者界面建立一個UAA服務執行個體的可選程式。

您可以在您的空間中建立多達10個UAA服務執行個體。如果您需要其他執行個體,您必須删除不用的舊執行個體并建立一個新執行個體。

1. 使用Cloud Foundry CLI登入Cloud Foundry。

cf login -a

的值在您注冊Predix.io使用者賬号時收到的Predix歡迎電子郵件中。根據您注冊的Predix.io, 的值為以下其中一個:

o Predix美國西部

https://api.system.aws-usw02-pr.ice.predix.io

o Predix美國東部

https://api.system.asv-pr.ice.predix.io

o Predix日本

https://api.system.aws-jp01-pr.ice.predix.io

o Predix英國

https://api.system.dc-uk01-pr.ice.predix.io

例如,

cf login -a https://api.system.aws-usw02-pr.ice.predix.io

2. 通過輸入以下指令列出在Cloud Foundry市場中的服務。

cf marketplace

UAA服務 predix-uaa被列為其中一個可用服務。

3. 通過輸入以下指令建立一個UAA執行個體。

cf create-service predix-uaa -c '{“adminClientSecret”:””,”subdomain”:””}'

其中:

o 是與服務相關的方案。例如,您可以将 tiered 方案用于 predix-uaa 服務。

o -c 選項用于指定以下其他參數。

 adminClientSecret 指定用戶端密碼。

 subdomain 指定一個除了為UAA建立的域您可能需要用到的子域。這是可選參數。您不得在子域的名稱中添加特殊字元。子域的值不區分大小寫。

注: Cloud Foundry CLI句法在Windows與Linux作業系統之間可能會不同。關于您的作業系統的适當句法,請參見Cloud Foundry幫助。例如,如果要檢視 create service 指令的幫助,請運作 cf cs。

您的UAA執行個體使用以下規範建立:

• 一個用戶端辨別符(admin)。

注:一個 admin 用戶端被建立用于啟動引導。你可以建立與您的應用程式一起使用的其他用戶端。

• 一個用戶端密碼(您在建立服務時指定的密碼)。

如果要檢索您的執行個體的其他詳細資訊,您可以将一個應用程式與您的執行個體綁定。

建立一個predix-uaa服務執行個體,用戶端密碼為admin,子域為ge-digital:

cf cs predix-uaa tiered test-1 -c '{“adminClientSecret”:”admin”,”subdomain”:”ge-digital”}'

VCAP_SERVICES中的内容為:

“VCAP_SERVICES”: {“predix-uaa”: [{“credentials”: {“issuerId”: “https://ge-digital.sb-uaa.grc-apps.svc.ice.ge.com/oauth/token“,”subdomain”: “ge-digital”,”uri”: “https://ge-digital.sb-uaa.grc-apps.svc.ice.ge.com“,”zone”: {“http-header-name”: “X-Identity-Zone-Id”,”http-header-value”: “011d56b9-831e-407d-98d0-da4c1c946862”}},”label”: “predix-uaa”,”name”: “test-1”,”plan”: “tiered”,”provider”: null,”syslog_drain_url”: null,”tags”: []}],

建立一個資産服務執行個體

建立一個資産服務執行個體,用于建立、更新并存儲定義資産特性以及資産與其他模組化元素之間關系的資産模型資料。

一個UAA服務執行個體已被配置為您的可信釋出者。參見平台服務設定。

1. 通過https://www.predix.io登入您的Predix賬号。

2. 導航至目錄 > 服務頁籤,并點選資産資料服務标題。

3. 在所需方案上點選訂閱。

4. 在建立服務執行個體頁面上,輸入:

字段 說明

組織 選擇您的組織。

空間 為您的應用程式選擇空間。

使用者賬号和認證(UAA) 選擇一個現有的UAA執行個體或建立一個新的UAA執行個體。

參見建立一個UAA服務執行個體。

服務執行個體名稱 為您的執行個體指定一個唯一的名稱。

服務方案 選擇一個方案。

5. 點選建立服務。

使用指令行建立一個資産服務執行個體

建立一個資産服務執行個體之前,您必須擁有該資産服務執行個體信任的UAA執行個體的基礎URL。參見建立一個UAA服務執行個體。

注:使用Cloud Foundry CLI執行以下步驟。如果要在網頁浏覽器中完成這些步驟,請遵循Predix目錄中服務頁面上的說明。

1. 列出Cloud Foundry市場中的服務。

cf marketplace

資産服務 predix-asset作為一個可用服務列出。

2. 建立一個資産服務執行個體。

cf create-service predix-asset -c '{“trustedIssuerIds”:[“”, “”]}'

其中:

o 是與服務相關的方案。将 Tiered 用于 predix-asset 服務。

o 是您的可信釋出者(UAA執行個體)的 issuerID 。例如, https://13fa0384-9e2a-48e2-9d06-2c95a1f4f5ea.predix-uaa.run.aws-usw02-pr.ice.predix.io/oauth/token。您可以使用一個逗号分隔清單指定多個可信釋出者。您可以在将一個應用程式與一個UAA執行個體綁定之後從VCAP_SERVICES環境變量中檢索該URL。

該消息表示資産執行個體已建立。将其與一個應用程式綁定之後,從VCAP_SERVICES環境變量中檢索該資産服務執行個體的URI。

建立一個OAuth2用戶端

建立其他OAuth2用戶端以通路一個UAA執行個體的程式。

• 登入predix.io。

OAuth 2.0協定将一個用戶端建立為一個應用程式,可以代表資源所有者并通過其授權執行保護資源請求。當您建立一個UAA執行個體時,會自動為您建立一個管理者用戶端,能夠配置您的UAA執行個體。管理者用戶端的密碼是您在建立UAA執行個體時指定的密碼。您可以為認證具有相同UAA伺服器執行個體的不同應用程式建立其他用戶端。您可以根據您的應用程式的要求為每個用戶端配置設定不同的通路許可。

1. 在控制台視圖中,選擇您的服務所處的空間。

2. 在服務執行個體頁面中,選擇您需要配置的UAA執行個體。

3. 選擇配置服務執行個體選項。

4. 在UAA儀表闆登入頁面中,指定您的管理者用戶端密碼并點選登入。

5. 在UAA儀表闆中,選擇用戶端管理頁籤。

用戶端管理頁籤包括兩部分,用戶端和服務執行個體。服務執行個體部分顯示您已經為您的服務建立的服務執行個體。

注:此處顯示的服務執行個體是那些您使用您想要配置的UAA建立的執行個體。您使用其他UAA執行個體建立的服務執行個體不顯示在此頁面上。

6. 點選建立用戶端按鈕打開建立用戶端窗體。

7. 在建立用戶端窗體中指定以下值:

字段 說明

用戶端ID 為您正在建立的OAuth2用戶端指定一個名稱。

用戶端密碼 指定密碼。您要記住該密碼,這一點非常重要。如果丢失,該密碼無法找回。

确認用戶端密碼 重新輸入用戶端密碼。

授權類型 從下面選擇一個或多個授權類型:

o authorization_code

當您使用授權代碼授權類型時,用戶端将資源所有者定向至UAA,然後UAA反過來通過授權代碼将資源所有者定向至用戶端。

o client_credentials

當您使用用戶端憑據授權類型時,UAA中的OAuth2端點接受用戶端ID和用戶端密碼并提供通路令牌。

o password

當您使用資源所有者密碼憑據授權類型時,UAA中的OAuth2端點接受使用者名和密碼并提供通路令牌。

o refresh_token

重新整理令牌是擷取通路令牌所用的憑據。您可以選擇此選項以便從UAA擷取重新整理令牌。然後,目前的通路令牌變為無效或過期時,您可以使用重新整理令牌從UAA擷取一個新的通路令牌,或者擷取具有相同或更窄範圍的其他通路令牌。

o implicit

當您使用隐式授權類型時,UAA直接為用戶端釋出通路令牌,無需認證該用戶端。這減少了擷取通路令牌所需往返行程的數量。

關于不同授權類型的更多資訊,請參見RFC 6749。

範圍 範圍是與一個OAuth用戶端相關的許可,用于使用者通過應用程式通路資源。使用者許可用于授權類型 authorization_code, password 和 implicit。範圍決定是否允許應用程式代表使用者進行通路。

預設為管理者用戶端配置設定所有需要的範圍。對于新的用戶端,管理者可以根據用戶端要求選擇要添加的範圍。

關于可以配置設定的範圍的完整清單,請參見UAA授權的範圍。

權限 權限是指當一個應用程式或API使用其自有憑據通路一個資源時與OAuth用戶端相關的許可,不涉及使用者。許可用于授權類型 client_credentials。

預設為管理者用戶端配置設定所有需要的權限。對于新的用戶端,管理者可以根據用戶端要求選擇要添加的權限。

權限清單與範圍清單相同。關于完整的清單,請參見UAA授權的範圍。

自動準許的範圍 為用戶端指定可以自動準許的範圍,無需資源所有者的明确準許。

重定向URI 指定一個重定向URI在登入後對用戶端進行重定向。例如, http://example-app.com/welcome。

當您開始将UAA用作服務提供者時,該URI用于您的外部身份提供者。

通路令牌有效性 指定通路令牌失效時間,機關毫秒。

重新整理令牌有效性 指定重新整理令牌失效時間,機關毫秒。

允許的提供者 如果有的話,指定外部身份提供者的名稱。如果您正在使用外部身份提供者,同時将UAA用作服務提供者,則該字段為必填。

使用UAAC建立一個OAuth2用戶端

使用UAA指令行界面(UAAC)代替圖形使用者界面建立一個OAuth2用戶端的可選程式。

您可以使用UAAC管理您的UAA執行個體。關于安裝指令行界面的更多資訊,請參見https://github.com/cloudfoundry/cf-uaac。

1. 将您的UAA執行個體指定為預定目标。

uaac target

是您的可信釋出者的URL,例如, https://11fa0273-9e2a-37e2-9d06-2c95a1f4f5ea.predix-uaa.run.aws-usw02-pr.ice.predix.io。您可以在将您的UAA執行個體與一個應用程式綁定之後從VCAP_SERVICES環境變量中檢索該URL。

2. 使用管理用戶端登入。

uaac token client get admin

3. 在提示時指定管理用戶端密碼。

4. 使用以下指令建立OAuth2用戶端:

uaac client add [client_name]–authorities “uaa.resource”–scope “openid”–autoapprove “openid”–authorized_grant_types [authorization_code|implicit|password|client_credentials|refresh_token]–redirect_uri [redirect_uri_1, redirect_uri_2, …]

關于UAA選項的更多資訊,例如 scopes 和 authorized_grant_types,請參見https://github.com/GESoftware-CF/uaa/blob/master/docs/UAA-APIs.rst網頁上的UAA檔案。

更新OAuth2用戶端

更新OAuth2用戶端以添加每個平台服務的其他特定權限或範圍的程式。

為了使您的應用程式能夠通路平台服務,您的JSON網絡令牌(JWT)必須包含該平台服務所需的範圍。例如,通路控制服務需要的某些範圍為 acs.policies.read acs.policies.write。關于一個服務所需範圍的完整清單,請參見每個服務的相關部分。

OAuth2用戶端使用一個授權請求一個通路令牌。OAuth2定義了四種授權類型。根據您使用的授權類型,您必須更新您的OAuth2用戶端以生成所需的JWT。關于如何建立OAuth2用戶端的更多資訊,請參見建立OAuth2用戶端。

當您建立一個UAA執行個體時,會自動為您建立一個管理者用戶端,能夠配置您的UAA執行個體。預設為管理者用戶端配置設定所需的權限和範圍。

如果您使用UAA儀表闆建立其他用戶端,用戶端被預設建立為用于 client_credentials 授權類型。另外,會自動為用戶端添加某些所需的權限和範圍。您必須添加每個服務特定的其他權限或範圍。

另外,管理者用戶端預設沒有被配置設定能夠更改使用者密碼的權限。如果您需要更新或更改使用者密碼,您必須為您的管理者用戶端添加 uaa.admin 權限。

以下程式顯示了更新使用客戶憑據授權的OAuth2用戶端所需的步驟。

1. 在控制台視圖中,選擇您的服務所處的空間。

2. 在服務執行個體頁面中,選擇您需要配置的UAA執行個體。

3. 選擇配置服務執行個體選項。

4. 在UAA儀表闆登入頁面中,指定您的管理者用戶端密碼并點選登入。

5. 在UAA儀表闆中,選擇用戶端管理頁籤。

用戶端管理頁籤包括兩部分,用戶端和服務執行個體。服務執行個體部分顯示您已經為您的服務建立的服務執行個體。

注:此處顯示的服務執行個體是那些您使用您想要配置的UAA建立的執行個體。您使用其他UAA執行個體建立的服務執行個體不顯示在此頁面上。

6. 在服務執行個體部分,在您需要更新用戶端的服務中點選+ 授權用戶端選項。

7. 從清單中選擇一個現有用戶端或選擇添加一個新用戶端選項。如果您選擇添加一個新用戶端,請遵循建立一個OAuth2用戶端中的步驟。

8. 點選送出。

9. 在用戶端管理頁籤中,點選與您在上一步中添加的用戶端相對應的編輯圖示。

10. 在編輯用戶端窗體中指定以下值:

字段 說明

授權的授權類型 從下面選擇一個或多個授權類型:

o client_credentials

當您使用用戶端憑據授權類型時,UAA中的OAuth2端點接受用戶端ID和用戶端密碼并提供通路令牌。用戶端預設通過 client_credentials 授權建立。

o implicit

當您使用隐式授權類型時,UAA直接為用戶端釋出通路令牌,無需認證該用戶端。這減少了擷取通路令牌所需往返行程的數量。

o password

當您使用資源所有者密碼憑據授權類型時,UAA中的OAuth2端點接受使用者名和密碼并提供通路令牌。

o authorization_code

當您使用授權代碼授權類型時,用戶端将資源所有者定向至UAA,然後UAA反過來通過授權代碼将資源所有者定向至用戶端。

當您使用這種授權類型時,也會預設配置設定一個 refresh_token 。

關于不同授權類型的更多資訊,請參見RFC 6749。

範圍 預設為用戶端配置設定部分需要的範圍。對于新的用戶端,管理者可以根據所選的授權類型選擇要添加的範圍。

如果您選擇 authorization_code, password 和 implicit 授權類型,您必須通過服務特定範圍更新範圍。

關于為每個服務添加的範圍的完整清單,請參見平台服務所需的權限或範圍。

權限 預設為用戶端配置設定部分需要的權限。對于新的用戶端,管理者可以根據所選的授權類型選擇要添加的權限。

如果您選擇 client_credentials 授權類型,您必須通過服務特定權限更新權限。

關于為每個服務添加的範圍的完整清單,請參見平台服務所需的權限或範圍。

自動準許的範圍 為用戶端指定可以自動準許的範圍,無需資源所有者的明确準許。

重定向URI 指定一個重定向URI在登入後對用戶端進行重定向。例如, http://example-app.com/welcome。

當您開始将UAA用作服務提供者時,該URI用于您的外部身份提供者。

通路令牌有效性 指定通路令牌失效時間,機關毫秒。

重新整理令牌有效性 指定重新整理令牌失效時間,機關毫秒。

允許的提供者 如果有的話,指定外部身份提供者的名稱。如果您正在使用外部身份提供者,同時将UAA用作服務提供者,則該字段為必填。

資産服務所需的權限與範圍

為了使應用程式能夠通路資産服務,您的JSON網絡令牌(JWT)必須包含以下範圍: predix-asset.zones..user。

将一個應用程式與一個資産服務執行個體綁定

您必須将您的資産服務執行個體與您的應用程式綁定,以便為您在VCAP_SERVICES環境變量中的資産服務執行個體提供連接配接詳細資訊。Cloud Foundry運作時使用VCAP_SERVICES環境變量與部署的關于其環境的應用程式進行通信。

1. 将您的應用程式與新的資産服務執行個體綁定。

cf bind-service

執行個體與您的應用程式綁定,将傳回以下消息:

Binding service to app in org cf_org_name / space cf_space_name as cf_username…OK TIP: Use 'cf restage' to ensure your env variable changes take effect

2. 驗證綁定:

cf env

傳回與以下消息類似的消息:

Getting env variables for app your_app_name in org cf_org_name / space cf_space_name as cf_user_name…OK {“VCAP_SERVICES”: {“predix-asset-dev”: [{“credentials”: {“instanceId”: “69c2bd61-4526-4379-9533-a2721fe83ba8”,”uri”: “http://predix-asset-rc.grc-apps.svc.ice.ge.com“,”zone”: {“http-header-name”: “Predix-Zone-Id”,”http-header-value”: “69c2bd61-4526-4379-9533-a2721fe83ba8”,”oauth-scope”: “predix-asset.zones.69c2bd61-4526-4379-9533-a2721fe83ba8.user”}},”label”: “predix-asset”,”name”: “testAsset”,”plan”: “”,”tags”: []}]}}

将資産模型資料添加到您的應用程式

用戶端應用程式可以使用資産服務REST API端點通路資産資料。這些端點提供一個JSON接口,您可以将描述您的所有資産的資料送出至該接口。如果要使用這些API,您的應用程式需要發出HTTPS請求并分析響應。您可以使用任何網頁開發語言通路API。

關于該API的更多資訊,請參見API檔案。

如果要為您的資産服務執行個體添加一系列資産:

1. 複制資産模型樣本資料中的樣本檔案。

2. 從VCAP_SERVICES環境變量中檢索資産執行個體詳細資訊:

o 資産執行個體 uri

o 進行REST調用所需的ID, instanceId。

3. 在一個REST用戶端中:

a. 選擇 POST 方法。

b. 輸入從VCAP_SERVICES環境變量中擷取的您的資産服務執行個體的URI。

c. 添加以下HTTP标頭:

 Content-Type

輸入值。application/json。

 Authorization

輸入您從UAA接收的令牌,格式為 Bearer 。參見将一個應用程式與UAA執行個體綁定。

 Predix-Zone-Id

輸入進行REST調用所需的ID,使用來自 instanceId 的值,該值來自VCAP_SERVICES環境變量。

關于資産服務入門

d. 在您的請求的正文中輸入格式正确的JSON。

如果要使用樣本資料,可以從資産模型樣本資料中複制JSON對象。

關于資産服務入門

4. 使用資産服務API端點運作樣本資産服務API請求。

活動概況:為了讓國内開發者第一時間了解試用Predix 平台,及時跟蹤了解國際工業網際網路的最新技術,GE數字強調文字創新坊推出了Predix 開發者試用計劃,并将提供Predix 的基礎服務、微服務子產品、開發工具等給有興趣的開發者試用,試用期為3個月,這也是開發者進行工業化數字轉型的第一步。需要注意的是該賬号僅作開發評估目的使用,不能應用于任何商業用途,最終注冊結果以郵件為準。并且GE保留對相關帳号申請、管理和使用的解釋權。試用結束後,GE不保留任何開發者資料!

掃描下方二維碼參與報名:

關于資産服務入門