Ste*_*gor 5 ip amazon-web-services amazon-cognito
我正在使用 SAML 作为联合提供商通过 Azure AD 记录我的用户,我想知道此时是否可以接收 IP。如果是这样怎么办。
到目前为止,我还没有找到直接的方法来将 IP 地址发送到 lambda。
我们知道,预身份验证 lambda 将从 Cognito 接收此类数据:
{
version: '1',
region: '-----------',
userPoolId: '-----------',
userName: '--------------',
callerContext: {
awsSdkVersion: 'aws-sdk-unknown-unknown',
clientId: '----------------'
},
triggerSource: 'PreAuthentication_Authentication',
request: {
userAttributes: {
sub: '-------------',
'cognito:email_alias': '----------------,
'cognito:user_status': 'CONFIRMED',
email_verified: 'true',
email: '--------------------'
},
validationData: {
myCustomPropertiesLikeAnIpAddress: 'anIpAddress'
}
},
response: {}
}
Run Code Online (Sandbox Code Playgroud)
我们可以看到,IP 地址不包含在其中。但是,我们可以利用“validationData”属性,它是可以从客户端设置的其他属性的集合。
IP 地址就是这样的属性之一。
现在我们需要以某种方式获取此 IP 地址并将其发送给 lambda。
我发现在客户端应用程序中获取 IP 地址的一种方法是向https://geolocation-db.com/json/发出 GET 请求(或向任何其他 IP 提供商发出请求)
响应将如下所示
Current IP Address: myIpAddress
Run Code Online (Sandbox Code Playgroud)
只需按照您认为合适的方式清理响应,然后将其添加到您的认知登录请求中即可。
更改客户端代码而不发送或发送修改后的 IP 地址存在风险,您可以在 lambda 本身上进行验证,具体取决于其重要性。实际上,你必须看看有人会有多大的动力去做这样的修改。
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |