我正在尝试使用我们的IdP中的客户端ID /密码来实现对Cognito的OAuth访问,以获取Cognito访问令牌以利用API网关
我已使用OIDC在IdP中添加为身份提供者。目标是从我们的IdP向Cognito发送客户端ID /机密,并取回我们可以用来访问API网关的访问令牌。这里的关键是我们希望与AWS对话的应用程序将我们的访问令牌保留在我们的IdP中。我希望能够将在OIDC提供程序中配置的客户端ID /密码传递给Cognito,并取回访问令牌。简而言之,代码如下所示:
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic XXXXXXXXXXXXXX' #base 64 encoded client id / secret from Cognito
}
params = (
('grant_type', 'client_credentials'),)
response = requests.post('https://xxxxxxx.auth.us-east-1.amazoncognito.com/oauth2/token', headers=headers, params=params, verify=False #SSL issues on my machine due to self-signed cert)
当我在IdP的客户端ID /密码中提交应用程序时,我收到{'error':'invalid_client'},因为Cognito期望用户池中的应用程序的客户端ID,而不是我配置为的应用程序OIDC提供者。