用户成功登录后,我无法在从 AWS Cognito 返回的ID_TOKEN 中获取自定义属性。
我试过的步骤:
1.创建用户池 2.创建应用客户端并检查自定义属性(customattrib1,customattrib2)
用户池屏幕:
检查应用程序客户端配置中的自定义属性
3.使用admin-create-user api创建用户
下图显示了用户属性的值:
4.在客户端应用程序中使用 aws-cognito-auth.js 登录的用户。返回的 ID 令牌不包含自定义属性。
ID_TOKEN
{
"at_hash": "PKfjYDaiEty5mUOyJZlPQA",
"sub": "639d5016-2bd3-4c6f-b82d-21ae38071b09",
"email_verified": true,
"iss": "https://cognito-idp.ap-south-1.amazonaws.com/ap-south-1_XXXXXXX",
"phone_number_verified": true,
"cognito:username": "testuser",
"aud": "XYXYXYXYX",
"token_use": "id",
"auth_time": 1549349674,
"phone_number": "##########",
"exp": 1549353274,
"iat": 1549349674,
"email": "testuser@somedomain.com"
}
Run Code Online (Sandbox Code Playgroud)
我已经检查了下面的链接,其中包含有关此问题的一些信息,但到目前为止没有任何帮助。
如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中
如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中
https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/
请帮我弄清楚我是否遗漏了什么..
amazon-web-services openid-connect amazon-cognito aws-sdk aws-userpools
我检查了下面的链接和 API。所有这些都过时了,没有最新的数据。
似乎下面的 API 是由政府来源公开的,但文档部分并不多 -
如果有人可以指向链接以获取最新数据,这将起作用。至少我会开始。
我尝试了下面的链接,我从这个链接得到的数据已经过时了。
我正在尝试使用 Keycloak 保护我的休息 api 和前端。
前端基于 Angular 4。
后端是使用 Spring Boot 构建的 rest api。
我在 keycloak 管理控制台中创建了两个客户端,在同一个领域(testRealm)。
前端客户端的 ACCESS-TYPE 是“Public”。
后端客户端(backendService) ACCESS-TYPE 是“Bearer-only”。
前端工作正常,并根据角色显示选项卡。
当我尝试点击/访问后端服务调用时,它在浏览器控制台中显示以下错误-
无法加载http://localhost:9099/api/transaction
预检响应具有无效的 HTTP 状态代码 401。
下面是我用来保护 rest api 的配置。
应用程序属性
server.contextPath=/test
server.port=9090
keycloak.realm: testRealm
keycloak.bearer-only: true
keycloak.auth-server-url: http://localhost:8080/auth
keycloak.ssl-required: external
keycloak.resource: backendService
keycloak.use-resource-role-mappings: true
keycloak.confidential-port: 0
keycloak.credentials.secret=dc04c236-d2b9-560e-b6b2-efa2064b2386
Run Code Online (Sandbox Code Playgroud)
ApiSecurityConfig.java(keycloak 适配器的 Spring 启动安全配置)
@Configuration
@EnableWebSecurity
@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
public class ApiSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
KeycloakAuthenticationProvider keycloakAuthenticationProvider …Run Code Online (Sandbox Code Playgroud) spring-boot bearer-token openid-connect keycloak keycloak-services