

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# IdP SAML 断言端点
<a name="saml2-idpresponse-endpoint"></a>

`/saml2/idpresponse` 接收 SAML 断言。在服务提供商发起的 (SP-initiated) 登录中，您的应用程序不会直接与该终端节点交互——您的 SAML 2.0 身份提供商 (IdP) 使用他们的 SAML 响应将您的用户重定向到此处。要 SP-initiated 登录，请使用您的路径配置您的 IdP 作为断言使用者服务 (ACS) 网址。`saml2/idpresponse`有关会话启动的更多信息，请参阅 [SAML 会话在 Amazon Cognito 用户池中启动](cognito-user-pools-SAML-session-initiation.md)。

 IdP-initiated 登录时，使用您的 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-initiated登录中使用`/saml2/idpresponse`终端节点，请生成一个 POST 请求，其参数可为您的用户池提供有关您的用户会话的信息。
+ 他们希望登录到的应用程序客户端。
+ 他们希望最终到达的回调 URL。
+ 他们希望在用户的访问令牌中请求的 OAuth 2.0 范围。
+ 启动登录请求的 IdP。

### IdP-initiated 请求正文参数
<a name="saml2-idpresponse-endpoint-post-request"></a>

*SAMLResponse*  
来自 IdP 的 Base64-encoded SAML 断言，该断言与您的用户池中的有效应用程序客户端和 IdP 配置相关联。

*RelayState*  
`RelayState` 参数包含您原本要传递给 `oauth2/authorize` 端点的请求参数。有关这些参数的详细信息，请参阅[对端点授权](authorization-endpoint.md)。    
*response\_type*  
OAuth 2.0 授予类型。  
*client\_id*  
应用程序客户端 ID。  
*redirect\_uri*  
在 Amazon Cognito 授权用户之后，身份验证服务器将浏览器重定向到的 URL。  
*identity\_provider*  
要将用户重定向到其中的身份提供者的名称。  
*idp\_identifier*  
要将用户重定向到其中的身份提供者的标识符。  
*范围*  
您希望用户从授权服务器请求的 OAuth 2.0 范围。

### 具有正向响应的示例请求
<a name="saml2-idpresponse-endpoint-post-example"></a>

**示例：POST 请求**  
以下请求适用于在应用程序客户端 `1example23456789` 中从 IdP `MySAMLIdP` 获取用户的授权代码授予。用户使用其授权代码重定向到 `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]}}
```