

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# IdP SAML 聲明端點
<a name="saml2-idpresponse-endpoint"></a>

`/saml2/idpresponse` 接收 SAML 聲明。在service-provider-initiated(SP 啟動） 登入中，您的應用程式不會直接與此端點互動，您的 SAML 2.0 身分提供者 (IdP) 會使用其 SAML 回應重新導向您的使用者。對於 SP 起始的登入，請使用 的路徑將 IdP 設定為`saml2/idpresponse`聲明消費者服務 (ACS) URL。如需工作階段啟動的詳細資訊，請參閱 [Amazon Cognito 使用者集區中的 SAML 工作階段啟動](cognito-user-pools-SAML-session-initiation.md)。

在 IdP 起始的登入中，在您使用 SAML 2.0 供應商登入使用者後， 會在應用程式中叫用對此端點的請求。您的使用者在其瀏覽器中使用 IdP 登入，然後您的應用程式會收集 SAML 聲明並將其提交至此端點。您必須透過 HTTPS 在`HTTP POST`請求內文中提交 SAML 聲明。`POST` 請求的內文必須是 `SAMLResponse` 參數和 `Relaystate` 參數。如需詳細資訊，請參閱[實作 IdP 起始的 SAML 登入](cognito-user-pools-SAML-session-initiation.md#cognito-user-pools-SAML-session-initiation-idp-initiation)。

`saml2/idpresponse` 端點最多可接受 100，000 個字元的 SAML 聲明。

## 文章 `/saml2/idpresponse`
<a name="saml2-idpresponse-endpoint-post"></a>

若要在 IdP 起始的登入中使用`/saml2/idpresponse`端點，請產生 POST 請求，其中包含為您的使用者集區提供使用者工作階段相關資訊的參數。
+ 他們想要登入的應用程式用戶端。
+ 他們想要結束的回呼 URL。
+ 他們想要在使用者存取權杖中請求的 OAuth 2.0 範圍。
+ 起始登入請求的 IdP。

### IdP 起始的請求內文參數
<a name="saml2-idpresponse-endpoint-post-request"></a>

*SAMLResponse*  
來自與使用者集區中的有效應用程式用戶端和 IdP 組態相關聯之 IdP 的 Base64-encoded SAML 聲明。

*RelayState*  
`RelayState` 參數包含您要傳遞至`oauth2/authorize`端點的請求參數。如需這些參數的詳細資訊，請參閱 [授權端點](authorization-endpoint.md)。    
*response\_type*  
OAuth 2.0 授予類型。  
*client\_id*  
應用程式用戶端 ID。  
*redirect\_uri*  
Amazon Cognito 授權使用者之後，身分驗證伺服器會將瀏覽器重新引導至此 URL。  
*identity\_provider*  
您要重新導向使用者之身分提供者的名稱。  
*idp\_identifier*  
您要重新導向使用者之身分提供者的識別符。  
*scope*  
您希望使用者從授權伺服器請求的 OAuth 2.0 範圍。

### 具有正面回應的範例請求
<a name="saml2-idpresponse-endpoint-post-example"></a>

**範例 – POST 請求**  
下列請求適用於應用程式用戶端 `MySAMLIdP`中來自 IdP 之使用者的授權碼授予`1example23456789`。使用者`https://www.example.com`會使用其授權碼重新導向至 ，該授權碼可以交換為包含具有 OAuth 2.0 範圍 `openid`、 `email`和 之存取權杖`phone`的權杖。

```
POST /saml2/idpresponse HTTP/1.1
User-Agent: {{USER_AGENT}}
Accept: */*
Host: {{example.auth.us-east-1.amazoncognito.com}}
Content-Type: application/x-www-form-urlencoded

SAMLResponse={{[Base64-encoded SAML assertion]}}&RelayState=identity_provider%3D{{MySAMLIdP}}%26client_id%3D{{1example23456789}}%26redirect_uri%3D{{https%3A%2F%2Fwww.example.com}}%26response_type%3D{{code}}%26scope%3D{{email%2Bopenid%2Bphone}}
```

**範例 – 回應**  
以下是對上一個請求的回應。

```
HTTP/1.1 302 Found
Date: Wed, 06 Dec 2023 00:15:29 GMT
Content-Length: 0
x-amz-cognito-request-id: 8aba6eb5-fb54-4bc6-9368-c3878434f0fb
Location: {{https://www.example.com}}?code={{[Authorization code]}}
```