Angular项目使用keycloak管理访问权限

时间:2019-06-27 05:37:56

标签: keycloak

我正在为一个有角度的项目使用keycloak,我创建了两个领域角色(管理员和成员),客户端和两个用户(Irma和Sheldon)。

我是初学者,

我想允许一个用户(Irma)访问客户端,并拒绝其他用户(Sheldon)访问。

1 个答案:

答案 0 :(得分:0)

我可以建议您使用有角的一面,使用一个库来进行授权,例如:https://github.com/mauriciovigolo/keycloak-angular。一旦完成设置并配置了authGuard,这只是通过路由器对象中的角色参数保护URL的一种情况。

例如(取自https://angular.io/guide/router#milestone-5-route-guards,并添加到密钥斗篷角色位中):

import { AuthGuard }                from '../auth/auth.guard';

const adminRoutes: Routes = [
  {
    path: 'admin',
    component: AdminComponent,
    data: {
       roles: ['admin'],
    },
    canActivate: [AuthGuard],
    children: [
      {
        path: '',
        children: [
          { path: 'crises', component: ManageCrisesComponent },
          { path: 'heroes', component: ManageHeroesComponent },
          { path: '', component: AdminDashboardComponent }
        ],
      }
    ]
  }
];

@NgModule({
  imports: [
    RouterModule.forChild(adminRoutes)
  ],
  exports: [
    RouterModule
  ]
})
export class AdminRoutingModule {}

最后一个难题是在密钥斗篷服务器端,您必须转到用户Irma,并为她分配“管理员”角色。这样一来,她就可以通过上面的路由器使用“管理员”角色访问您保护的所有路径。

希望这会有所帮助。