乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Azure上的Java:云原生身份驗證

       碼農(nóng)9527 2021-05-07

      API通常需要識別其調(diào)用方。它可以是調(diào)用API的Web應用程序,也可以是調(diào)用API的另一個API。識別API的調(diào)用者也稱為身份驗證。建立自己的身份驗證框架可能很棘手。值得慶幸的是,不必建立自己的身份驗證框架。已經(jīng)有可用的解決方案。AzureActiveDirectory(AzureAD),Microsoft身份驗證庫(MSAL),可在各種平臺上工作以處理令牌和身份驗證。

      Java

          AzureAD為用戶提供了一種使用組織提供的預先存在的憑據(jù)登錄應用程序的方法,而不是為每個應用程序進行新的登錄。使用AzureAD使您的應用程序擺脫了與用戶維護相關(guān)的許多任務(wù),例如登錄和密碼重置。OAuth流對用戶進行身份驗證,然后將用戶暫時轉(zhuǎn)到另一個頁面進行登錄。登錄后,該頁面將訪問令牌回傳給應用程序。應用程序可以使用訪問令牌來檢索有關(guān)當前用戶的更多信息。

          創(chuàng)建一個租戶

          若要開始使用AzureAD,您需要有權(quán)訪問AzureAD租戶。租戶代表一個組織。您可能已經(jīng)為您的帳戶設(shè)置了一個租戶。要進行檢查,請登錄到Azure門戶并在右上角查找。如果您的帳戶是為租戶設(shè)置的,它將顯示在您的用戶名下方。

          Java

          如果您還沒有AzureAD租戶,則可以創(chuàng)建一個。在Azure門戶中,選擇“AzureActiveDirectory”。從頂部的菜單中,選擇“創(chuàng)建租戶”。

      Java

          選擇“AzureActiveDirectory”作為租戶類型,然后單擊“下一步”。填寫貴組織的信息,然后繼續(xù)創(chuàng)建承租人。Java

          一旦有了租戶,就必須將應用程序注冊為AzureAD的客戶端。在門戶中,選擇“AzureActiveDirectory”。在“管理”菜單下,選擇“應用程序注冊”,然后單擊+新注冊。

      Java

          為用戶可以識別的應用程序提供一個名稱,并確保您已從“支持的帳戶類型”選項中選擇了租戶。單擊注冊以創(chuàng)建您的租戶。

      Java

          將其添加到應用程序

          現(xiàn)在,您已經(jīng)設(shè)置了一個租戶,MicrosoftJava身份驗證庫(MSAL4J)將管理身份驗證。通過將依賴項聲明添加到項目的Maven存儲庫中,可以將MSAL4J添加到項目中。添加后,可通過com.microsoft.azure.msal4j名稱空間使用庫的類。

      <dependency>
       <groupId>com.microsoft.azure</groupId>
       <artifactId>msal4j</artifactId>
       <version>1.9.1</version>
      </dependency>12345復制代碼類型:[java]

          MSAL4J支持不同的身份驗證方案。兩種常見方案是:

          用戶必須通過應用程序進行身份驗證。

          服務(wù)必須通過應用程序進行身份驗證。

          當用戶必須進行身份驗證時,可以將OAuth用于方案。OAuth是一種開放標準,使一個網(wǎng)站或服務(wù)可以在不共享用戶憑據(jù)的情況下對另一個網(wǎng)站或服務(wù)執(zhí)行身份驗證。該應用程序?qū)⒂脩艮D(zhuǎn)發(fā)到登錄頁面,然后用戶使用其帳戶憑據(jù)登錄。身份驗證完成后,頁面會將用戶發(fā)送回應用程序,并為應用程序提供用戶的身份驗證令牌。該應用程序使用身份驗證令牌來檢索訪問令牌。MSAL4J簡化了令牌的檢索。在我們的應用程序中,添加以下代碼以檢索訪問令牌。

      //ConfidentialClientApplication app;String authCode = authorizationCode.getValue();
      AuthorizationCodeParameters parameters = AuthorizationCodeParameters.builder(
        authCode,  new URI(currentUri)).
        build();
      IAuthenticationResult result  = app.acquireToken(parameters).get();
      SessionManagementHelper.storeTokenCacheInSession(httpServletRequest,
      app.tokenCache().serialize());123456789復制代碼類型:[java]

          對于需要身份驗證的Web呼叫,將訪問令牌添加到該呼叫的標題中。AzureAD還提供了一個終結(jié)點,當使用訪問令牌調(diào)用該終結(jié)點時,該終結(jié)點可在JSON對象中提供有關(guān)用戶的信息。

      HttpURLConnection connection = (HttpURLConnection) MSGraphEndpoint;
       connection.setRequestProperty("Authorization", "Bearer " + accessToken);
       connection.setRequestProperty("Accept", "application/json");
       String response = HttpClientHelper.getResponseStringFromConn(connection); int responseCode = conn.getResponseCode(); if(responseCode != HttpURLConnection.HTTP_OK) {   throw new IOException(response);
       }
       JSONObject userInformation  = HttpClientHelper.processResponse(responseCode,
       response);1234567891011復制代碼類型:[java]

          嘗試自己運行該應用程序。現(xiàn)在,當您運行該應用程序時,它將檢查用戶是否登錄。如果用戶未登錄,則用戶會看到指向登錄頁面的鏈接。用戶登錄后,頁面將顯示一條消息,表明用戶已成功登錄并顯示基本信息。

          結(jié)論

          Azure提供了其他功能,可用于豐富應用程序的功能。在本系列的下一部分中,我們將介紹Azure認知服務(wù)以及如何使用現(xiàn)有的云原生服務(wù)

        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多