不是。除了OAuth2.0和OIDC,AWS Cognito还支持其他身份验证协议,如SAML和OpenID Connect ID token。开发者可以在AWS控制台上配置身份验证提供商,以便将其他身份验证协议集成到Cognito中。
示例代码:使用SAML进行Cognito身份验证
const AWS = require('aws-sdk');
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');
const saml = require('saml');
const fs = require('fs');
const params = {
IdentityPoolId: 'IDENTITY_POOL_ID',
Logins: {
'REPLACE_WITH_SAML_PROVIDER_NAME': samlAssertion
}
};
const samlAssertion = fs.readFileSync('path/to/saml/assertion', 'utf8'); //replace with path to actual saml assertion
AWS.config.region = 'REGION';
const cognitoidentity = new AWS.CognitoIdentity();
cognitoidentity.getOpenIdTokenForDeveloperIdentity(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
该示例使用saml模块读取SAML断言,并将其作为登录参数传递给AWS Cognito's Identity Pools。在身份池中配置SAML身份验证提供商,以便将SAML集成到Cognito中。