<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # BYOD 挑戰:將移動設備連接到企業 **[Greg Oliver](https://msdn.microsoft.com/zh-cn/magazine/ee532098.aspx?sdmr=GregOliver&sdmi=authors)? [Bruno Terkaly](https://msdn.microsoft.com/zh-cn/magazine/ee532098.aspx?sdmr=BrunoTerkaly&sdmi=authors)** ![](https://box.kancloud.cn/2016-01-07_568e4d66bbccc.jpg)企業環境中的自帶設備辦公 (BYOD) 運動以及 Azure 移動服務如何幫助開發人員依然存在很多問題。移動服務的核心價值在于,移動服務可分攤標識,降低成本和精力,以提供對受保護企業資源的安全訪問。在本文中,我們將進一步了解在將移動應用程序連接到企業資源時,將采用什么措施來支持更加復雜的方案。 我們首先定義標識利益干系人,并了解員工、貿易合作伙伴和客戶的異同點。我們還會介紹軟件體系結構,用來為訪問本地服務和站點的瀏覽器和移動設備用戶提供安全連接。本文稍后將演示一些使用連接到移動服務后端以及本地服務終結點的 iOS 應用的技術。 ## 并不是所有的訪問都是平等的 這一工作有幾個重要的目標。第一個目標是通過最少的自定義代碼或基礎設施更改(包括現有網絡配置)提供對本地資源的訪問。另一個目標是管理這些使用情境,以在其變得敏捷和靈活時,確保其可控性和可見性。 并不是創建的所有需要在企業防火墻后訪問的用戶都是平等的。同樣,并不是企業防火墻后的所有數據都需要相同級別的保護。一些員工需要有更多權限訪問受保護信息。諸如現場銷售人員的員工需要訪問有關產品價格和庫存級別的最新信息的權限。他們甚至還需要訪問有關其客戶的會計系統數據(如帳戶最近付款)的權限。但他們可能并不需要訪問人力資源應用程序的權限。 貿易合作伙伴有自己的專門需求。受信任的業務合作伙伴會經常通過外部網來聯合標識。貿易合作伙伴通常會管理他們自己的標識基礎結構來對用戶進行身份驗證,并使用“聲明”來控制對公司受保護資源的訪問。因此,合作伙伴或公司都使用信任策略來將傳入聲明映射到受保護的資源(如內部 Web 應用程序)所理解的聲明。 還有兩個不太常見的標識利益干系人。客戶通常需要訪問其帳戶信息(類似于 PayPal 或 Netflix)的權限。目標客戶實際上就是潛在客戶。他可能已經提供了信用卡信息,但還沒有真正購買任何東西。所有這類用戶都有一個共同的特點:他們都想自帶并使用自己的 iOS、Android 和 Windows Phone 設備在企業工作。 ## 企業安全管理 在企業中,至少五個軟件堆棧在保護移動設備安全方面起著重要作用。在本文中,我們將進一步了解混合連接、Azure 服務總線、Azure Active Directory 應用程序代理和 Microsoft Azure API 管理。 要讓員工通過 Web UI 向 Active Directory 出示其憑據,獲取訪問令牌并開始工作比較簡單,但標識世界卻比較微妙和復雜。“一刀切”的概念簡單,但不正確。員工通常被迫使用企業標識提供程序。 大多數企業通常利用主要提供基于 LDAP 的協議的 Active Directory 引入內部標識。在這個移動的、啟用了云的新世界中,企業需要適用于移動設備的基于 HTTP 的通信協議。Microsoft 在 Azure 中創建了名為 Azure Active Directory (Azure AD) 的標識系統。Azure AD 的一個主要功能是,企業可以使用目錄同步將標識同步到云。請訪問?[bit.ly/1ztaB9Z](http://bit.ly/1ztaB9Z),了解這一過程的詳細信息。 Azure AD 中還有許多其他不錯的功能。Azure AD 提供方便的單一登錄 (SSO)。這樣,員工可以在一段時間內訪問受保護的資源,而無需多次被迫登錄并提供憑據。訪問令牌以 cookie 方式本地存儲在員工設備上。您可以通過使用令牌過期技術來限制訪問。 Azure AD 還支持 OAuth 2.0,這可能是最常用的身份驗證開放標準。OAuth 2.0 代表資源所有者,為客戶端應用程序提供對服務器資源的安全委托訪問。使用 OAuth 2.0,Azure AD 可以對用戶進行身份驗證,并發布 SAML 2.0 或 JWT 令牌。請訪問?[bit.ly/1pDc0rg](http://bit.ly/1pDc0rg),了解令牌工作原理的詳細信息。 ## 貿易合作伙伴 公司跨雙方 IT 基礎結構來管理身份驗證的傳統方式是通過聯合身份驗證信任。這包括在兩家公司的聯合身份驗證服務之間建立信任(見**圖 1**)。這支持業務合作伙伴之間的基于 Web 的安全事務。但是,事情并不像聽上去那么簡單,并且確實是個挑戰。 ![](https://box.kancloud.cn/2016-01-07_568e4d66cc092.png)? **圖 1 Active Directory 聯合身份驗證的傳統標識模型** 合作伙伴需要在其 Active Directory 和另一家企業的 Active Directory 之間設置信任關系。即讓一家公司的員工通過他們自己的 Active Directory 進行身份驗證,然后與另一家公司的 Active Directory 交換身份驗證令牌,以獲取訪問另一個網絡中的應用的權限。這一方法需要 IT 管理員進行大量的協調和手動工作流。 **圖 2**?描述了一種更現代的標識管理方法。雖然一些標識可能單獨位于 Azure 中,但通常情況下,員工標識的副本都托管在 Azure 中。將對這些副本做最少的維護,因為大多數標識的原始副本托管在本地。后臺同步進程使標識的云副本完全同步。用戶可以直接連接到位于云中的數據中心的 Azure AD,然后重定向到適當的應用程序。 ![](https://box.kancloud.cn/2016-01-07_568e4d66ddd0f.png)? **圖 2 一種標識管理的現代方法** 對于移動應用開發人員,GitHub 上提供了很多庫,可以用來利用 Azure AD ([bit.ly/1qmeipz](http://bit.ly/1qmeipz))。 Android、iOS、Microsoft .NET Framework、JavaScript、Node.js 等全都受支持。例如,iOS 示例向您展示如何獲取交互授權代碼來使用工作帳戶。您可以將此工作帳戶關聯到在您的數據中心運行的 Active Directory 服務器或完全在帶有 Azure AD 的云中運行的 Active Directory 服務器。在后端,您可以使用基于 REST 的 Node.js API 或 .NET Web API。 ## 客戶訪問權限 您通常不會想到面向客戶的站點和服務擁有訪問受保護的公司資源的權限。不過,這比您想象的更常見。例如,Wells Fargo 可能想要通過一個安全的網站或移動應用在 Web 上提供客戶財務數據,而 Netflix 可能想要提供對受保護資源(如當前帳戶余額或付款歷史)的安全訪問。這對于使用移動設備的客戶而言,變得尤為重要。 在某些情況下,這甚至對利用社交標識提供程序(如 Microsoft 帳戶、Facebook、Google 或 Twitter 等)都非常有意義。在 Azure Insider 11 月文章 ([msdn.microsoft.com/magazine/dn818496](https://msdn.microsoft.com/magazine/dn818496)) 中,我們對此方法進行了詳細說明,并編寫了使用 Twitter 作為標識提供程序的本地 iOS 應用程序。 這里的前提是任何人都可以下載您的應用或訪問此網站。有一個公開可用的服務層。目標客戶通常未經身份驗證,只能看到公開信息。但即使在這種情況下,也可能會有訪問本地資源的需求。您的服務可以提供一個未經身份驗證的服務層或響應一組默認憑據。 ## 安全連接工具 除標識之外,還有幾個工具可以有助于將用戶安全地連接到企業網絡中的資源。其中一個示例是 Azure 服務總線中繼(見**圖 3**),它提供了巧妙的方法以方便地訪問受保護的資源。您可以將 Azure 服務總線中繼認為是一種云托管服務,充當守衛來代理客戶端和企業資源之間的連接。服務總線中繼經過身份驗證,并只打開出站端口。它還支持主題和隊列,因此,您可以實現一種分布式消息。如果需要插入大量事件,您甚至可以合并事件中心。 ![](https://box.kancloud.cn/2016-01-07_568e4d66ece76.png)? **圖 3 Azure 服務總線中繼** 這種方法的優點在于,不需要對本地網絡進行配置更改。這包括配置用戶或更改防火墻設置,因為客戶端和后端服務都使用出站連接來連接到端口 80 或 443。換言之,無需針對傳入通信打開其他端口,也不需要代理。 ## 應用程序代理方法 使受保護的資源在防火墻外可用的第二個方法是使用目前為預覽版的 Azure AD 應用程序代理服務。該服務通過 HTTP 和 HTTPS Web 協議,提供對組織內部 Web 應用和服務的安全訪問。 此方法的最大優點在于,用戶可以享受 SSO 和本機應用程序體驗,同時仍使用非托管、未加入域的設備。在之前的文章中,我們討論了“工作空間加入”的概念,即完全加入域的設備的輕量版本 ([bit.ly/1tE7dRR](http://bit.ly/1tE7dRR))。它支持用戶希望保留對他們個人設備控制的那些 BYOD 的情況。 Azure AD 應用程序代理提供與 Azure AD、支持 SSO、軟件即服務、本地應用程序、多重身份驗證和設備注冊的緊密集成。此連接器將資源橋接到應用程序代理以及移動應用程序。這些連接器主要路由通信并支持冗余、擴展和多個站點。 應用程序代理有幾個優勢。首先,您可以實現對應用程序、設備、用戶和位置級別的精細控制。現有客戶端應用不需要修改,設備本身也不需要修改。它還支持多重身份驗證 (MFA),這一驗證可以對高度機密資源提供額外級別的保護。MFA 提供多個支持服務,如詐騙警告、IP 白名單以及移動電話或 SMS 作為第二個身份驗證因素。 應用程序代理的第三個優點在于,它提供蜂窩網絡和本地網絡之間的隔離功能。從不直接公開后端服務,因為應用程序代理本身包含在 Azure AD 中,而連接器直接從受保護的資源進行訪問。最后,應用程序代理可防止拒絕服務攻擊,以讓您對限制、隊列和會話管理進行控制。 ## API 管理 提供對受保護資源的訪問的第三種方法是 Azure API 管理,它也充當本地資源的代理。通過該方法,可將在您的防火墻內實現的 Web 服務向外界公開。要使這一選擇生效,您需要對本地 Web 服務器進行一些修改,同時在 Azure 門戶中創建并配置一個 API。您可以使用 .NET Web API 或 Node.js 來編寫 API。 首先,我們考慮使用 Azure API 管理進行身份驗證,這一基本身份驗證用來提供對本地 IIS Web 服務器的外部訪問。實現這一情境的第一步是,對您的本地 IIS Web 服務器進行一些更改,并啟用基本身份驗證。在 IIS 中,您可以選擇身份驗證圖標,深入了解基本身份驗證以添加用戶。Azure API 管理將使用此用戶配置文件訪問本地 IIS。 您可以使用 Azure API 管理的下一個方法是共享密鑰身份驗證。這意味著 API 管理代理需要存儲密鑰。在嘗試連接到本地后端 Web 服務之前,它會將該密鑰放置在 HTTP 標頭中。因此,后端 Web 服務需要從 HTTP 標頭提取密鑰并處理身份驗證請求,這其實不足為奇。 您可以通過訪問 Azure 管理門戶,導航到“API 管理”部分,然后從菜單中選擇“策略”來實現共享密鑰身份驗證。在這里,您將添加一個策略,這只是發送到您本地 Web 服務器的一個密鑰。您將要添加的策略定義文件是一個 XML 文檔。 ## 混合連接 授予訪問受保護資源的權限的第四種方法,也可以說是最簡單的方式是使用混合連接(見**圖 4**),這是目前為預覽版的 Azure BizTalk 服務的一個功能。混合連接將利用服務總線中繼技術在本地進程與 Azure Mobile Services 服務或與 Azure Web Sites 站點之間創建簡單、安全、高效的連接。您可以使用混合連接來連接任何使用 TCP 或 HTTP 進行連接的本地資源,包括數據庫和 ERP 解決方案(例如 SQL、Oracle 和 SAP)。 ![](https://box.kancloud.cn/2016-01-07_568e4d670e261.png)? **圖 4 Microsoft Azure BizTalk 服務 - 混合連接** 對混合連接的要求是,本地進程必須可以通過靜態 TCP 端口(如端口 1433 上的 SQL Server)進行訪問。您可以使用任何框架(包括 Node.js、Java 或 .NET Framework)來連接到資源。服務總線中繼的大多數配置要求是由混合連接提取出來的。不要求更改本地進程的源代碼。 要使用混合連接,請在 Azure 管理門戶中配置少量元數據。在承載進程的服務器(SQL Server、MySQL、您的 Web 服務等)上安裝一個代理。實際上有一個服務總線中繼連接使用 SAS 密鑰進行身份驗證。您可以從門戶中分別旋轉服務端和客戶端密鑰。由于它使用服務總線中繼,因此不需要傳入終結點或代理。 如果您更喜歡簡化設置和開發人員工作,混合連接可能就是您的解決方案。更妙的是,因為它可用于 Azure BizTalk 服務的自由層,您可以經濟有效地使用它,且只需支付傳出帶寬的費用。 ## 現在進行演示 正如我們承諾過的,我們將使用本機 iOS 應用加上其 AMS 后端作為平臺,來演示本文所述的一些技術。我們將使用混合連接來添加本地 Web 服務和本地 SQL Server。如果對節省空間和利用已有資源感興趣,請參閱 AMS 團隊教程 ([bit.ly/1mK1LQF](http://bit.ly/1mK1LQF))。在該指南上,您將找到其他教程資源([bit.ly/1vFiPuv](http://bit.ly/1vFiPuv)?和[bit.ly/1xLWuuF](http://bit.ly/1xLWuuF))的分支,用來構建完整的解決方案,這一解決方案包括以下內容: * 作為 AMS 服務安裝、并使用 Azure AD 租戶注冊的 Web API 后端 * 使用相同 Azure AD 租戶注冊的本機 iOS 應用 * Web API 和 AMS 服務之間在租戶中的雙向鏈接 有幾個步驟涉及在 Azure 管理門戶中創建元數據,而其他步驟則涉及使用本機開發工具(Visual Studio、Xcode、Android 等)來創建實際應用。完成后,您應該有一個正常運行的系統,需要您通過輸入 Azure AD 憑據進行身份驗證進入您的 iOS 應用。然后,系統會讓您在待處理數據上執行 CRUD 操作。將**圖 5**?中的代碼添加到移動服務代碼。 **圖 5 客戶端代碼通過混合連接利用受保護的資源** ~~~ // Use the SQL Server connection try { ? SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); ? builder["Data Source"] = "myserver"; ? builder["Integrated Security"] = false; ? builder["Initial Catalog"] = "mydb"; ? builder["User ID"] = "greg"; ? builder["Password"] = "S3cr3t"; ? int count = 0; ? string query = "SELECT COUNT(*) FROM mytable"; ? using (SqlConnection conn = new SqlConnection(builder.ConnectionString)) ? using (SqlCommand cmd = new SqlCommand(query, conn)) ? { ? ??conn.Open(); ??? cmd.CommandType = System.Data.CommandType.Text; ??? count = Convert.ToInt32(cmd.ExecuteScalar()); ? } ? string results = string.Format("Count of records in mytable is {0}", count); ? Services.Log.Info(results); } catch (Exception ex) { ??Services.Log.Error(ex.Message); } // Use the Web service connection try { ? const string URL = "http://mydevbox:31106/"; ? HttpClient client = new HttpClient(); ? client.BaseAddress = new Uri(URL); ? client.DefaultRequestHeaders.Accept.Clear(); ? client.DefaultRequestHeaders.Accept.Add( ? new MediaTypeWithQualityHeaderValue("application/json")); ? string response = await client.GetStringAsync("api/values/5"); ? Services.Log.Info("Accessing the web service succeeded."); } catch (Exception ex) { ??Services.Log.Error(ex.InnerException.Message); } ~~~ 在 SQL Server 和 Web 服務(一種簡單的模板 Web 服務)尋址的連接信息中,只涉及混合連接的名稱。 ## 總結 在 BYOD 的世界中,標識變得越來越重要。為了在工作場所支持移動設備,企業承受著越來越大的壓力。我們生活在混合世界的這一事實使情況變得更加復雜。關鍵資源都位于云和本地。身份驗證可能發生在云中或本地,或者同時發生在兩者之中。受保護的資源可能包括業務應用、在本地運行的服務或云托管的 Web 服務。既然有這么多變數,您就需要使用多種靈活的方法。 有關這一實現的完整詳細信息,請查看?[bit.ly/1rVbtCp](http://bit.ly/1rVbtCp)?上的博客文章《Go Live on Azure》;有關基于 Java 的處理的主題,請參閱?[bit.ly/1zW7XpZ](http://bit.ly/1zW7XpZ)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看