

# Microsoft
<a name="identity-idp-microsoft"></a>

Microsoft Entra ID 可以設定為用於存取 AgentCore Gateway 和執行期的身分提供者，或用於傳出資源存取的 AgentCore Identity 憑證提供者。這可讓您的代理程式以 Microsoft Entra ID 做為身分提供者和授權伺服器來驗證和授權代理程式使用者，或您的代理程式取得憑證以存取 Microsoft Entra ID 授權的資源。

## 傳入
<a name="identity-idp-microsoft-inbound"></a>

若要新增 Microsoft Entra ID 做為存取 AgentCore Gateway 和 Runtime 的身分提供者和授權伺服器，您必須：
+ 為您的 Microsoft Entra ID 租用戶設定探索 URL。這有助於 AgentCore Identity 取得與您的 OAuth 授權伺服器和權杖驗證金鑰相關的中繼資料。
+ 輸入字符的有效`aud`宣告。這有助於驗證來自您 IDP 的字符，並允許存取包含預期宣告的字符。

您可以在 Gateway 和 Runtime 傳入組態中設定這些組態。

將 Microsoft Entra ID 設定為您的身分提供者之前，建議您先完成[使用 OAuth2 與 Google Drive 整合](identity-getting-started-google.md)中概述的基本設定步驟。這可確保您的開發環境和 SDK 在新增身分提供者整合之前已正確設定。

對於沒有任何自訂宣告的 v1.0 和 v2.0 Access 和 ID 字符，我們支援 Microsoft Entra ID。您可以剖析 JWT 並查看`ver`宣告，以判斷您的 entra 應用程式發行的字符版本。

對於所有字符類型，在您的自訂授權方中：
+  **探索 URL** ：探索 URL 應為下列其中一項：
  + 對於 v1.0 字符，請使用： `https://login.microsoftonline.com/tenantId/.well-known/openid-configuration`
  + 對於 v2.0 字符，請使用： `https://login.microsoftonline.com/tenantId/v2.0/.well-known/openid-configuration`
+  **允許對象** ： `aud` 應為應用程式 ID。

### v1.0 存取字符的特定組態
<a name="identity-idp-microsoft-inbound-v1-access"></a>

從 Microsoft Entra 擷取字符時：
+ 在授權 URL 中包含範圍，就像您的應用程式可能需要的任何其他範圍`entra-application-id/.default`一樣。這可讓 Microsoft 知道您打算針對 Microsoft 圖形 API 以外的資源使用存取權杖，並產生可由 AgentCore Identity 驗證的權杖。

### v2.0 AccessTokens 特有的組態
<a name="identity-idp-microsoft-inbound-v2-access"></a>

在 Microsoft Entra 上：
+ 設定應用程式時，請前往應用程式資訊清單並新增 `accessTokenAcceptedVersion=2`。
+ 在應用程式上公開 API。應用程式 ID URI 和範圍可以是應用程式所需的任何項目；但是，擷取存取權杖時，範圍必須包含在授權 URL 中。

### 適用於 v1.0 和 v2.0 Id 權杖的組態
<a name="identity-idp-microsoft-inbound-id"></a>

在 Microsoft Entra 上：
+ 設定應用程式時，請在應用程式註冊中啟用 ID Token 發行。
+ 在傳入流程期間呼叫 Microsoft Entra Id 的授權和權杖端點時包含強制性`openid`範圍。

## 傳出
<a name="identity-idp-microsoft-outbound"></a>

**注意**  
AgentCore Identity 會為您建立的每個登入資料提供者發出唯一的 OAuth2 回呼 URL。唯一的回呼 URL 可啟用工作階段繫結，透過確保授權回應只能針對啟動它的特定憑證提供者進行兌換，以保護 OAuth2 授權碼交換免受跨供應商重播和 CSRF 型攻擊。由於每個提供者的 URL 都是唯一的，因此在呼叫 **之前**，您都不會知道它`CreateOauth2CredentialProvider`。請先建立您的 Microsoft Entra ID 應用程式註冊，然後在 AgentCore Identity 發出後返回 Microsoft Entra 管理中心註冊回呼 URL。

 **步驟 1：建立 Microsoft Entra ID 應用程式註冊** 

使用下列程序來設定 Microsoft Entra ID 應用程式註冊，並取得 AgentCore Identity 的必要用戶端憑證。在 AgentCore Identity 發出唯一的回呼 URL 之後，您將在步驟 3 中註冊重新導向 URI。

 **設定 Microsoft Entra ID 應用程式註冊** 

1. 登入 Microsoft Entra 管理中心。

1. 開啟**應用程式註冊**，然後選擇**新註冊**。

1. 輸入應用程式的名稱。

1. 在**支援的 帳戶類型** 下，選取適合您應用程式的 選項。

1. 暫時將**重新導向 URI** 欄位保留空白 — 您將在步驟 3 中新增唯一的回呼 URL。

1. 選擇**註冊**。

1. 在應用程式的概觀頁面上，記錄**應用程式 （用戶端） ID** 和**目錄 （租戶） ID** 。您需要這些值才能在 AgentCore Identity 中設定 Microsoft 供應商。

1. 開啟**憑證和秘密**，並建立新的用戶端秘密。記錄秘密值，因為 AgentCore Identity 需要它。Microsoft 只會顯示秘密值一次。

1. 開啟 **API 許可**，並新增應用程式所需的 Microsoft Graph 或其他許可。

如需詳細資訊，請參閱 Microsoft Entra 文件中的 [Quickstart：註冊應用程式](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app)。

 **步驟 2：建立 AgentCore Identity 登入資料提供者** 

若要設定傳出 Microsoft 資源提供者，請使用下列項目：

```
{
        "name": "NAME",
        "credentialProviderVendor": "MicrosoftOAuth2",
        "oauth2ProviderConfigInput": {
            "microsoftOauth2ProviderConfig": {
                "clientId": "your-client-id",
                "clientSecret": "your-client-secret",
                "tenantId": "your-microsoft-entra-tenant"
            }
        }
    }
```

[CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html) 回應包含 `callbackUrl` 欄位。此 URL 對此登入資料提供者是唯一的，如下所示：`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`。儲存此值以供下一個步驟使用。

 **步驟 3：向 Microsoft Entra 註冊唯一的回呼 URL** 

返回 Microsoft Entra 管理中心，並將唯一的回呼 URL 新增至應用程式的重新導向 URIs。

1. 登入 Microsoft Entra 管理中心，並開啟您在步驟 1 中建立的應用程式註冊。

1. 開啟**身分驗證**，然後選擇**新增平台** > **Web**。

1. 將 傳回`callbackUrl`的值貼上`CreateOauth2CredentialProvider`為**重新導向 URI**。

1. 選擇**設定** （或**儲存**)。