Share via


將 ACS 命名空間移轉到 Google OpenID Connect

這個主題適用於目前使用 Google 做為身分識別提供者的存取控制服務 (ACS) 2.0 命名空間的擁有者。 ACS 提供使用 Google OpenID 2.0 實作這項功能。 Google 計畫于 2015 年 4 月 20 日停止 OpenID 2.0 支援。 ACS 命名空間將繼續使用 Google 的 OpenID 2.0 實作,直到 2015 年 6 月 1 日為止,此時您必須完成這些命名空間的移轉,才能使用 Google 的 OpenID 連線實作,或使用者將無法再使用 Google 帳戶登入您的應用程式。 移轉至 OpenID Connect 的 ACS 命名空間不會造成應用程式停機時間。 有一個例外狀況 (請參閱下列附註),這項移轉而不需要變更應用程式程式碼有可能。 移轉之後您的 ACS 命名空間,以使用 OpenID Connect,您必須移轉您的後端中的使用者的識別項 OpenID Connect 的識別項。 此移轉必須在 2017 年 1 月 1 日完成。 它將需要後端中的程式碼變更。 請參閱下面詳細資料移轉的這兩個階段的重要注意事項。

重要

請注意下列重要日期,並完成每個日期,以確保您使用 Google 做為身分識別提供者的 ACS 命名空間繼續運作所需的動作:

  • 於 2015 年 6 月 1 日-ACS 命名空間將會停止使用 Google OpenID 2.0 實作。 您必須完成這個日期使用 Google OpenID Connect 的 ACS 命名空間移轉。 在此日期之前,如果您在移轉期間遇到問題,可以回復至 OpenID 2.0。 對於此日期尚未移轉的命名空間,使用者將無法再使用 Google 帳戶登入,並會顯示一個頁面,指出 Google 帳戶的 OpenID 2.0 已消失。 若要使用 Google 帳戶還原登入功能,您必須移轉命名空間。

    在大部分情況下,變更任何應用程式程式碼應該不會需要。 如果您有"傳遞所有宣告"Google 做為身分識別提供者的規則在規則群組中與您的應用程式相關聯,不過,您可能需要變更程式碼。 這是因為在移轉時,將新的宣告型別 (主旨) 就會變成可用至 ACS 向 Google,您可能需要變更程式碼以確保您的應用程式能夠順利處理的新宣告型別是否存在。 成功完成移轉,將不會有任何需要處理您的應用程式中的新宣告型別。

  • 2017 年 1 月 1 – Google 的 OpenID 2.0 和 OpenID Connect 實作使用不同的識別項來唯一識別 Google 使用者。 當您移轉您的 ACS 命名空間時,ACS 會讓目前 OpenID 2.0 識別碼和新 OpenID Connect 的識別碼,應用程式可以使用兩個識別碼。 您必須依此日期、 OpenID Connect 的識別項切換使用者的識別項後端系統中,並開始使用只有 OpenID Connect 識別碼從現在開始。 這需要變更應用程式程式碼。

您可以在 Stack Overflow 上張貼移轉問題,並以 'acs-google' 標記它們。 我們會儘快回應。

如需 Google 方案的詳細資訊,請參閱其 OpenID 2.0 移轉指南

移轉檢查清單

下表摘要說明移轉您的 ACS 命名空間使用 Google OpenID Connect 實作所需的步驟的檢查清單:

步驟 描述 必須由完成

1

建立 Google + 應用程式在Google 開發人員主控台

2014 年 6 月 1 日

2

如果您有"傳遞所有宣告"Google 做為身分識別提供者的規則在規則群組中與您的應用程式相關聯,測試您的應用程式,以確保它是移轉準備 ;否則,這個步驟是選擇性的。

2014 年 6 月 1 日

3

使用ACS 管理入口網站切換 ACS 命名空間提供使用 Google + 應用程式的參數 (用戶端識別碼和用戶端密鑰) 使用 Google OpenID Connect 實作。 如果您遇到移轉的問題,回到 OpenID 2.0 的向前復原可能會於 2015 年 6 月 1 日之前。

2014 年 6 月 1 日

4

在您從目前的 Google OpenID 2.0 識別碼新 Google OpenID Connect 識別項的後端系統移轉您的使用者識別碼。 這需要變更程式碼。

2017 年 1 月 1 日

逐步解說移轉

若要移轉您的 ACS 命名空間使用 Google OpenID Connect 實作,請完成下列步驟:

  1. 建立 Google+ 應用程式

    如需如何執行這項操作的詳細指示,請參閱如何:建立 Google+ 應用程式一節。

  2. 請確定您的應用程式移轉準備

    如果您有 Google 的「傳遞所有宣告」規則,作為與您應用程式相關聯之規則群組中的識別提供者,請遵循如何:確定 ACS 應用程式的移轉整備程度一節中的指示,以測試應用程式的移轉整備程度。 這是因為在移轉時將新的宣告型別 (主旨) 變成 ACS Google 中可用。

    注意

    傳遞所有宣告」規則是一項規則,其中輸入宣告類型和輸入宣告會設定為Any和 Output 宣告類型,而[輸出宣告值] 會分別設定為 [通過第一個輸入宣告類型] 和 [傳遞輸入宣告值]。 此規則會列在ACS 管理入口網站,如下所示,使用輸出宣告資料行設為通過

    Passthrough rule

    如果您先前產生的規則或加入規則手動 Google 作為身分識別提供者與您的應用程式相關聯的規則群組中,您可以略過此步驟。 這是因為在這些情況下,在移轉時新主旨宣告型別不會傳送至應用程式。

    若要深入瞭解這些選項,請參閱 規則群組和規則

  3. 切換使用 Google OpenID Connect 實作的 ACS 命名空間

    1. 移至 Microsoft Azure 管理入口網站、登入,然後按一下 [Active Directory]。 選取 [需要進行移轉,並按一下的 ACS 命名空間管理啟動ACS 管理入口網站

    2. ACS 管理入口網站,按一下身分識別提供者在左手邊或按一下樹狀目錄中身分識別提供者連結底下開始> 一節。 按一下 [Google]

      Access Control Service Identity Providers Dialog

    3. 編輯 Google 身分識別提供者] 頁面上,核取使用 OpenID Connect

      Edit Google Identity Provider dialog

    4. 用戶端識別碼用戶端密碼(現在已啟用),欄位中的對應值複製 Google + 應用程式。

      Edit Google Identity Provider dialog

      注意

      如果您按一下此時儲存,ACS 命名空間的所有 Google 身分識別提供者要求將會自動都使用 Google OpenID Connect 實作。 如果您需要回復,您可以取消勾選使用 OpenID Connect。 用戶端識別碼和用戶端密碼會一直儲存,並可以重複使用更新版本上。

    5. 按一下 [檔案] 。

    6. 請嘗試以確保切換到使用 OpenID Connect 成功登入 Google ID。 如果您有登入的困難,請回到編輯 Google 身分識別提供者頁面和取消核取使用 OpenID Connect回復到 OpenID 2.0。 在復原之後,請檢查用戶端識別碼密碼從複製Google 開發人員主控台輸入正確命名空間 ;例如,檢查有錯字。

  4. 後端系統中從 Open ID 2.0 OpenID Connect 移轉您的使用者識別碼

    您必須將後端系統中的使用者識別碼從現有的 Google Open ID 2.0 識別碼移轉至 2017 年 1 月 1 日之前的新 Google OpenID 連線識別碼。 此步驟需要變更程式碼。 如需詳細資訊,請參閱如何:將使用者現有的 Open ID 2.0 識別碼移轉至新的 OpenID 連線使用者識別碼

如何:建立 Google+ 應用程式

您將需要 Google 帳戶才能執行下列步驟;如果您沒有的話,您可以在 取得一個 https://accounts.google.com/SignUp

  1. 在瀏覽器視窗中,流覽至 Google 開發人員主控台 ,並使用您的 Google 帳號憑證登入。

  2. 按一下建立專案,並輸入專案名稱專案識別碼。 檢查服務條款核取方塊。 接著按一下 [建立]。 這會向 Google 註冊應用程式。

    Google Developer Console New Project dialog

  3. 按一下左窗格中的 [API & 驗證 ]。 ",然後按 [下一步]。 在下OAuth,按一下建立新的用戶端識別碼。選取Web 應用程式按一下設定同意畫面。 提供產品名稱按一下儲存

    Google Developer Console Consent screen

  4. 按一下左窗格中的 [API & 驗證 ]。 ",然後按 [下一步]。 在下瀏覽 Api、 搜尋和尋找Google + API。 將 [狀態] 設定為 [開啟]

    Google Developer Console Browse APIs

  5. 建立用戶端識別碼對話方塊中,選取Web 應用程式應用程式類型

    在 [ 授權的 JAVAscript 原始來源] 欄位中,指定命名空間 (FQDN) URL 的完整功能變數名稱,包括前置 「HTTPS://」 和尾端埠號碼;例如, https://contoso.accesscontrol.windows.net:443

    在 [ 授權重新導向 URI ] 欄位中,指定 URI,其中包含命名空間的 FQDN (FQDN) URL 的完整功能變數名稱,包括前置 「HTTPS://」 和尾端埠號碼,後面接著 「/v2/openid」;例如, https://contoso.accesscontrol.windows.net:443/v2/openid

    按一下建立用戶端識別碼

    Google Developer Console Create Client ID screen

  6. 記下的值用戶端識別碼用戶端密碼web 應用程式的用戶端識別碼頁面。 您需要這些設定 Google OpenID Connect 實作上ACS 管理入口網站

    Google Developer Console Client ID for Web App

    重要

    用戶端密碼是重要的安全性認證。 保密。

如何:將使用者現有的 Open ID 2.0 識別碼移轉至新的 OpenID 連線使用者識別碼

成功移轉 ACS 命名空間以使用 Google 的 OpenID 連線實作之後,您必須先在 2017 年 1 月 1 日 (每個 Google的 OpenID 2.0 移轉指南) ,將後端系統中的使用者識別碼從目前的 OpenID 2.0 識別碼移轉至新的 OpenID 連線識別碼。

下表顯示可用至 ACS 向 Google 之後使用 Google OpenID Connect 實作已移轉的 ACS 命名空間的宣告類型:

宣告類型 URI 描述 通訊協定可用性

名稱識別碼

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

由 Google 提供的使用者帳戶唯一識別碼。 這是 (現有的) OpenID 2.0 識別碼。

OpenID 2.0、 OpenID Connect

主體

https://schemas.microsoft.com/identity/claims/subject

由 Google 提供的使用者帳戶唯一識別碼。 這是 (新增) 的 OpenID Connect 識別碼。

OpenID Connect

Name

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

由 Google 提供的使用者帳戶顯示名稱。

OpenID 2.0、 OpenID Connect

(請參閱下列注意事項)

電子郵件地址

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

由 Google 提供的使用者帳戶電子郵件地址。

OpenID 2.0、 OpenID Connect

身分識別提供者

https://schemas.microsoft.com/accesscontrolservice/2010/07/claims/IdentityProvider

提供的宣告,會告訴信賴憑證者應用程式使用者是使用預設 Google 身分識別提供者進行驗證。 在管理入口網站中,透過 [編輯身分識別提供者] 頁面的 [領域] 欄位可以看見此宣告的值。

OpenID 2.0、 OpenID Connect

注意

Google 使用者若沒有 (已註冊) Google+ 設定檔,其 [名稱] 宣告類型的值會與 OpenID Connect 中的 [電子郵件地址] 宣告類型的值相同。

名稱識別碼主旨宣告型別可用來追蹤和對應 (舊) OpenID 2.0 識別項 (新增) OpenID Connect 的識別項,藉以切換程式後端中的現有使用者的唯一識別碼。

如果您有"傳遞所有宣告"Google 作為身分識別提供者在規則群組中的規則相關聯的應用程式、 您的應用程式將會自動開始收到主旨宣告類型。

如果您先前產生的規則或加入規則手動 Google 作為身分識別提供者與您的應用程式相關聯的規則群組中,您必須加入主旨手動宣告類型。 如需如何執行這項操作的詳細資訊,請參閱 規則群組和規則

Input Claim Configuration

例如,如果您有先前產生的規則的 Google 做為規則群組中的身分識別提供者,然後再新增 [新主旨宣告類型 (如上所示),您會看到下列訊息。

Google passthrough claims

使用此規則群組的應用程式將會收到主旨宣告型別,以及其他宣告類型。

注意

之後 Jan 1,2017,當 Google 停止它對識別碼對應的支援,ACS 會同時填入NameIdentifier主旨宣告具有相同的 OpenID Connect 使用者識別碼的類型。

如何:確保 ACS 應用程式的移轉整備程度

有一個例外狀況,移轉您的 ACS 命名空間使用 Google OpenID Connect 實作可能會不變更應用程式程式碼。 例外狀況是如果您有"傳遞所有宣告"Google 作為身分識別提供者在規則群組中的規則與您的應用程式相關聯。 這是因為在此情況下,在移轉時將新的宣告類型 (主旨) 會自動傳送給應用程式。

本節將概述建議的變更,您可以遵循以確保將會受到移轉每個應用程式已準備好處理新的宣告類型的測試程序。

這篇 How To 的目的,假設您是擁有者的 ACS 命名空間稱為ns contoso和您在生產環境中的應用程式呼叫ProdContosoApp。 也假設此應用程式使用 Google 做為身分識別提供者,並具有"傳遞所有宣告"啟用 Google 的規則。

安裝程式

  1. 移至 Microsoft Azure 管理入口網站、登入,然後按一下 [Active Directory]。 選取的 ACS 命名空間 (ns contoso),然後按一下管理啟動ACS 管理入口網站

  2. ACS 管理入口網站,按一下身分識別提供者在左手邊或按一下樹狀目錄中身分識別提供者連結底下開始> 一節。 然後按一下 [實際執行應用程式 (ProdContosoApp)。

  3. 記下的屬性ProdContosoApp,您將需要這些更新。

    Edit Relying Party Application dialog

  4. 按一下ProdContosoApp 預設規則群組規則群組以確認它有"傳遞所有宣告"啟用 Google 的規則。

    Google passthrough claim

步驟 1:在生產 ACS 命名空間中設定應用程式的測試實例

在不同的根 URI 上設定應用程式 TestContosoApp 的測試實例;例如, https://contoso-test.com:7777/ 。 您必須在 ns-contoso 命名空間中將其註冊為信賴 憑證者應用程式 (信賴憑證者應用程式) 。

  1. ACS 管理入口網站,按一下身分識別提供者在左手邊或按一下樹狀目錄中身分識別提供者連結底下開始> 一節。 然後按一下 [新增信賴憑證者的合作對象應用程式頁面。

  2. 在 [新增信賴憑證者應用程式] 頁面上,執行下列動作:

    • 在 [名稱]中,輸入信賴憑證者應用程式的名稱。 以下是TestContosoApp

    • 在 [模式] 中,選取 [手動輸入設定]

    • 領域,測試應用程式的 URI 中的型別。 https://contoso-test.com:7777/以下是 。

    • 基於此目的方式,您可以保留錯誤 URL (選擇性)空白。

    • 針對語彙基元格式t 加密原則,和權杖存留期 (秒)屬性和權杖簽署設定區段中,使用相同的值,您用於ProdContosoApp

    • 請確定您已選取Google身分識別提供者

    • 在下規則群組,請選取建立新規則群組

    Add Relying Party Application dialog

  3. 按一下頁面底部的 [儲存] 。

步驟 2:建立規則群組,以模擬應用程式在命名空間移轉為使用 Google 的 OpenID 連線實作之後,應用程式將會收到的 ACS 權杖格式

  1. ACS 管理入口網站,按一下身分識別提供者在左手邊或按一下樹狀目錄中身分識別提供者連結底下開始> 一節。 然後按一下 [新增規則群組頁面。

  2. 新增規則群組頁面上,提供的名稱,新的規則群組,請說出ManualGoogleRuleGroup。 按一下 [儲存]。

    Add Rule Group dialog

  3. 在 [編輯規則群組] 頁面上,按一下 [新增規則] 連結。

    Edit Rule Group dialog

  4. 新增宣告規則頁面上,請確定您有下列值中的地方按一下儲存。 這會產生"傳遞所有宣告"Google 的規則。

    • 如果> 一節:

      • 身分識別提供者Google

      • 輸入宣告類型選取項目是任何

      • 輸入宣告值任何

    • 然後> 一節:

      • 輸出宣告類型傳遞第一個宣告型別

      • 輸出宣告值傳遞第一個輸入宣告值

    • 規則資訊> 一節:

      • 保留描述 (選擇性)欄位保留空白。

    Add Claim Rule dialog

  5. 在 [編輯規則群組] 頁面上,按一下 [新增規則] 連結。

  6. 新增宣告規則頁面上,請確定您有下列值中的地方按一下 [儲存]。 這會產生模擬新的宣告型別,加法的 Google 「 靜態 」 的宣告規則主旨,這是新使用者 OpenID Connect 識別碼 Google 傳送時移轉應用程式。

    • 如果> 一節:

      • 身分識別提供者Google

      • 輸入宣告類型選取項目是任何

      • 輸入宣告值任何

    • 然後> 一節:

    • 規則資訊> 一節:

      • 保留描述 (選擇性)欄位保留空白。

    Add Claim Rull dialog

  7. 按一下儲存Edit Rule Group頁面。

步驟 3:建立新的規則群組與應用程式測試實例的關聯

  1. ACS 管理入口網站,按一下身分識別提供者在左手邊或按一下樹狀目錄中身分識別提供者連結底下開始> 一節。 然後按一下信賴憑證者的合作對象應用程式頁面上的 TestContosoApp

  2. 編輯信賴憑證者合作對象頁面上,選取ManualGoogleRuleGroup驗證設定區段,然後按一下儲存

    Authentication Settings

此時,所有 Google 登入要求測試應用程式將都包含新的宣告類型。

步驟 4:測試以確保您的應用程式可以處理主旨宣告類型的新增

測試您的應用程式,以確保它可以處理的新宣告型別是否存在 (主旨) 依正常程序。 一般來說,也撰寫的應用程式應該要很穩固語彙基元會加入新的宣告類型。 找到並修正任何問題。 您也可以遵循如何:將使用者現有的 Open ID 2.0 識別碼移轉至新的 OpenID 連線使用者識別碼區段,以執行使用者識別碼對應。

步驟 5:移轉生產環境

重新建置和部署您的實際執行應用程式 (ProdContosoApp)。 依照移轉逐步解說中的步驟,移轉命名空間 (ns-contoso) ,以使用 Google 的 OpenID 連線實作。 確認ProdContosoApp如預期般運作。